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

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

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

答え1

何に応じてその通りあなたが達成したいことのために、ターミナルスタイルを使用した 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 トリックに関するものではありません。これは単なるポインタです。)

答え2

スクリプトでは、 コマンドを使用して移植可能な方法で色を設定できます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制御シーケンスに関する詳細情報ここ

答え3

AppleScript を使用すると、すべての新しいターミナルにランダムなテーマを割り当てることができます。

編集し.bash_profileてこのコマンドを追加してください

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

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

見た目が異なるターミナルテーマをたくさん入手する場合、これはより便利です。探せば、そのためのサイトが多数見つかります。

答え4

この AppleScript は、私の環境では OS X 14.3 で動作します (他の回答は動作しません)。

tell application "Terminal"
    repeat with i in windows
        try
            set current settings of tabs in i to settings set "Solarized Dark"
        end try
    end repeat
end tell

ターミナル アプリケーションは、OS X 14.3 でタブとウィンドウの表示方法を変更したようで、一部のウィンドウのタブを反復処理すると確実にエラーが発生します。ただし、これらは実際のウィンドウではないため、無視することができます (私はブロックを使用して無視していますtry ... end try)。

私は次のような小さなスクリプトをシェル スクリプトにインライン化する傾向があります。

osascript -e "tell application \"Terminal\"
    repeat with i in windows
        try
            set current settings of tabs in i to settings set \"Solarized Dark\"
        end try
    end repeat
end tell"

私は個人的に、ターミナルでライトテーマとダークテーマを自動的に切り替えるためにこれを使用しています(新しいターミナルタブを開くか、関数を実行するだけですcolor_mode)。これを行うための完全なコードを見ることができます。私のdotfilesリポジトリ

関連情報