mirror of
https://github.com/tmux/tmux.git
synced 2024-11-13 07:38:53 +00:00
48 lines
1.7 KiB
Plaintext
48 lines
1.7 KiB
Plaintext
bind m-4 run -C '#{@layout-vertical-two}'
|
|
|
|
set -g @layout-vertical-two {
|
|
selectl main-vertical
|
|
if -F '#{==:#{@vertical-two-active},true}' {
|
|
set -wu @vertical-two-active
|
|
} {
|
|
if -F '#{&&:#{==:#{N/s:layout_overflow},0},#{e|>=:#{n:#{P:x}},3}}' {
|
|
run -C '#{@layout-vertical-two-init}'
|
|
}
|
|
}
|
|
}
|
|
|
|
set -g @layout-vertical-two-init {
|
|
set -gF @total_panes '#{n:#{P:x}}'
|
|
set -gF @cur_window '#S:#I'
|
|
new -ds layout_overflow
|
|
run -C '\
|
|
swapw -t layout_overflow: -s . ;\
|
|
splitw -fh -l 40% -t #{@cur_window} ;\
|
|
splitw -h -t #{@cur_window}.2 ;\
|
|
swapp -s #{@cur_window}.1 -t layout_overflow:1.1 ; killp -t layout_overflow:1.1 ;\
|
|
swapp -s #{@cur_window}.2 -t layout_overflow:1.1 ; killp -t layout_overflow:1.1 ;\
|
|
swapp -s #{@cur_window}.3 -t layout_overflow:1.1 ; killp -t layout_overflow:1.1 ;\
|
|
#{@layout-vertical-two-loop}'
|
|
}
|
|
|
|
set -g @layout-vertical-two-cleanup {
|
|
set -gu @cur_window
|
|
set -gu @total_panes '#{n:#{P:x}}'
|
|
set -w @vertical-two-active true
|
|
selectp -t .1
|
|
}
|
|
|
|
# (x - 1) % 2 == 0 ? (x - 1) / 2 + 1 : x
|
|
# #{?#{==:#{e|%:#{e|-:#{cur_panes},1},2},0} <-- TODO: inserting horizontally shuffles windows.
|
|
# ,#{e|+:#{e|/:#{e|-:#{cur_panes},1},2},1} <-- end of first column
|
|
# ,#{cur_panes}} <-- end of second column
|
|
set -g @layout-vertical-two-loop {
|
|
# count(panes) < count(original.panes)
|
|
if -F '#{e|<:#{n:#{P:x}},#{@total_panes}}' {
|
|
run -C "joinp -s layout_overflow:1.1 -vt '#{@cur_window}.#{?#{==:#{e|%:#{e|-:#{#{n:#{P:x}}},1},2},0},#{e|+:#{e|/:#{e|-:#{#{n:#{P:x}}},1},2},1},#{#{n:#{P:x}}}}' ;\
|
|
selectl -E ; #{@layout-vertical-two-loop}"
|
|
} {
|
|
run -C '#{@layout-vertical-two-cleanup}'
|
|
}
|
|
}
|