linuxshellkde-plasmakonsole

How to change colors programmatically in Konsole based on current directory?


I currently use a color scheme based on which directory that I'm working in. I manually open up a Konsole shell and then cd into a directory and got to Settings and change the color scheme.

What I would like to do is have Konsole automatically set its foreground and background colors based on which directory I'm in. Basically if I'm in any subdirectory below /home/me/src/java then I would like to use text white, background blue, for example. If I'm below /home/me/src/documentation I want text black, background white, for example. I would like the color change to occur automatically, programmatically, when I call the "cd" command.

Is this possible? If so, can you provide me some direction as to how?

The way I see it I will need to be able to do a couple of things:


Solution

  • To get you started, here's a little information about using D-Bus to script Konsole.

    You don't say which shell you're using, but if it's Bash you may want to use the $PROMPT_COMMAND variable which holds a command to be executed each time the $PS1 prompt is issued. The Z shell has a similar facility that's probably a bit more powerful (see man zshmisc for chpwd and precmd).

    Otherwise, you might be able to use xterm escape sequences.