J'essaie de trouver un moyen de basculer facilement entre les thèmes solarisés clair / foncé sans avoir à créer une nouvelle session terminal / tmux. J'utilise mintty sur une machine Windows et me connecte généralement à une machine Linux et à une session tmux.
En utilisant les couleurs de menthe solarisées de mavnn et les couleurs de tmux solarisées de seebi , j'ai écrit quelques fonctions bash qui peuvent changer les couleurs du terminal à la volée. Ceci est dans mon .bashrc:
fonction godark () { ~ / solarisé / sol.dark fichier source tmux ~ / tmux / tmuxcolors-dark.conf } fonction golight () { ~ / solarisé / sol.light fichier source tmux ~ / tmux / tmuxcolors-light.conf }
Donc, à l'intérieur de sol.dark, il y a des instructions telles que:
echo -ne '\ eP \ e] 10; # 839496 \ a' # Avant-plan -> base0 echo -ne '\ eP \ e] 11; # 002B36 \ a' # Background -> base03
et à l'intérieur de mon tmuxcolors-dark.conf je vais avoir des choses telles que:
set-option -g status-bg couleur235 # base02 set-option -g status-fg colour130 #yellow
Ceci fonctionne presque . Si je n'ai pas ouvert tmux, je peux taper "godark" et menthe changera pour un thème sombre, mais si je tape ceci dans tmux, la barre d'état de tmux sera remplacée par le thème correct, mais l'arrière-plan de mon terminal ne changera pas de couleur. . Je ne comprends pas vraiment les séquences d'échappement ANSI, alors je fais peut-être une bêtise ici. J'apprécierais toute aide pour que cela fonctionne!
tmux -2
pour prendre en charge 256 couleurs, à partir d’un terminal défini en tant quescreen-256color
. Pour plus d'informations, voir cet article .Réponses:
Vous pouvez envoyer une séquence d'échappement de tmux à l'intérieur du terminal conteneur en transformant votre séquence d'échappement de la manière suivante:
\e
\ePtmux;
\e\\
Par exemple, en utilisant st comme émulateur de terminal, je peux redéfinir la couleur n ° 1 (rouge) de sa palette en exécutant
Pour faire la même chose depuis tmux, je dois utiliser
Lorsque vous utilisez un script / une fonction shell pour changer de couleur, vérifiez la
$TMUX
variable d'environnement. Si ce n'est pas vide, alors vous êtes dans tmux.la source