web-dev-qa-db-ja.com

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

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

17
satur9nine

正確に達成したいことに応じて、ターミナルスタイルを使用した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スタイルになります!

背景ウィンドウを変更する場合は、「フロントウィンドウ」を「タブ」の直後のように括弧で囲まれた式に置き換えます。選択した「現在のタブ」を常に変更したい場合は、tab (item 1 of argv as number)ではなく_selected tab_を使用してください。


最初の解決策が手作業になりすぎる場合は、_.bash_profile_に以下を追加します。

_Prompt_COMMAND='osascript "/path/to/Name.scpt"'_

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

18
Daniel Beck

スクリプトは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制御シーケンスに関する詳細情報があります ここ

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

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

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

同じランダムテーマ端末を入手した場合は、いつでも⌘Iを押して手動で設定できます。

これは、さまざまな外観の端末テーマが多数ある場合に、より役立ちます。周りを見渡せば、そのためのサイトはたくさんあります。

1
G_Gus