よくターミナルをリサイズするので、時計ペインのサイズが固定だと嬉しいと思い、スクリプトを組んでみました。
環境
zsh + tmuxという環境を想定しています。おそらくbashやfishでも代替手段が使えるはずです。
zshでウィンドウのリサイズを検知
zshでTRAPWINCH
関数を定義すると、ウィンドウのサイズが変わるたびにこの関数が呼び出されます。(TRAP WINdow CHange)
TRAPWINCH() { echo "window size was changed." }
tmuxで特定のペインのサイズを変更する
まず完成した設定をお見せします。
~/.tmux/resize-window
resize-pane -x 30 -y 10 -t 3
-t
はターゲットとなるペインの番号-x
は、ペインの幅を絶対値で指定-y
はペインの高さを絶対値で指定
これで3番目のペイン(僕の環境では時計が表示されているペインです)のサイズを30x10で固定します。
完成品
~/.zshrc
TRAPWINCH() { tmux source-file ~/.tmux/resize-window }
~/.tmux/resize-window
resize-pane -x 30 -y 10 -t 3
これで完成です。僕はさらにTRAPWINCHを抜き出してautoloadを設定したりしましたが、これでも十分使えます。