[tty] configuration de TTY.(résolu)

Questions et astuces concernant l'installation et la configuration d'archlinux
Répondre
Avatar de l’utilisateur
Maximilien LIX
yeomen
Messages : 211
Inscription : mer. 23 avr. 2014, 14:27

[tty] configuration de TTY.(résolu)

Message par Maximilien LIX »

Hello World,
je fais appel à vous car j'ai besoin de savoir comment il est possible modifier la couleur du texte dans une session TTY.

J'ai opté pour cette soluce mais elle ne fonctionne pas.

/usr/bin/colortty

Code : Tout sélectionner

#!/usr/bin/env bash

echo -en "\\033[32m\\033[8]" > /dev/tty1
echo -en "\\033[32m\\033[8]" > /dev/tty2
echo -en "\\033[32m\\033[8]" > /dev/tty3
echo -en "\\033[32m\\033[8]" > /dev/tty4
echo -en "\\033[32m\\033[8]" > /dev/tty5
echo -en "\\033[32m\\033[8]" > /dev/tty6

/etc/systemd/system/setcolortty.service

Code : Tout sélectionner

[Service]
ExecStart=
ExecStart=/usr/bin/colortty
J'ai fait un petit systemctl enable setcolortty.service mais au démarrage, la couleur verte n'est pas appliquée. (sauf si je lance le deamon moi même systemctl start setcolortty.service)

Sinon dans mon bashrc j'ai ceçi:

Code : Tout sélectionner

alias steamx='startx ~/.xinitrc big-picture'
alias xfcex='startx ~/.xinitrc xfce'

if [ "$TERM" = "linux" ]; then
    echo -en "\e]P0222222" #black    -> this is the background color as well.
    echo -en "\e]P1803232" #darkred
    echo -en "\e]P25b762f" #darkgreen
    echo -en "\e]P3aa9943" #brown
    echo -en "\e]P4324c80" #darkblue
    echo -en "\e]P5706c9a" #darkmagenta
    echo -en "\e]P692b19e" #darkcyan
    echo -en "\e]P7ffffff" #lightgray
    echo -en "\e]P8222222" #darkgray
    echo -en "\e]P9982b2b" #red
    echo -en "\e]PA89b83f" #green
    echo -en "\e]PBefef60" #yellow
    echo -en "\e]PC2b4f98" #blue
    echo -en "\e]PD826ab1" #magenta
    echo -en "\e]PEa1cdcd" #cyan
    echo -en "\e]PFdedede" #white    -> this is the foreground color as well.
    clear                  #repaint the whole background with the new color
fi

### Customized part ###############################################################################


findcpu(){
	grep 'model name' /proc/cpuinfo  | uniq | awk -F':' '{ print $2}'
}
 
findkernelversion(){
	uname -mrs
}
 
totalmem(){
	grep -i 'memtotal' /proc/meminfo | awk -F':' '{ print $2}'
}

mem=$(cat /proc/meminfo | grep MemTotal | head -n 1 | awk '/[0-9]/ {print $2}')


echo "              .,-:;//;:=,               `tput smso`  Aperture Science Terminal Info        `tput rmso`
          . :H@@@MM@M#H/.,+%;,        
       ,/X+ +M@@M@MM%=,-%HMMM@X/,        $(findcpu)
     -+@MM; SM@@MH+-,;XMMMM@MMMM@+-       `tput bold`RAM memory:`tput sgr0` $[$mem/1024] MB
    ;@M@@M- XM@X;. -+XXXXXHHH@M@M#@/.     `tput bold`Kernel:`tput sgr0` $(findkernelversion) 
  ,%MM@@MH ,@%=            .---=-=:=,.    
  =@#@@@MX .,              -%HXSS%%%+;    
 =-./@M@MS                  .;@MMMM@MM: `tput smso setaf [1-7]`  GLaDOS Monitor                        `tput rmso`
 X@/ -SMM/                    .+MM@@@MS                                 ____
,@M@H: :@:                    . =X#@@@@-  `tput bold`System status:`tput sgr0`  On           /   /
,@@@MMX, .                    /H- ;@M@M=  `tput bold`Voice status:`tput sgr0`   On     ___  /   /
.H@@@@M@+,                    %MM+..%#S.                         \  \/   /
 /MMMM@MMH/.                  XM@MH; =;   `tput bold`Damaged:       `tput sgr0` No      \     /
  /%+%SXHH@S=              , .H@@@@MX,    `tput bold`Malfunctioning:`tput sgr0` Maybe    \___/ 
   .=--------.           -%H.,@@@@@MX,    
    .%MM@@@HHHXXSSS%+- .:MMX =M@@MM%.                               
     =XMMM@MM@MM#H;,-+HMM@M+ /MMMX=     `tput smso`  Date and Time                         `tput rmso`
       =%@M@M#@S-.=S@MM@@@M; %M%=     
         ':+S+-,/H#MMMMMMM@= ='           `tput bold`Date:`tput sgr0` $(date +"%A %d %B %Y")
               =++%%%%+/:-.               `tput bold`Time:`tput sgr0` $(date +"%T")
"



[[ $- != *i* ]] && return

alias ls='ls --color=auto'

PS1='[\u@\h \[\e[0;36m\]\W\[\e[0m\]]\$ '
export XAUTHORITY='/home/maxou/.Xauthority'
export MANPAGER=less
export EDITOR='vim'
export iplo="$(hostname -i)"


Sauf que j'aimerai uniquement avoir le text en jaune et l'arrière plan en noir ^^ (je savais qu'on pouvait mettre un peu de couleur avec tput mais je ne comprends pas la méthode avec echo -en)

Merci bien et bonne année 2016. :D
Dernière modification par Maximilien LIX le lun. 11 janv. 2016, 20:38, modifié 1 fois.
Linuxien et blogueur en carton
Acer AX3810 (Archlinux & Debian)
Acer Aspire V5 (ubuntu-Mate)
Lenovo Thinkpad Edge E330 (Archlinux)
Avatar de l’utilisateur
Piczel
Chu Ko Nu
Messages : 314
Inscription : dim. 03 mai 2015, 19:17
Localisation : Terre du Milieu

Re: [tty] configuration de TTY.

Message par Piczel »

Salut ! si j'ai bien compris tu voudrais changer la couleur de ton prompt bash c'est ça ?
Essaye avec ça :

Code : Tout sélectionner

PS1='\e[0;33m[\u@\h \[\e[0;36m\]\W\e[0;33m]\[\e[0m\]\$ '
lili : Lenovo E540 | ArchLinux
abraham : RaspBerry Pi 3 B | ArchLinux
isaac : RaspBerry Pi 3 B | ArchLinux
Github
The best way to accelerate a computer running Windows is at 9.81m/s²
10 types de geeks, ceux qui savent compter en binaire, et les autres.
Avatar de l’utilisateur
Maximilien LIX
yeomen
Messages : 211
Inscription : mer. 23 avr. 2014, 14:27

Re: [tty] configuration de TTY.

Message par Maximilien LIX »

Non pas le prompt, mais bien tout ce qui peut être écrit dans la sesion tty ^^

J'ai déjà custom ma variable PS1. En fait je comprends pas la logique des sessions tty, genre quels sont les fichiers de configurations ect. Il y a bien de la doc là dessus, mais beaucoup ne peuvent être utilisée avec le passage d'Archlinux à systemd visiblement.
Linuxien et blogueur en carton
Acer AX3810 (Archlinux & Debian)
Acer Aspire V5 (ubuntu-Mate)
Lenovo Thinkpad Edge E330 (Archlinux)
Avatar de l’utilisateur
Piczel
Chu Ko Nu
Messages : 314
Inscription : dim. 03 mai 2015, 19:17
Localisation : Terre du Milieu

Re: [tty] configuration de TTY.

Message par Piczel »

Hum.. j'ai une solution, on pourrait faire ça :

Code : Tout sélectionner

PS1='\e[0;33m[\u@\h \[\e[0;36m\]\W\e[0;33m]\$ '
mis à part les 3 premières lignes quand tu ouvres ton tty et que tu te log, tout serait en jaune, mais je vois ce que tu veux dire, que nativement ce soir jaune, et qu'on ait pas besoin de passer par le bash..
sur ce point là je ne peux pas t'aider, attends le passage des barbus linuxiens, bonne chance à toi !
lili : Lenovo E540 | ArchLinux
abraham : RaspBerry Pi 3 B | ArchLinux
isaac : RaspBerry Pi 3 B | ArchLinux
Github
The best way to accelerate a computer running Windows is at 9.81m/s²
10 types de geeks, ceux qui savent compter en binaire, et les autres.
Avatar de l’utilisateur
Maximilien LIX
yeomen
Messages : 211
Inscription : mer. 23 avr. 2014, 14:27

Re: [tty] configuration de TTY.

Message par Maximilien LIX »

Merci bien pour tes réponses :)

En fait (je ne sais pas si tu as déjà joué à Portal) je voudrais faire quelque chose de similiaire à l'écran de générique de fin de Portal. :D

J'aimerais d'ailleurs inclure la voix de GLaDOS un peu partout, notemment lorsque je me connecte. (si je me foire dans mes identifiants, ça lancera une réplique particulière)
Linuxien et blogueur en carton
Acer AX3810 (Archlinux & Debian)
Acer Aspire V5 (ubuntu-Mate)
Lenovo Thinkpad Edge E330 (Archlinux)
bobo
Elfe
Messages : 593
Inscription : mar. 08 avr. 2014, 22:47

Re: [tty] configuration de TTY.

Message par bobo »

:arrow: Vérification des services enabled au démarrage
Pourrais-tu nous donner la sortie de :

Code : Tout sélectionner

tree /etc/systemd/system
(qu'on voit si le service est bel et bien activé au démarrage)

:arrow: Création d'unité systemd
Je pense qu'il faudrait que tu te penches sur la création d'un service de type oneshot :
http://www.freedesktop.org/software/sys ... l#Examples

Je verrais bien un truc du genre comme ça :

Code : Tout sélectionner

[Unit]
Description=Set tty colors

[Service]
Type=oneshot
ExecStart=/usr/bin/colortty

[Install]
WantedBy=multi-user.target
« WantedBy=multi-user.target » s'assurerait que le service est lancé une fois que le système est déjà bien initialisé. Avec une telle section [Install], ton service devrait s'activer pour de bon au bon endroit avec « systemctl enable ».

:arrow: «ExecStart=» utile ?
Je ne m'y connais pas trop en création d'unité systemd, mais ce «ExecStart=» sans rien derrière me paraît louche. Que se passe-t-il si tu le supprimes ?
dwm — BÉPO — vim — “more is less !”
Avatar de l’utilisateur
Piczel
Chu Ko Nu
Messages : 314
Inscription : dim. 03 mai 2015, 19:17
Localisation : Terre du Milieu

Re: [tty] configuration de TTY.

Message par Piczel »

Je vois maintenant que je vois le rapprochement avec Portal :D
Ce qu'a dit bobo me plait ouais, après je pense que c'est ton /usr/bin/colortty qu'est pas forcément ouf.. après j'y connais rien, mais juste faire un echo > /dev/ttyX changera la couleur du tty ou non :/ j'essaye et je te tiens au courant !

EDIT : après avoir essayé, effectivement ça marche, mais faudrait que ça se lance avant le début de l'affichage des tty à l'écran
lili : Lenovo E540 | ArchLinux
abraham : RaspBerry Pi 3 B | ArchLinux
isaac : RaspBerry Pi 3 B | ArchLinux
Github
The best way to accelerate a computer running Windows is at 9.81m/s²
10 types de geeks, ceux qui savent compter en binaire, et les autres.
bobo
Elfe
Messages : 593
Inscription : mar. 08 avr. 2014, 22:47

Re: [tty] configuration de TTY.

Message par bobo »

J'ai aussi du mal à comprendre l'usage de "echo -en". Cela dit, j'ai cru comprendre que le "setcolortty.service" est fonctionnel, mais n'est pas chargé au démarrage à partir de la citation suivante :
Maximilien LIX a écrit :J'ai fait un petit systemctl enable setcolortty.service mais au démarrage, la couleur verte n'est pas appliquée. (sauf si je lance le deamon moi même systemctl start setcolortty.service)
PS : Il faut que je fasse des recherches sur Portal et GladOS moi…
dwm — BÉPO — vim — “more is less !”
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17187
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [tty] configuration de TTY.

Message par benjarobin »

Bonjour,
La méthode via un service me semble très foireuse. Pourquoi ne pas utiliser le bashrc pour cela ?
Zsh | KDE | PC fixe : core i7, carte nvidia
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
GuilouV
Elfe
Messages : 539
Inscription : jeu. 25 nov. 2010, 15:34

Re: [tty] configuration de TTY.

Message par GuilouV »

Perso je gère les couleurs dans le fichier /etc/DIR_COLORS
Pour modifier les couleurs des tty il faut avoir la ligne TERM linux dans la section des TERM et la ligne COLOR tty décommentée;)

Des infos pour configurer /etc/DIR_COLORS
[ Vaio S (VJS131X0211B) ]==[ Arch64 i3 Bépo ]==[ KISS spirit ]
Avatar de l’utilisateur
Maximilien LIX
yeomen
Messages : 211
Inscription : mer. 23 avr. 2014, 14:27

Re: [tty] configuration de TTY.

Message par Maximilien LIX »

benjarobin
Bonjour,
La méthode via un service me semble très foireuse. Pourquoi ne pas utiliser le bashrc pour cela ?
Je veux que cela s'applique quelque soit l'utilisateur connecté.
GuilouV
Perso je gère les couleurs dans le fichier /etc/DIR_COLORS
À ça je ne connaissais pas ! :D
bobo
PS : Il faut que je fasse des recherches sur Portal et GladOS moi…

De bons jeux, vraiment de bons jeux :D

D'ailleurs tree /etc/systemd/system me renvoit ceci

Code : Tout sélectionner

/etc/systemd/system
├── bluetooth-auto-power@.service
├── dbus-org.freedesktop.NetworkManager.service -> /usr/lib/systemd/system/NetworkManager.service
├── dbus-org.freedesktop.nm-dispatcher.service -> /usr/lib/systemd/system/NetworkManager-dispatcher.service
├── getty.target.wants
│   └── getty@tty1.service -> /usr/lib/systemd/system/getty@.service
├── getty@tty1.d.service.d
├── getty@tty1.service.d
│   └── override.conf
├── graphical.target.wants
│   ├── teamviewerd.service -> /usr/lib/systemd/system/teamviewerd.service
│   └── upower.service -> /usr/lib/systemd/system/upower.service
├── local-fs.target.wants
│   └── systemd-swap.service -> /usr/lib/systemd/system/systemd-swap.service
├── multi-user.target.wants
│   ├── cups.path -> /usr/lib/systemd/system/cups.path
│   ├── httpd.service -> /usr/lib/systemd/system/httpd.service
│   ├── NetworkManager.service -> /usr/lib/systemd/system/NetworkManager.service
│   ├── org.cups.cupsd.path -> /usr/lib/systemd/system/org.cups.cupsd.path
│   ├── preload.service -> /usr/lib/systemd/system/preload.service
│   ├── remote-fs.target -> /usr/lib/systemd/system/remote-fs.target
│   └── ufw.service -> /usr/lib/systemd/system/ufw.service
├── printer.target.wants
│   ├── cups.service -> /usr/lib/systemd/system/cups.service
│   └── org.cups.cupsd.service -> /usr/lib/systemd/system/org.cups.cupsd.service
├── setcolortty.service
├── sockets.target.wants
│   ├── cups.socket -> /usr/lib/systemd/system/cups.socket
│   └── org.cups.cupsd.socket -> /usr/lib/systemd/system/org.cups.cupsd.socket
├── startx@.service
└── sysinit.target.wants
    └── systemd-timesyncd.service -> /usr/lib/systemd/system/systemd-timesyncd.service

9 directories, 22 files
Mais j'ai modifié le service et maintenant ça marche nickel :D merci !

(bon parcontre, histoire de chipoter encore un peu... y a pas moyen de lancer se service plutôt dans le démarrage ? Une méthode comparable à celle des hooks dans mkinitcpio.conf ?)
Linuxien et blogueur en carton
Acer AX3810 (Archlinux & Debian)
Acer Aspire V5 (ubuntu-Mate)
Lenovo Thinkpad Edge E330 (Archlinux)
Avatar de l’utilisateur
GuilouV
Elfe
Messages : 539
Inscription : jeu. 25 nov. 2010, 15:34

Re: [tty] configuration de TTY.(résolu)

Message par GuilouV »

C'est un peu lourd d'ajouter un service quand le système peut nativement faire automatiquement... enfin bon c'est un point de vue personnel et minimaliste. Si ça fonctionne...

Sinon tu pourrais donner la dernière version de ton service pour ceux que ça intéresserait?
[ Vaio S (VJS131X0211B) ]==[ Arch64 i3 Bépo ]==[ KISS spirit ]
bobo
Elfe
Messages : 593
Inscription : mar. 08 avr. 2014, 22:47

Re: [tty] configuration de TTY.

Message par bobo »

Maximilien LIX a écrit :Mais j'ai modifié le service et maintenant ça marche nickel :D merci !

(bon parcontre, histoire de chipoter encore un peu... y a pas moyen de lancer se service plutôt dans le démarrage ? Une méthode comparable à celle des hooks dans mkinitcpio.conf ?)
Cool !

Pour ton chipotage d'optimisation, je dirais bien qu'il faudrait viser "getty.target" plutôt que "multi-user.target", avec un "After=" ou un "Requires=". Je ne connais pas l'ordre des targets, mais le mettre dans "multi-user.target", permet de lancer le service une fois que "getty.target" est atteint sans finasserie "After=" ou un "Requires=" qui pourrait être dépendant de la config'.
dwm — BÉPO — vim — “more is less !”
Avatar de l’utilisateur
Maximilien LIX
yeomen
Messages : 211
Inscription : mer. 23 avr. 2014, 14:27

Re: [tty] configuration de TTY.(résolu)

Message par Maximilien LIX »

La dernière version du service est la suivante:

Code : Tout sélectionner

[Unit]
Description=Set tty colors

[Service]
Type=oneshot
ExecStart=/usr/bin/colortty

[Install]
WantedBy=multi-user.target
Il exécute un script bash qui se trouve dans /usr/bin

Code : Tout sélectionner

#!/usr/bin/env bash

echo -en "\\033[33m\\033[8]" > /dev/tty1
echo -en "\\033[33m\\033[8]" > /dev/tty2
echo -en "\\033[33m\\033[8]" > /dev/tty3
echo -en "\\033[33m\\033[8]" > /dev/tty4
echo -en "\\033[33m\\033[8]" > /dev/tty5
echo -en "\\033[33m\\033[8]" > /dev/tty6
:)
C'est un peu lourd d'ajouter un service quand le système peut nativement faire automatiquement... enfin bon c'est un point de vue personnel et minimaliste. Si ça fonctionne...
Là je suis tout ouïe l'ami car je n'ai pas compris comment l'on pouvait le faire nativement. :D
Linuxien et blogueur en carton
Acer AX3810 (Archlinux & Debian)
Acer Aspire V5 (ubuntu-Mate)
Lenovo Thinkpad Edge E330 (Archlinux)
Avatar de l’utilisateur
GuilouV
Elfe
Messages : 539
Inscription : jeu. 25 nov. 2010, 15:34

Re: [tty] configuration de TTY.(résolu)

Message par GuilouV »

Maximilien LIX a écrit :
C'est un peu lourd d'ajouter un service quand le système peut nativement faire automatiquement... enfin bon c'est un point de vue personnel et minimaliste. Si ça fonctionne...
Là je suis tout ouïe l'ami car je n'ai pas compris comment l'on pouvait le faire nativement. :D
Il te suffit de définir la couleur dans le fichier /etc/issue pour avoir le texte en jaune comme tu le veux. Ce fichier est lu nativement par le service getty utilisé par systemd comme dépendance de getty.target.wants. Utilise cette commande :

Code : Tout sélectionner

TERM=linux setterm --foreground yellow --store > /etc/issue
Je te laisse voir le man de setterm pour d'autres couleurs et comment gérer le style de la police et l'arrière plan si tu veux.

Et comme dit ici tu peux aussi gérer la couleur de la sortie ls avec le fichier /etc/DIR_COLORS ;)

Voilà les sections utiles de mon fichier pour te donner une idée et le man de dir_colors pour les infos :

Code : Tout sélectionner

COLOR tty
TERM linux
[...]
# Below are the color init strings for the basic file types. A color init
# string consists of one or more of the following numeric codes:
# Attribute codes: 
# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
# Text color codes:
# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
# Background color codes:
# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
NORMAL 00    # global default, although everything should be something.
FILE 00     # normal file
DIR 01;32     # directory
# Couleur des fichiers selon leur extension
.cmd 01;32 # executables (bright green)
.com 01;32
.btm 01;32
.bat 01;32
.tar 00;34 # archives or compressed (bright red)
.tgz 00;34
.arj 00;34
.taz 00;34
.lzh 00;34
.zip 00;34
.z   00;34
.Z   00;34
.gz  00;34
.bz2 00;34
.jpg 00;33 # image formats
.gif 00;33
.bmp 00;33
.xbm 00;33
.xpm 00;33
.tif 00;33
.tga 00;33
.png 00;33
.jpeg 00;33
.tiff 00;33
[ Vaio S (VJS131X0211B) ]==[ Arch64 i3 Bépo ]==[ KISS spirit ]
Avatar de l’utilisateur
Maximilien LIX
yeomen
Messages : 211
Inscription : mer. 23 avr. 2014, 14:27

Re: [tty] configuration de TTY.(résolu)

Message par Maximilien LIX »

Ah cool merci :D, pas besoin de lancer mon service du coup.
Linuxien et blogueur en carton
Acer AX3810 (Archlinux & Debian)
Acer Aspire V5 (ubuntu-Mate)
Lenovo Thinkpad Edge E330 (Archlinux)
Avatar de l’utilisateur
GuilouV
Elfe
Messages : 539
Inscription : jeu. 25 nov. 2010, 15:34

Re: [tty] configuration de TTY.(résolu)

Message par GuilouV »

Content d'avoir pu aider :D
[ Vaio S (VJS131X0211B) ]==[ Arch64 i3 Bépo ]==[ KISS spirit ]
Répondre