私のトップウィンドウには常に2行サイズのtmux設定があります。残念ながら、端末のサイズを変更するたびに比率が完全にリセットされ、上部ウィンドウはより多くのスペースを占有します。
.tmux.conf
F12キーを押してウィンドウのサイズを変更できるバインディングをファイルに作成しました。bind -n F12 resize-pane -t 0 -y 2
ただし、すべてのサイズ変更イベントでこれを自動的に実行したいと思います。どういうわけか効率的にこれを行う方法はありますか?
答え1
バージョン2.7くらいで以下を試してみましたが、うまくいくようです。複数のイベントでtmuxコマンドを実行するフックを追加できます。特にwindow-layout-changed
ウィンドウのサイズが調整されトリガーされるように見える場合は、さらにそうです。私は明らかなことを試しました
set-hook -g window-layout-changed 'resize-pane -t 0 -y 2'
ただし、これを行うと無限ループが発生します。一部のイベントでは後ろにバージョンですがafter-window-layout-changed
イベントがないようです。 (tmuxの以前のバージョンにはlayout-changed
イベントがありましたが、正しく動作しませんでした。)
最後に、ウィンドウの現在のサイズを確認し、必要に応じてサイズを変更するmyscript
小さなシェルスクリプトを作成しました。PATH
#!/bin/bash
ht=$(tmux display-message -p -t 0 '#{pane_height}')
if [ 2 != "$ht" ]
then tmux display-panes\; resize-pane -t 0 -y 2
fi
display-panes
スクリプトが実行中であることを確認するために追加されました。これは次のような場合に効果があるようです。
set-hook -g window-layout-changed 'run-shell myscript'
ウィンドウ0だけが残っていても同じです(したがってサイズを変更できません)。