我目前使用基于我正在工作的目录的配色方案。我手动打开 Konsole shell,然后 cd 进入目录并进入“设置”并更改配色方案。
我想做的是让 Konsole 根据我所在的目录自动设置其前景色和背景色。基本上,如果我位于 /home/me/src/java 下面的任何子目录中,那么我想使用文本例如,白色,背景蓝色。 例如,如果我位于 /home/me/src/documentation 下面,我想要文本黑色,背景白色。 我希望当我调用“cd”命令时,以编程方式自动发生颜色变化。
这可能吗? 如果是这样,您能给我一些指导吗?
我认为我需要能够做几件事:
为了帮助您入门,这里提供了有关使用 D-Bus 编写 Konsole 脚本的一些信息。
您没有说明您正在使用哪个 shell,但如果是 Bash,您可能需要使用
$PROMPT_COMMAND
变量,该变量保存每次发出 $PS1 提示符时要执行的命令。 Z shell 有类似的功能,但可能更强大一些(请参阅 man zshmisc
了解 chpwd
和 precmd
)。
否则,您也许可以使用 xterm 转义序列。
实际上,Konsole 支持他们所谓的配置文件。配置文件是一组设置(不仅仅是背景),您可以在
Settings | Manage Profiles
及其周围手动定义。
此外,还有一个名为
konsoleprofile
的命令行实用程序,它允许以编程方式更改配置文件。
Settings | Edit Current Profile... | Appearance
konsoleprofile ColorScheme=myprofile1
、konsoleprofile ColorScheme=standard
等konsoleprofile
的呼叫插入您的 $PROMPT_COMMAND
,例如将其添加到您的.bashrc
:PROMPT_COMMAND='[[ "$PWD" = /home/me/src/java* ]] && konsoleprofile ColorScheme=myprofile1 || konsoleprofile ColorScheme=mystandard'";$PROMPT_COMMAND"