根据背景颜色更改PS1颜色?

根据背景颜色更改PS1颜色?

我了解到我可以更改PS1的格式,尤其是字符串的颜色。那么,是否可以根据shell的背景颜色来改变颜色呢?或者,如何检测外壳的背景颜色?

答案1

据我所知,没有办法查询终端模拟器的颜色。\e]4;NUMBER;#RRGGBB\a如果您的终端支持该序列(参考NUMBER#RRGGBBctseqs)。

强大的配色方案机制通常具有深色或浅色背景设置,您必须提供该设置来指示您是否具有黑色或深灰色背景,或者白色或浅灰色背景。

当您自己配置时,通常足以决定始终使用相同的背景颜色。

答案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

相关内容