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


14

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

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

何かご意見は?

ありがとう!


あなたの望むことをするスクリプトで私の答えを編集しました。./bashrcファイルに追加する必要があります。それがあなたのニーズに合うことを願っています!
IanC

回答:


10

機能バージョン

手順:

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

スクリプトを実行する前に、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

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


明日のアイデアは、exitなどのファイルに基づいて条件を追加することです~/bashcolor.txt。開いているbashが「オリジナル」か「コピー」かを示す行を含めることができます。したがって、cat ~/bashcolor.txt「ORIGINAL」が返された場合、exitコマンドが実行され、が実行されecho COPY > ~/bashcolor.txtます。それ以外の場合、出口は実行されませんが、ファイルは元に戻ります(echo ORIGINAL > ~/bashcolor.txt)。点滅する端末の問題を解決します。
IanC

楽しいスクリプトを作成し、自分で使用することもできます:)改善の提案は大歓迎です!
IanC

これは信頼できる+1で機能します
boomt14

2
バージョンに1つの変更を加えました...この方法では、プロファイルよりも多くのターミナルを開いたときに循環し続けます。 Number_of_bashs=$(($(($(pstree -c | grep "bash" | wc -l)-1))%${#Color_counter[@]}))
kpie

いいね!反復を循環的に保つためにモジュラスを使用することは思いもしませんでした:p
IanC

9

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

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

sudo apt-get install xfce4-terminal

それを開いて、 、[ 編集] -> [ 設定]、[ ]タブを選択して、[ 各タブの背景色を変える ]というオプションをチェックします。、そして今すぐ出口を。

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

これで、開くたびに、異なるカラーパレットが表示されます。 異なる色の端末

便利なリンク:


5

ハハ、非常に興味深い。私もこれをやってみるかもしれません。私は主に複数の端末とブラウザのみを実行しています。

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

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

だから、別の配色を選択するごとに、端末得るために、私は自分に機能を追加する.bash_profileか、.bashrc関数は2つのことを行い、このようなことを、またはどこ:

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

お役に立てれば!

PS私はあなたのためにスクリプトを書きますが、私はスプーンで餌を食べるのが嫌いで、私は怠け者です。:)


良いもの...ターミナルコマンドにラッパー/エイリアスを作成することで達成できます。
ヴィシュヌクマール

@VishnuKumarはい 気に入ってくれて嬉しいです。
-theabhinavdas

+1は大丈夫です。「ワークス」とは戦いたくありませんが、この答えには、ダイナミックカラープロジェクトで使用されている独自のスタイル定義を使用する必要があります。 '不透明度をサポートしていません:(答えには、gnome-terminal --load-config=FILE
-kpie

@kpie、ハハ。公正ではなく、不透明性は質問で言及されていません。また、コマンドラインから不透明度を設定することは難しく、多くのことに依存します。また、この質問にはさまざまな方法で答えられるかもしれませんが、私の答えは非常に便利だと思いました(私だけの場合は、笑):
theabhinavdas

私は私が必要なスクリプトを提供することにより、ニットピッキングを補うことができると思います... github.com/Krewn/stylingTerminalOnOpenそして、私はそれが変数不透明度をサポートしていない指定する必要があり、カラースキームは、デフォルトのプロファイルの不透明度を維持します。
kpie

1

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

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

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

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


+1で大丈夫と答えましたが、コンソールはありません。@ <MemoryAddress>の回答は、より多くの端末インターフェイス(OSCエスケープシーケンスをサポートするインターフェイス)をサポートします。しかし、あなたのものは使いやすいです。数日のうちに最高得票を獲得した人に賞金を贈ります。ご回答有難うございます!
kpie

あなたは実際に私はそれをインストールする方法を説明しておく必要があり私に言っ-_-ここでコメントしますどのように多くの人々驚かれると思います
マット・O.

他のANSに関するコメントを読みましたか?
kpie

やった。たぶん私は何かを見逃していますが、変数の不透明度とエイリアスを必要としないものを探しています。Konsoleは両方を実現しますが、エスケープシーケンスについてはわかりません。
マットO.

1
ハハ私はそれを得る。私を非難しないでください、ここに十分なナッツの人が編集を提案した後、私はちょうどそれを自動的に行います。私はあなたの知性をin辱するつもりはありません。
マットO.
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.