tmuxinatorを使用して、1つのウィンドウに7つのウィンドウカスタムレイアウトを持つtmuxセッションを開始します。
tmuxinator セッション構成にはレイアウトを持つチャネルがあります。
layout: 3db3,233x59,0,0[233x9,0,0{77x9,0,0,3,77x9,78,0,5,77x9,156,0,6},233x9,0,10{77x9,0,10,7,77x9,78,10,8,77x9,156,10,9},233x39,0,20,10]
すべてが正常です。 tmuxが正しいウィンドウサイズで開きます。
また、tmux.confにはウィンドウのサイズ変更に反応するフックがあります。
set-hook -g window-resized 'select-layout -t s01:4 "3db3,233x59,0,0[233x9,0,0{77x9,0,0,3,77x9,78,0,5,77x9,156,0,6},233x9,0,10{77x9,0,10,7,77x9,78,10,8,77x9,156,10,9},233x39,0,20,10]"'
ウィンドウサイズを小さくして元のサイズに戻すと、すべてのウィンドウが元のサイズに戻ります。大丈夫です。
ウィンドウのサイズを変更しながら、tmuxはすべてのウィンドウのサイズを比例的に調整します...上部6つのウィンドウの高さを維持したいと思います。 9、下のウィンドウの高さだけを減らす必要があります。
また、私のターミナルエミュレータには、画面サイズが233 x 59から236 x 62に拡張されたフルスクリーンモードがあります...フルスクリーンモードに入るとき、上部6つのウィンドウの高さを9に保ちたいです。 lowerウィンドウの高さを増やす必要があります。
アイデアはフックの2つの部分を修正することです。
"3db3,233x59,0,0..." -> 現在の画面の高さを配置するには、59に変更します。
「...233x39,0,20,10] -> 39に変更し、現在の画面の高さ(9+1+9+1)から20を減算します。
たとえば、最初のフックを見ると、 "display"コマンドは期待どおりに$LAYOUT_STR変数を数値とともに表示します。
set-hook -g window-resized 'WINDOW_HEIGHT="#{window_height}"; PANE_HIEGHT="#{e|-:$WINDOW_HEIGHT,20}"; LAYOUT_STR="3db3,233x$WINDOW_HEIGHT,0,0[233x9,0,0{77x9,0,0,3,77x9,78,0,5,77x9,156,0,6},233x9,0,10{77x9,0,10,7,77x9,78,10,8,77x9,156,10,9},233x$PANE_HEIGHT,0,20,10]"; display $LAYOUT_STR'
出力:
3db3,233x59,0,0[233x9,0,0{77x9,0,0,3,77x9,78,0,5,77x9,156,0,6},233x9,0,10{77x9,0,10,7,77x9,78,10,8,77x9,156,10,9},233x39,0,20,10]
次に、選択レイアウトを含むフックとその出力を見てみましょう。
set-hook -g window-resized 'WINDOW_HEIGHT="#{window_height}"; PANE_HIEGHT="#{e|-:$WINDOW_HEIGHT,20}"; LAYOUT_STR="3db3,233x$WINDOW_HEIGHT,0,0[233x9,0,0{77x9,0,0,3,77x9,78,0,5,77x9,156,0,6},233x9,0,10{77x9,0,10,7,77x9,78,10,8,77x9,156,10,9},233x$PANE_HEIGHT,0,20,10]"; select-layout -t s01:4 $LAYOUT_STR'
出力:
Invalid layout: 3db3,233x#{window_height},0,0[233x9,0,0{77x9,0,0,3,77x9,78,0,5,77x9,156,0,6},233x9,0,10{77x9,0,10,7,77x9,78,10,8,77x9,156,10,9},233x#{e|-:#{window_height},20},0,20,10])
どうすれば修正できますか?
答え1
コマンドで変数置換を正しく実行する方法を見つけました。... select-layout -t s01:4 $LAYOUT_STR
正しい方法は、「run-shell」コマンドを使用することです。
これは働きます:... run-shell -b "exec tmux select-layout -t s01:4 $LAYOUT_STR &"