端末にいるときに好きなカラースキームがありますが、複数のソース(ローカル、PuTTY、ネットブックなど)で作業しているコンピュータにSSHで接続し、常に同じカラースキームを維持したいと思います。可能ですか?
私は特にこれをPuTTYで使用したいと思います。 PuTTYの色を変えるのは難しいです。
ベストアンサー1
ターミナルカラー2つのステップで決定します。
- 端末で実行されるプログラムは、端末に特定の色番号を使用するように指示します。
- 端末は各色番号を色値に変換する。
Xtermではエスケープシーケンスカラー番号に関連付けられたカラー値を変更します。 PuTTYがこのシーケンスをサポートしているかどうか覚えていません。ミントする。
set_color_value () {
printf "\\e]4;$1;$2\\a"
}
set_color_value 4 '#6495ed' # set color 4 (blue) to CornflowerBlue
これらの設定は端末のリセット後も維持されません。カーソル設定変更シーケンスを端末のリセット文字列に追加すると、この問題を克服できます。
- ncursesを使用するterminfoベースのシステムは、端末のterminfo設定を.terminfo拡張子を持つファイルに保存します
infocmp >>~/etc/terminfo.txt
。rs1
(デフォルトリセット)順序を変更するには、説明を編集してください(例:rs1=\Ec
に置き換える)rs1=\Ec\E]4;4;#6495ed\E\\
。一部のプログラムや設定を変更rs2
(完全リセット)する必要があります。次にterminfoの説明をコンパイルしますtic ~/etc/terminfo.txt
(この説明はディレクトリに書き込まれているか$TERMINFO
設定され~/.terminfo
ていない場合)。 - termcapベースのシステムでは、
/etc/termcap
termcapデータベースからtermcap設定(通常は)を取得します。is
(デフォルトリセット)と(フルリセット)シーケンスを変更してrs
設定を追加します(例:):is=\Ec\Ec\E]4;4;#6495ed\E\\:
。環境変数をTERMCAP
編集した値(で始まり終了:
)に設定します。
これで、次の内容を次のように配置できます~/.profile
。
if [ "$(ps -p $PPID -o comm=)" = sshd ] &&
[ "$TERM" = "xterm" ]; then
set_color_value … # set color scheme
TERMCAP=… # if necessary
fi