LoginSignup
2
2

More than 5 years have passed since last update.

screenのバックグラウンドWindowのコマンドの終了ステータスでwindowタイトルの色を変えてみる

Last updated at Posted at 2014-08-27

これがやりたかった
ss 2014-08-27 16.11.34.jpg

screen+zshでwindowタイトルを変更することはできる
zshのプロンプトの色を変える方法は検索するとすぐに見つかる
ただ、終了ステータスが0以外だった時に、windowタイトルの色を替える方法がどうもわからない。

そこで、iterm限定の方法だが以下のようにしてみる。
まず.zshrcで

precmd(){
PREVENDSTATUS=$?
PROMPT="%{%(?.$fg[blue].$fg[red])%}% [%n@%m]%% %{$reset_color%}"
prev=`history -1 | sed "s/^[ 0-9]*//" | sed "s/ .*$//" | sed "s#/.*/##" `
RESULTTOPIC="[end]"
if [ $PREVENDSTATUS -ne 0 ]; then
RESULTTOPIC="!Error!"
fi
echo -n "^[k${RESULTTOPIC} $prev^[\\"
}

まず$?で実行したコマンドの終了ステータスを取得。
それをみて、0以外だったらwindowタイトルの先頭に"!Error! コマンド名"をつけて表示する
0だった場合は "[End]コマンド名"

そしてitermの
「Preferences] - [Advanced] - [Triggers]で[Edit]
ss 2014-08-27 16.10.33.jpg

プラスボタンを押して
Regular Expressionの欄に
!Error!
Actionの欄に
Highlight Text
Parametersの欄に
White on Red
ss 2014-08-27 16.10.52.jpg

とすると、screenタイトルの色が変わります。
ss 2014-08-27 16.11.34.jpg

以上、screen+zsh+iterm時の合わせ技でした。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2