web-dev-qa-db-ja.com

ターミナルを開くたびに異なるターミナルの色を自動的に取得する

私はしばしば3つのターミナルを開いていることに気づき、それぞれに異なるカラーパレットを使用するルックアンドフィールが大好きです。

いくつかのカラーパレットが保存されており、ターミナルを開くたびに保存されたプロファイルをデフォルトで進行させたいので、3を開くと2のプロファイルを手動で変更することなくそれぞれ異なる色になります。

何かご意見は?

ありがとう!

13
kpie

機能バージョン

手順:

スクリプトは、デフォルトのUbuntuターミナルであるgnome-terminalを使用していると見なします。

スクリプトを実行する前に、gnome-terminalを開き、必要に応じてさまざまな設定(背景色、テキスト)でいくつかのプロファイル(編集>設定>プロファイル)を作成します色、 ..)。それらにProfile1、Profile2、Profile3などの名前を付けることができます。開かれるターミナルの数をカバーするのに十分なプロファイルを作成しますが、より多くのターミナルが開かれる場合、デフォルトのプロファイルが使用されます。

スクリプトはファイルを作成します〜/ .Bash_Color_Changer。これは、ターミナルが定期的に開かれたか、呼び出し後にスクリプトに通知するため、依存します。 。bashrc.

スクリプトを〜/ .bashrcファイルの最後に追加します。

スクリプト:

.bashrcに追加:

#Change color according to the number of Bash shells opened
#Creates the .Bash_Color_Changer file if it's not present
if ! [ -f ~/.Bash_Color_Changer ]; then
    echo ORIGINAL > ~/.Bash_Color_Changer
fi

#Array holding the name of the profiles: Substitute it for the names you're using
Color_counter=(Profile1 Profile2 Profile3)
#Finds out the number of opened bashs counting the lines containing "bash"
#in the pstree function. (-c deactivates compact display to avoid it showing
#lines with "2*[bash]" instead of one for each bash)
Number_of_bashs=$(($(pstree -c | grep "bash" | wc -l)-1))

#Checks if the terminal being opened was opened by the user or by
#the script, and act according to it
if [ $(cat ~/.Bash_Color_Changer) = ORIGINAL ]; then 
    if ((Number_of_bashs < ${#Color_counter[*]})); then
        echo COPY > ~/.Bash_Color_Changer
        gnome-terminal --tab-with-profile-internal-id=${Color_counter[${Number_of_bashs}]} 
        exit
    fi
else 
    echo ORIGINAL > ~/.Bash_Color_Changer
fi

テスト済みですが、広範囲ではありません。楽しい!

10
IanC

1つのオプションとして、xfce4-terminalを使用できます。デフォルトのUbuntuターミナル(gnome-terminal)に非常に似ており、その依存パッケージの多くはgtkコンポーネントを使用しているため、適切な代替手段になります。

最初にそれをインストールします

Sudo apt-get install xfce4-terminal

それを開いて、Edit->Preferencesに移動し、ColorsTabで、各タブの背景色を変更するというオプションをチェックします 、そして今すぐ終了します。

デフォルトのターミナルxfce4-terminalを作成するか、Ctrl-Alt-Tのショートカットを変更して開きます。

これで、開くたびに、異なるカラーパレットが表示されます。 different colored terminal

便利なリンク:

9
Anwar

ハハ、非常に興味深い。私もこれをやってみてください。私は主に複数の端末とブラウザを実行するだけです。

だから私は周りを見て、これを見つけました- https://github.com/sos4nt/dynamic-colors 。あなたが望むものの一部を達成するのに役立つ非常にきちんとした小さなプロジェクト。

これで、そのプロジェクトのcolorschemes/ディレクトリに、現在4つの配色があることがわかります。必要な数だけ追加できます。

したがって、すべての端末に異なるカラースキームを選択させるには、.bash_profileまたは.bashrcまたはどこにでも関数を追加して、関数が2つのことを行うようにします。

  1. 現在実行されている端末の数を把握する
  2. (1)に基づいてdynamic-colors switch colorscheme-nameコマンドを発行します。

お役に立てれば!

追伸スクリプトを作成しますが、スプーンフィーディングは嫌いで、怠け者です。 :)

5
theabhinavdas

Konsoleは、実際にこの機能をネイティブにサポートしています。 Konsoleは本当に強力で高度にカスタマイズ可能です。

Konsoleがない場合は、単にSudo apt install konsole

  1. 設定に移動
  2. Konsole設定
  3. [外観]タブを選択します
  4. カラースキームを選択してください
  5. 右側の[編集]を選択します
  6. 「各タブの背景色を変える」を設定するボックスがあります

さらに、3つのサーバーで同時に作業している場合は、気の利いたエイリアスを含めることができます ここに表示

1
Matt O.