3

現在、作業しているディレクトリに基づいた配色を使用しています。Konsole シェルを手動で開き、cd でディレクトリに移動し、[設定] に移動して配色を変更します。

私がやりたいことは、現在いるディレクトリに基づいて、Konsole が前景色と背景色を自動的に設定するようにすることです。基本的に、/home/me/src/java の下のサブディレクトリにいる場合は、テキストを白にします。 、背景青など。/home/me/src/documentation の下にいる場合は、テキストを黒、背景を白などにします。「cd」コマンドを呼び出すと、プログラムによって自動的に色の変更が行われるようにしたいと考えています。

これは可能ですか?もしそうなら、どのように私に指示を与えることができますか?

私の見方では、いくつかのことを実行できる必要があります。

  • シェル プロセス (bash) が実行されている Konsole を検出できます。
  • おそらく API 呼び出しを介して、その場で配色を変更するように Konsole に指示できます。
4

2 に答える 2

2

まず始めに、D-Bus を使用して Konsole をスクリプト化する方法について簡単に説明します

使用しているシェルはわかりませんが、Bash の場合は$PROMPT_COMMAND、$PS1 プロンプトが発行されるたびに実行されるコマンドを保持する変数を使用することができます。Z シェルには、おそらくもう少し強力な同様の機能があります (man zshmiscchpwdを参照precmd)。

それ以外の場合は、 xterm エスケープ シーケンスを使用できる場合があります。

于 2010-01-22T18:18:39.703 に答える
1

環境

実際、Konsole はプロファイルするものをサポートしています。Settings | Manage Profilesプロファイルは (背景だけでなく) 設定のグループであり、その下や周囲で手動で定義できます。

konsoleprofileまた、プロファイルをプログラムで変更できるコマンド ライン ユーティリティもあります。

実際の答え

  1. に行くSettings | Edit Current Profile... | Appearance
  2. myprofile1、myprofile2、mystandard など、特別な背景を持たせたいディレクトリごとに新しい配色を定義します。
  3. konsoleprofile ColorScheme=myprofile1konsoleprofile ColorScheme=standardなどを手動で呼び出すことができることを確認してください。
  4. への呼び出しを にプラグインしkonsoleprofileます$PROMPT_COMMAND。たとえば、これを に追加します.bashrc
PROMPT_COMMAND='[[ "$PWD" = /home/me/src/java* ]] && konsoleprofile ColorScheme=myprofile1 || konsoleprofile ColorScheme=mystandard'";$PROMPT_COMMAND"

于 2020-04-18T17:58:36.087 に答える