Subscribed unsubscribe Subscribe Subscribe

hostごとにstatus lineの色を変える

(※その後: -> hostごとにstatus lineの色を変える・改 - すぎゃーんメモ)

もちろんtmuxはデフォルトでstatus lineの右側にhostnameを出力してくれているのだけど、わざわざそれを読むのすらめんどくさい。色が分かれていればhostnameを読むまでもなく視界に入っているだけで判別できるはずだ。
ということで140文字hack。

これを以下のように.zshrcに書いた。

if ! [ "$TMUX" = "" ]; then
    tmux set-option status-bg $(perl -MList::Util=sum -e'print+(red,green,blue,yellow,cyan,magenta,white)[sum(unpack"C*",shift)%7]' $(hostname)) | cat > /dev/null
fi

シェル起動時にhostnameから判定してステータスラインの色を変える。出力結果をそのまま/dev/nullに捨てようとするとLinux環境でハングするバグ(?)があるのでパイプに流して回避w

ランダムに毎回変わってしまうのでは不便だし、環境から一意に決まる数字で色を決める。この例だと7種類しか選択肢がないので運悪く同じになってしまうとアレだけど… "colour0".."colour255"で選ぶのも微妙だしなぁ。
hostnameなどの情報からハッシュ的に一意な数字を決めるのってもっと良い方法ないだろうか?