Posso fazer um painel tmux “pegajoso”?

9

É possível tornar um ou mais painéis tmux "fixos"? Ou seja esses painéis aparecerão em todas as janelas que estão atualmente disponíveis na minha sessão do tmux?

    
por Arne 29.11.2013 / 10:00

2 respostas

5

Isso aparece na lista de discussão a cada uma vez in a enquanto .

Não, não é possível ter um painel em mais de uma janela.

O design interno do tmux permite que as janelas sejam múltiplas sessões, mas um painel só pode pertencer a uma única janela.

    
por 30.11.2013 / 08:56
3

Como Chris diz, não há nenhuma funcionalidade embutida para permitir a marcação de um painel como algo pegajoso, e isso faz sentido, porque não é de modo algum imediatamente aparente como lidar com a reestruturação de todos os painéis em todos as outras janelas quando você alterna a "rigidez" de algum painel em particular na janela atual. Geralmente, seria uma má experiência do usuário estar mexendo com o layout de uma maneira que não é visível para o usuário.

Você pode achar útil uma ligação assim:

bind -n M-k move-pane -t ':+'
bind -n M-j move-pane -t ':-'

Isso seria amigável para um usuário do Vim acostumado a J e K para mover para a esquerda e para a direita. Com este bind, o tmux vai entrar e engolir Alt + K e Alt + J para mover o painel ativo para as janelas direita e esquerda, respectivamente.

Ele puxará a janela atual em que você está e a colocará na janela do tmux adjacente. Você pode até mesmo especificar qual índice para inserir o painel no layout da janela de destino. Veja a manpage para as outras opções que podem ser dadas para move-pane .

Dessa forma, é claro que ainda há uma mudança de layout (uma na janela de origem que é implícita e restrita a um painel e uma na janela de destino, também restrita a um painel e que é observada diretamente), mas é muito mais "controlado", e desde que você mantenha o foco no painel destinado a ser "pegajoso", atinge seu objetivo, mais ou menos.

Eu ainda acho isso insatisfatório por causa da necessidade de focar o painel destinado a ser "pegajoso", e isso dificulta a emissão rápida desse comando se você quiser ter um painel fixo que esteja sempre visível, mas você nunca realmente realmente tê-lo focado.

Existe a possibilidade de criar scripts tmux um pouco mais elaborados, que usam nomes especiais para o painel que você pretende manter e que organiza manualmente as coisas para você. Isso soa como uma dor na bunda, no entanto.

Uma última opção para entreter é usar o tmux aninhado: Coloque seu painel fixo no tmux pai e o outro painel conterá um tmux que hospeda o resto dos seus terminais. Desta forma, você pode alternar livremente em seu filho tmux. O problema com isso é que você precisará criar algo viável, pois, por padrão, você precisará pressionar a tecla de prefixo duas vezes para executar as mesmas tarefas. Muito chato também. Liguei-o de maneira inteligente a "encapsulamento" através de qualquer tmuxes aninhados, mas a lógica desses esquemas de passagem de mensagens ineficientes rapidamente se torna difícil de gerenciar. E uma limitação com isso é que o "painel pegajoso" aqui tem que abranger toda a altura ou largura, não pode ser um canto.

Em conclusão, eu diria que este é um recurso que o tmux deve implementar para nós, porque é quase impossível fazer o certo com o script, no entanto, eu não sei como isso poderia ser feito de uma maneira não confusa. minha primeira frase).

    
por 14.12.2013 / 16:12

Tags