端末にいるときに好きなカラースキームがありますが、複数のソース(ローカル、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
答え2
あなたはssh
ただ入っています。一つ箱は正しいですか?PS1
希望のカラースキームを使用するようにボックスに変数を設定したいですか? 16色に保つと、最新のデバイスでは問題になりませんTERM
。ほとんどは256色をサポートする必要がありますが、ほとんどはTERM=xterm-256color
基本的にそうではなく、一部は愚かです(咳私の雇用者咳)TERM
英数字のみで整理されています。残念ながら、変数に入れる内容は、PS
使用しているシェルによって大きく異なります。