最近 vim や tmux などステータスラインの表示に絵文字を活用するのがマイブームです。
マウスモードを表示
以前から、以下のエントリにあるような設定を入れて prefix-m
でマウスモードのON/OFFを簡単に切り替えられるようにしています。
tmuxでマウスモードのON/OFFを単一キーで簡単に切り替える - Qiita
で、切り替えが簡単だとモードの表示をしたくなるよね。ってことでマウスモードがステータスラインに表示されるようにしてみました。
# マウスモードを右側に表示 ← NEW!
set -g status-right '#(tmux show-option -g mouse | grep -q on && echo "🐹 ")'
# マウスモードを簡単切り替え(デフォルトはOFFにしておいて、prefix+mで切替える) https://y-kawaz.hatenadiary.org/entry/20130308/1362735393
set-option -g mouse off
bind-key m if-shell "tmux show-options -g mouse | grep -q off" "set-option -g mouse on" "set-option -g mouse off" \; refresh-client
🐹 (ネズミの絵文字)は黒背景で結構視認性が良くていい感じです。
各ウィンドウのタブにズームモードを表示
同じような感じで、prefix-z
でカレントpaneを全画面表示にしたり戻したりという機能をよく使うのでこれもステータスに拡大モードの表示が出来るようにしてみました。
ズームモードの場合は tmux 側で window_zoomed_flag
というフラグが使えるようなのでこれを利用します。
具体的には拡大モードを示すアイコンを挿入したい位置に #{?window_zoomed_flag,🔍 ,}
を埋め込む感じになります。
パワーライン的な表示設定があるせいでちょっとごちゃついてますが、例えば現在の僕の設定は以下のようになっています。各自の設定ではウィンドウ名表示の #W
の前か後ろ辺りに足すのが良いと思います。
set -g window-status-format "#[fg=colour244,bg=colour234] #I #[fg=colour240] #[default]#{?window_zoomed_flag,🔍 ,}#W "
set -g window-status-current-format "#[fg=colour234,bg=colour31]#[fg=colour117,bg=colour31] #I #[fg=colour231,bold]#{?window_zoomed_flag,🔍 ,}#W #[fg=colour31,bg=colour234,nobold]"
window-status-format
はカレントウィンドウ以外のタブ用、window-status-current-format
はカレントウィンドウ用の設定箇所です。
🔍 (虫眼鏡アイコン絵文字) はちょっと視認性が良くないので他の文字に変えようか検討中ですが、とりあえず今はこれで運用中。
ambiguous width (曖昧な文字幅)について
絵文字は大抵のアプリでは内部的に半角幅として扱われるようですが、表示上は全角幅な感じになる、特にターミナル環境ではちょっと嫌な感じのユニコード文字です。
で、この文字を半角として扱うか全角として扱うかどうかの設定が、iTerm
や vim
などの各種アプリにあることがありますが、昔から色んなケースを経験した結果、全てのアプリで半角として扱うようにして表示上の文字が被る問題には目をつぶるのが無難だなという結論に落ち着きました。表示上は綺麗でも見た目とカーソル位置がズレてしまうことで隣の文字を消してしまう事故の方が厄介なのでね…。
なので絵文字を埋めるときは 絵文字+半角スペース
をワンセットで使うのが毎ベストプラクティスです。上述の設定もそのようにしています。