新しいターミナル/ tmuxセッションを作成せずに、明るい/暗いソーラーテーマを簡単に切り替える方法を見つけようとしています。私はWindowsマシンでminttyを実行しており、通常はLinuxマシンにログインして、tmuxセッションに接続します。
mavnnのsolarized mintty 色と seebiのsolarized tmux 色を使用して、端末の色をその場で変更できるbash関数をいくつか作成しました。これは私の.bashrcにあります:
function godark() { 〜/ solarized/sol.dark tmux source-file〜/tmux/tmuxcolors-dark.conf } function golight() { 〜/ solarized/sol.light tmux source-file〜/tmux/tmuxcolors-light。 conf }
したがって、sol.darkの内部には、次のような指示があります。
echo -ne '\ eP\e] 10;#839496\a'#前景-> base0 echo -ne '\ eP\e] 11;#002B36\a'#背景- > base03
tmuxcolors-dark.confの中には、次のようなものがあります。
set-option -g status-bg colour235#base02 set-option -g status-fg colour130 #yellow
これはほぼ動作しています。 tmuxを開いていない場合は、「godark」と入力するとminttyが暗いテーマに変わりますが、これをtmuxと入力すると、tmuxステータスバーが正しいテーマに変わりますが、端末の背景の色は変わりません。私はANSIエスケープシーケンスを本当に理解していないので、ここで何かばかげたことをしているのかもしれません。これを機能させるために助けていただければ幸いです。
エスケープシーケンスを次のように変換することで、tmux内から包含端末にエスケープシーケンスを送信できます。
\e
のすべての出現を2倍にする\ePtmux;
を付加します\e\\
たとえば、ターミナルエミュレータとして st を使用すると、実行することでパレットの色#1(赤)を再定義できます。
printf '\e]4;1;#aa0000\a'
Tmux内から同じことを行うには、使用する必要があります
printf '\ePtmux;\e\e]4;1;#aa0000\a\e\\'
シェルスクリプト/関数を使用して色を切り替える場合は、$TMUX
環境変数を確認してください。空でない場合は、tmux内にいます。