SSHセッションで端末テキストの色を異なる設定

SSHセッションで端末テキストの色を異なる設定

リモートホストのカラー設定を変更せずにSSHセッションで自分の端末(konsole)に別のテキストカラーを表示させる方法はありますか?たとえば、自動的に別のプロフィールに切り替えますか?

Konsoleはこれらのさまざまな「プロファイル」を使用できます

代替テキスト

デフォルトでは、SSHセッション内で別のプロファイルに変更したいと思います。したがって、黒の背景のデフォルトの緑色のテキストを白い背景の黒いテキストなどに変更しないでください。

このプロファイル設定を使用する必要はありません。しかし、xtermや何かがそのような設定を持っているなら、それも大丈夫でしょう。

アイデアは、特定のシステムの特定のセッションだけでなく、すべてのSSHセッションで作業することです。

ベストアンサー1

1つの可能性は、端末がサポートしている場合、端末の色の変更エスケープシーケンスを使用することです。明らかにkonsoleはそれをサポートしていません。 Xterm制御シーケンス文書(ctseq):

OSC PS;プラチナベル

Ps = 4; C;仕様 -> 色番号 c を仕様に指定された色、つまり XParseColor 名または RGB 仕様に応じて変更します。 c - 名前のペアは任意の数だけ提供できます。カラー番号は、ANSIカラー0〜7、明るいバージョン8〜15、残りの88または256カラーテーブル(サポートされている場合)に対応します。

これは、制御の順序によって色の外観が変化することを意味する。\e]4;NUMBER;VALUE\a数字数字色番号です(0〜7は8つの基本色を表し、8〜15は明るいバージョンを表し、端末がより多くの色をサポートしている場合はそれ以上を示します)。これこんなことX解析色たとえば、RGB仕様を理解し#123456たり、Xカラー名rgb.txt(コンピュータで閲覧したり、xcolors可能性を確認したりするために使用してください)。

たとえば、次のコマンドは、いくつかの緑を含むようにデフォルトの青(色4)と明るい変形(4+8)を変更します。

printf '\033]4;4;#004080;12;#0040ff\007'

これにより、現在特定の色で表示されているウィンドウのすべての文字が変更されます。後で表示される文字の色の意味を変更する方法はありません。必要に応じて、端末と通信するときに異なる色番号を使用するように端末内に表示される各プログラムを構成する必要があります。

sshセッションで入力するときにこれが発生するのは非常に複雑ですが、一般的なケースを処理するのは非常に簡単です。 ssh用ラッパーを使用してパレットを変更し、sshを実行して最後にパレットを再変更します。処理できない状況の例には、sshプロセスの中断、screenまたはtmux内でsshを実行するなどがあります。

おすすめ記事