読者です 読者をやめる 読者になる 読者になる

bekkou68の日記

開発しているサービス, IT技術, 英語など。

screen のステータスバーのタイトルを前回実行したコマンドにする

screen

ゴール

screen のステータスバーのタイトルに前回実行したコマンドが表示されること。ただし、実行したコマンドがあまり長いとそのタイトルも長くなりすぎて他を隠してしまうので、「コマンド名+第一引数」で文字数10の制限をつけて表示させること。

以下のようなイメージ。

.zshrc

.zshrc に以下のように追加。

# Show previous-typed command to screen title
# Not to show lengthy title, show only command and a first arg if exists
preexec() {
  if [ $TERM = "screen" ]; then # Not to show previous-typed command on not screen
    command="${(z)2}"
    array=(`echo $command`) # String to Array
    title=(`echo "$array[1] $array[2]" | cut -c1-10`)
    echo -ne "\ek[$title]\e\\"
  fi
}

FYI、.zshrc を公開しています。よりよい screenライフを!