Sua sugestão select-layout
está no caminho certo, mas precisa ser invocada depois que cada novo painel for criado. Todos os painéis são imediatamente reorganizados, então (no meu teste - um terminal 95x58) há espaço suficiente para a próxima divisão.
Para evitar a mensagem can't join a pane to its own window
, é útil criar uma janela adicional, depois mover todas as janelas existentes para ela e finalizar o painel extra no final. parallel
não é a ferramenta certa para isso - seria melhor você consultar as janelas em execução e mover cada uma delas em um loop:
top=$(tmux -S $SERVER new-window -P -n all)
tmux -S $SERVER list-panes -a | grep -v "^$top" | grep -o "%[0-9]\+\>" |
while read p ; do
tmux -S $SERVER joinp -s $p -t $top
tmux -S $SERVER select-layout tiled
done
tmux -S $SERVER kill-pane -t $top
tmux -S $SERVER select-layout tiled
Como alternativa, você pode fazer com que cada novo painel tenha 1 linha de altura, com joinp -l 1
. Dependendo do tamanho do seu terminal, isso pode ser suficiente para apenas precisar do select-layout
no final.
No entanto, parallel
não controla as janelas / painéis tmux
existentes e simplesmente inicia cada trabalho em uma nova janela. O antigo pode desaparecer, dependendo da configuração permanecer na saída . Então, depois de um tempo, a janela original (que mostrava cada trabalho em um painel) não conterá trabalhos em execução e todos os novos trabalhos estarão em suas próprias janelas novamente. Você terá que reexecutar o script para mover todas as janelas (e quaisquer painéis antigos) para uma única janela novamente.