Précédent   Forum du club des développeurs et IT Pro > Systèmes > Linux > Applications et environnements graphiques
Applications et environnements graphiques Questions sur l'utilisation d'applications et des interfaces graphiques (KDE, Gnome, XFCE... )
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 29/09/2012, 22h23   #1
bbkenny
Nouveau Membre du Club
 
Inscription : août 2004
Messages : 124
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 124
Points : 30
Points : 30
Par défaut Modifier Couleur de fond du terminal CentOS

Bonjour,

Je souhaiterais modifier par script sh la couleur de fond du terminal CentOS 5.8.

Si quelqu'un a une idee, par avance merci.
bbkenny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2012, 01h10   #2
N_BaH
Modérateur
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 756
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 756
Points : 6 629
Points : 6 629
Bonjour,

tu peux nous donner plus de détails, s'il te plaît.
le terminal, c'est une console Alt+F1-12, ou un terminal X ?
quelle est la finalité de la manip. ?

si tu changes la couleur du fond, pense à changer la couleur des écritures !

tu peux utiliser des séquences d'échappement ANSI avec printf (plutôt qu'avec echo -ne)
ou tput
ou setterm
...
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2012, 08h33   #3
bbkenny
Nouveau Membre du Club
 
Inscription : août 2004
Messages : 124
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 124
Points : 30
Points : 30
Bonjour,

Je suis sous CentOS 5.8, en mode graphique. Je parle du terminal que l'on obtient par le menu : Applications -> Accessoires -> Terminal.

setterm fonction si on execute xterm, ce qui n'est pas mon cas.

Pour tput, je ne vois pas bien comment l'utiliser pour changer la couleur de fond du terminal.
bbkenny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2012, 13h13   #4
Obsidian
Modérateur
 
Avatar de Obsidian
 
Homme
Chercheur d'emploi
Inscription : septembre 2007
Messages : 4 614
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Chercheur d'emploi
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2007
Messages : 4 614
Points : 11 089
Points : 11 089
C'est très probablement le « gnome-terminal ».

Il y a trois manières de faire :
  • Lancer un xterm ou un rxvt avec les options « -fg » et « -bg » mais elles n'ont pas l'air reconnues par le gnome-terminal. :-( Il fallait s'y attendre ;
  • Modifier le profil. La plupart des terminaux stockent ça normalement dans un fichier de config dans le home dir de l'utilisateur mais Gnome, lui, stocke ça dans sa base de registres personnelle. Oui, c'est une hérésie dans le monde Unix, mais il y a longtemps que Gnome a décidé de suivre sa propre voie. Dans ce cas, il faut utiliser gconf pour la modifier en ligne de commande (donc depuis ton shell) ou gconf-editor pour le faire à la main. Mais l'utilisateur risque de ne pas être content ;
  • Il y a bien une séquence CSI ou OSC qui permet de déterminer les couleurs par défaut de l'avant-plan et l'arrière-plan (et pas simplement la couleur du fond des caractères à un instant donné).

C'est cette troisième option qu'il faut suivre : ça te permet d'utiliser des séquences standard, qui restent dans le cadre de l'émulation du terminal, et qui perdureront jusqu'à la fermeture de celui-ci (sauf consignes contraires) et qui disparaîtront ensuite. C'est autrement plus propre que changer le profil.

Je sais que j'ai réussi à le faire au moins une fois, y compris avec le gnome-terminal, mais je ne parviens plus à remettre la main sur les bonnes séquences. J'ai passé la soirée hier à les rechercher.
Obsidian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2012, 15h58   #5
N_BaH
Modérateur
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 756
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 756
Points : 6 629
Points : 6 629
Code :
printf '^[[40;37m^[[2J'
ou ^[ est le caractère d'échappement Ctrl-V-[
...
?
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2012, 16h40   #6
bbkenny
Nouveau Membre du Club
 
Inscription : août 2004
Messages : 124
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 124
Points : 30
Points : 30
Bonjour,

Le seul gconf que j'ai sur CentOS est un répetoire et je n'ai pas de gconf-editor.

printf "\033[40;37mTEXTE\033[0m" : ne modifie la couleur de fond que sur la partie TEXTE, et non sur le terminal dans sa totalité.
bbkenny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2012, 17h07   #7
N_BaH
Modérateur
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 756
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 756
Points : 6 629
Points : 6 629
Citation:
printf "\033[40;37mTEXTE\033[0m"
ce n'est pas ce que j'ai écrit.
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2012, 17h30   #8
Obsidian
Modérateur
 
Avatar de Obsidian
 
Homme
Chercheur d'emploi
Inscription : septembre 2007
Messages : 4 614
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Chercheur d'emploi
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2007
Messages : 4 614
Points : 11 089
Points : 11 089
Citation:
Envoyé par N_BaH Voir le message
Code :
printf '^[[40;37m^[[2J'
ou ^[ est le caractère d'échappement Ctrl-V-[
...
?
Hélas non (que ce soit avec \033 ou Ctrl-V Ctrl-[, d'ailleurs) car ceci ne « tient » pas. Certes, effacer l'écran le repeint avec la couleur de fond en vigueur, mais dès qu'une réinitialisation aux valeurs par défaut avec Esc[0m a lieu, on revient au blanc sur noir ou au modèle qui fait loi.

Il y a bien une séquence qui permet de le faire quand même mais à voir combien elle est difficile à retrouver et à mettre en pratique, ça ressemble à un truc de guru.

Citation:
Envoyé par bbkenny Voir le message
Le seul gconf que j'ai sur CentOS est un répetoire et je n'ai pas de gconf-editor.
C'est un package à installer. Mais personnellement, comme pour beaucoup de monde, GNOME finit par me sortir par les yeux autant qu'il me séduit. Il y avait gconftool-2, gconf-editor, désormais il faudra passer à dconf et dconf-editor, qui sont un projet concurrent du premier mais incompatible.

Tu peux essayer ceci pour récupérer le profil par défaut du terminal :

Code Shell :
$ gconftool-2 -R /apps/gnome-terminal/profiles/Default
Obsidian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2012, 17h54   #9
N_BaH
Modérateur
 
Avatar de N_BaH
 
Inscription : février 2008
Messages : 2 756
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 2 756
Points : 6 629
Points : 6 629
Citation:
Certes, effacer l'écran le repeint avec la couleur de fond en vigueur, mais dès qu'une réinitialisation aux valeurs par défaut avec Esc[0m a lieu, on revient au blanc sur noir ou au modèle qui fait loi.
N_BaH est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2012, 19h55   #10
bbkenny
Nouveau Membre du Club
 
Inscription : août 2004
Messages : 124
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 124
Points : 30
Points : 30
Bon, j'ai opté pour cette solution pas très élégante :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
couleurFondTerm="FFFFFF"
if [ Cond1 ]; then couleurFondTerm="FF0000"; fi
if [ Cond2 ]; then couleurFondTerm="00FF00"; fi
if [ Cond3 ]; then couleurFondTerm="0000FF"; fi
rm -f /home/MonUser/.gconf/apps/gnome-terminal/profiles/Default/%gconf.xml
 
echo "<?xml version=\"3.0\"?>" > /home/MonUser/.gconf/apps/gnome-terminal/profiles/Default/%gconf.xml
echo "<gconf>" >> /home/MonUser/.gconf/apps/gnome-terminal/profiles/Default/%gconf.xml
echo "        <entry name=\"background_color\" mtime=\"1349020486\" type=\"string\">" >> /home/MonUser/.gconf/apps/gnome-terminal/profiles/Default/%gconf.xml
echo "                <stringvalue>#$couleurFondTerm</stringvalue>" >> /home/A
MonUser/.gconf/apps/gnome-terminal/profiles/Default/%gconf.xml
echo "        </entry>" >> /home/MonUser/.gconf/apps/gnome-terminal/profiles/Default/%gconf.xml
echo "        <entry name=\"foreground_color\" mtime=\"1349020486\" type=\"string\">" >> /home/MonUser/.gconf/apps/gnome-terminal/profiles/Default/%gconf.xml
echo "                <stringvalue>#000000</stringvalue>" >> /home/MonUser/.gconf/apps/gnome-terminal/profiles/Default/%gconf.xml
echo "        </entry>" >> /home/MonUser/.gconf/apps/gnome-terminal/profiles/Default/%gconf.xml
echo "        <entry name=\"use_theme_colors\" mtime=\"1348945919\" type=\"bool\" value=\"false\">" >> /home/MonUser/.gconf/apps/gnome-terminal/profiles/Default/%gconf.xml
echo "        </entry>" >> /home/MonUser/.gconf/apps/gnome-terminal/profiles/Default/%gconf.xml
echo "        <entry name=\"palette\" mtime=\"1349020450\" type=\"string\">" >> /home/MonUser/.gconf/apps/gnome-terminal/profiles/Default/%gconf.xml
echo "                <stringvalue>#000000000000:#AAAA00000000:#0000AAAA0000:#AAAA55550000:#00000000AAAA:#AAAA0000AAAA:#0000AAAAAAAA:#AAAAAAAAAAAA:#555555555555:#FFFF55555555:#5555FFFF5555:#FFFFFFFF5555:#55555555FFFF:#FFFF5555FFFF:#5555FFFFFFFF:#FFFFFFFFFFFF</stringvalue>" >> /home/MonUser/.gconf/apps/gnome-terminal/profiles/Default/%gconf.xml
echo "        </entry>" >> /home/MonUser/.gconf/apps/gnome-terminal/profiles/Default/%gconf.xml
echo "</gconf>" >> /home/MonUser/.gconf/apps/gnome-terminal/profiles/Default/%gconf.xml
chown MonUser:MonUser /home/MonUser/.gconf/apps/gnome-terminal/profiles/Default/%gconf.xml
chmod 600 /home/MonUser/.gconf/apps/gnome-terminal/profiles/Default/%gconf.xml
reboot
Si quelqu'un a mieux, je suis à l'écoute.
bbkenny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2012, 20h43   #11
Obsidian
Modérateur
 
Avatar de Obsidian
 
Homme
Chercheur d'emploi
Inscription : septembre 2007
Messages : 4 614
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Chercheur d'emploi
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2007
Messages : 4 614
Points : 11 089
Points : 11 089
Citation:
Envoyé par bbkenny Voir le message
Bon, j'ai opté pour cette solution pas très élégante :
Si quelqu'un a mieux, je suis à l'écoute.
Ouille ! Oui, il va falloir trouver mieux ! :-) Il faut que tu utilises gconf-tool2 pour aller modifier les clés de la base correspondant au terminal. Voici un script tout fait qui fait exactement ça : https://gist.github.com/1397104
Obsidian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2012, 21h30   #12
bbkenny
Nouveau Membre du Club
 
Inscription : août 2004
Messages : 124
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 124
Points : 30
Points : 30
Merci pour le lien, ça correspond exactement à mon besoin.
bbkenny est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 17h13.


 
 
 
 
Partenaires

Hébergement Web