背景色に応じてPS1の色を変更しますか?

背景色に応じてPS1の色を変更しますか?

PS1の形式、特に行の色を変更できることを学びました。それでは、シェルの背景色に基づいて色を変更できますか?または、シェルの背景色をどのように検出できますか?

答え1

私が知る限り、端末エミュレータの色を照会する方法はありません。\e]4;NUMBER;#RRGGBB\a端末がこのシーケンスをサポートしている場合(参照NUMBER#RRGGBBctseq)。

強力なカラースキームメカニズムには通常、暗いまたは明るい背景設定があり、背景が黒か暗い灰色か白か明るい灰色かを示すためにこれを提供する必要があります。

自分で設定するときは、通常同じ背景色を常に使用するように決めるだけで十分です。

答え2

gnome-terminalを使用すると、すべてのプロファイルの背景色を取得できます。この場合、デフォルトプロファイル

   $ gconftool-2 --get /apps/gnome-terminal/profiles/Default/background_color
   #E12FE12FC74D

その後、プロンプトを設定する方法を決定できます。

答え3

xtermを使用すると、エスケープシーケンスを使用して背景色を照会できます\e]11;?\a。端末から応答を読む必要があります。xtermcontrolこれを行うためのコマンドがあります。

~$ xtermcontrol --get-bg
rgb:b0b0/b0b0/b0b0

関連情報