Como balancear automaticamente os painéis tmux sempre que um painel é adicionado / removido?

2

Para balancear os painéis na janela atual, pode-se usar Ctrl - b Meta - 1 . 5 ( 1 , 2 . No entanto, existe uma maneira de realizar esse balanceamento automaticamente sempre que um painel é adicionado ou removido?

Por exemplo, considere que tenho dois painéis igualmente altos no layout even-vertical . Agora, quando divido o painel atual em dois (superior e inferior), gostaria que o tmux equilibrasse automaticamente todos os painéis, de modo que consegui três painéis igualmente altos no layout even-vertical .

    
por s3rvac 02.10.2016 / 12:58

1 resposta

2

Você pode fornecer suas próprias ligações consistindo em comandos associados por \; . Por exemplo, no seu ~/.tmux.conf add

bind-key '"' split-window \; select-layout -n \; select-layout -p

Isto faz com que Ctrl-b " divida a janela, depois mude o layout para o próximo layout e, em seguida, retorne ao layout anterior. Você precisaria fazer isso para outros comandos que adicionam ou removem janelas .

Se você quiser mais controle automático, você pode escrever um processo de modo de controle tmux em segundo plano para ouvir um processo tmux real. Ele recebe notificações de tudo o que acontece no tmux real, e você pode enviar comandos select-layout sempre que vir uma notificação de uma nova janela ou de uma janela excluída. Eu não experimentei muito isso, mas se você usar 2 terminais e executar uma sessão normal em um

tmux new -s mysession

e no outro

tmux -C attach -t mysession

então quando você divide janelas, adiciona novas, ou fecha-as no tmux normal, você terá linhas como

%layout-change @2 91a8,80x23,0,0[80x11,0,0,5,80x11,0,12,7]
%window-add @3
%window-close @1

no tmux de controle. Quando você vê estes, você pode escrever select-layout -n no modo de controle, e isso afeta o primeiro. Há uma biblioteca python para usar este mecanismo, que eu não analisei ainda mais.

    
por 03.10.2016 / 21:27

Tags