カラーテーマを変更するOS Xターミナルコマンド


17

Mac OS Xターミナルの配色を変更するために使用できるコマンドはありますか?実行するスクリプトに応じて色を変更できるというアイデアが気に入っています。これまでのところ、PS1でbashプロンプトの色を変更していますが、これは大丈夫ですが、私が望むほど目立ちません。


私がやりたいのはTerminal -> Preferences -> Settings、コマンドでこれを行うことを除いて、端末の背景色を同じ方法で変更されるように変更することです。次のようなスクリプトを作成しますchangeBackgroundTheme; ssh; changeBackgroundTheme。これは、現在どのウィンドウがにあるかを思い出させるのに役立ちますssh
sixtyfootersdude

回答:


18

正確に何を達成したいか応じて、ターミナルスタイルを使用したAppleScriptのアイデアをいくつか紹介します。これらはtput、色付きのプロンプトによってリセットされるため、より堅牢です。など(少なくとも私にとって)。

これにより、Pythonを実行するすべてのタブ(現在テストに使用できるSSHサーバーはありません)がHomebrewに設定され、他のタブはOceanに設定されます。

tell application "Terminal"
    repeat with w from 1 to count windows
        repeat with t from 1 to count tabs of window w
            if processes of tab t of window w contains "Python" then
                set current settings of tab t of window w to (first settings set whose name is "Homebrew")
            else
                set current settings of tab t of window w to (first settings set whose name is "Ocean")
            end if
        end repeat
    end repeat
end tell

スクリプトとして保存しosascript Name.scpt、シェルの色を変更したいときにいつでも実行します(もちろん、これをシェルスクリプトまたは何かとしてラップできます)。

すべての長時間実行プロセスを別々に表示する場合は、次の条件を使用します。

if busy of tab t of window w is true then


または、手動で選択した単一のタブのスタイルを設定できます。

on run argv
    tell application "Terminal" to set current settings of tab (item 1 of argv as number) of front window to first settings set whose name is (item 2 of argv)
end run

次のように実行します。

osascript StyleTerm.scpt 3 Homebrew

->最前面のターミナルウィンドウの3番目のタブにHomebrewスタイルが追加されました!

バックグラウンドウィンドウを変更する場合は、「フロントウィンドウ」を「タブ」の直後のように括弧で囲んだ式に置き換えます。選択した「現在のタブ」を常に変更する場合は、のselected tab代わりに使用しますtab (item 1 of argv as number)


.bash_profile最初の解決策が手作業すぎる場合は、次を追加します。

PROMPT_COMMAND='osascript "/path/to/Name.scpt"'

現在、すべてのプロンプトの前に実行されます(問題のみ:何かを開始した後でsshはありません。しかし、このトピックはとにかく派手なbashトリックに関するものではありません。これは単なるポインターです)。


6

スクリプトはこのtputコマンドを使用して、ポータブルな方法で色を設定できます。次のスクリプトを試してみると、端末が明るいシアンのテキストを含む暗いシアンの背景にクリアされます。

#!/bin/bash
tput setab 6
tput clear
tput setaf 14
echo Hello World

これについての詳細man 5 terminfoは、「カラー処理」セクションを参照してください。

端末が直接認識するエスケープシーケンスをエコーすることで、同じことを行うことができます。より高速になりますが、別の端末プログラムを使用して動作しない場合があります。それらの多くはxtermシーケンスを認識し、ここに上記のスクリプトがそれらを使用するように見えるものがあります。

#!/bin/bash
printf "\033[48;5;6m"  # or "\033[46m"
printf "\033[H\033[2J" # your system's clear command does something similar
printf "\033[38;5;14m" # or "\033[96m"
echo Hello World

xtermの制御シーケンスに関する詳細はこちらにあります


これは色に何らかの影響を与えるように見えますが、setafは私には何もしません。私が本当に望んでいるのは、waiwaiのようなMac OSターミナルのテーマを変更するものですが、GUIを使用せずにプログラムで行うことです。
satur9nine

同様に使用されているテーマを変更する方法はありTerminal -> Preferences -> Settingsますか?
sixtyfootersdude

@sixtyfootersdude:おそらくそれを行う方法はありますosascriptが、私はそれをよく知りません。
追って通知があるまで一時停止します。

1

applescriptを使用して、すべての新しい端末にランダムなテーマを与えることができます。

を編集して.bash_profileこのコマンドを追加します

osascript -e "tell application \"Terminal\" to set current settings of front window to some settings set"

同じランダムテーマターミナルを入手した場合は、いつでも⌘I手動でヒットして設定できます。

これは、見た目が異なる端末テーマがたくさんある場合に便利です。周りを見ると、そのための多くのサイトがあります。


いいね。このコマンドからエイリアスを作成したので、手動で新しい設定にランダムに変更できます。
-WeakPointer
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.