Как программно изменить цвета в Konsole на основе текущего каталога? - PullRequest
2 голосов
/ 22 января 2010

В настоящее время я использую цветовую схему, в зависимости от того, в каком каталоге я работаю. Я вручную открываю оболочку Konsole, а затем перехожу в каталог и попадаю в «Настройки» и меняю цветовую схему.

Я бы хотел, чтобы Konsole автоматически устанавливал цвет переднего плана и фона в зависимости от того, в каком каталоге я нахожусь. В основном, если я нахожусь в каком-либо подкаталоге ниже / home / me / src / java, я бы хотел например, используйте белый текст, синий фон. Если я нахожусь ниже / home / me / src / Документация, я хочу черный текст, например, белый фон. Я хотел бы, чтобы изменение цвета происходило автоматически, программно, когда я вызываю команду "cd".

Возможно ли это? Если да, можете ли вы дать мне какое-то руководство относительно того, как?

То, как я это вижу, мне нужно будет сделать пару вещей:

  • Уметь определять, в каком Konsole запущен процесс оболочки (bash).
  • Уметь сообщать Konsole, возможно, через вызов API, на лету менять цветовую схему.

1 Ответ

2 голосов
/ 22 января 2010

Для начала, здесь - небольшая информация об использовании D-Bus для сценариев Konsole.

Вы не говорите, какую оболочку вы используете, но если это Bash, вы можете использовать переменную $PROMPT_COMMAND, которая содержит команду, которая будет выполняться каждый раз, когда выдается приглашение $ PS1. Оболочка Z имеет аналогичное средство, которое, вероятно, немного более мощное (см. man zshmisc для chpwd и precmd).

В противном случае вы можете использовать xterm escape-последовательности .

...