J'ai un schéma de couleurs que j'aime quand je suis dans un terminal, mais je me connecte en ssh à la machine sur laquelle je travaille à partir de plusieurs sources (localement, PuTTY, mon netbook, etc.) et je souhaite conserver le même schéma de couleurs tout au long . Est-ce possible ?
Je le veux surtout dans PuTTY; il est difficile de changer les couleurs de PuTTY.
Réponse acceptée :
Les couleurs dans les terminaux sont déterminées en deux étapes :
- le programme exécuté dans le terminal indique au terminal d'utiliser un certain numéro de couleur ;
- le terminal traduit chaque numéro de couleur en une valeur de couleur.
Xterm a une séquence d'échappement pour changer la valeur de couleur associée à un numéro de couleur. Je ne me souviens pas si PuTTY prend en charge cette séquence; Je sais que Mintty le sait.
set_color_value () {
printf "\e]4;$1;$2\a"
}
set_color_value 4 '#6495ed' # set color 4 (blue) to CornflowerBlue
Ces paramètres ne survivront pas à une réinitialisation du terminal. Vous pouvez surmonter cette difficulté en ajoutant la séquence de changement de configuration du curseur à la chaîne de réinitialisation de votre terminal.
- Sur un système basé sur terminfo utilisant ncurses, enregistrez les paramètres terminfo de votre terminal dans un fichier avec
infocmp >>~/etc/terminfo.txt
. Modifiez la description pour changer lers1
(réinitialisation de base) séquence, par ex. remplacerrs1=Ec
parrs1=EcE]4;4;#6495edE\
. Avec certains programmes et paramètres, vous devrez peut-être modifier lers2
(réinitialisation complète) également. Compilez ensuite la description terminfo avectic ~/etc/terminfo.txt
(cela écrit sous le répertoire$TERMINFO
, ou~/.terminfo
si non défini). - Sur un système basé sur termcap, récupérez les paramètres termcap de votre base de données termcap (généralement
/etc/termcap
). Changer leis
(réinitialisation de base) etrs
(réinitialisation complète) séquences pour ajouter vos paramètres, par ex.:is=EcEcE]4;4;#6495edE\:
. Définissez leTERMCAP
variable d'environnement à la valeur modifiée (commençant et se terminant par:
).
Maintenant, vous pouvez mettre quelque chose comme ça dans votre ~/.profile
:
if [ "$(ps -p $PPID -o comm=)" = sshd ] &&
[ "$TERM" = "xterm" ]; then
set_color_value … # set color scheme
TERMCAP=… # if necessary
fi