Posso fazer um painel tmux "pegajoso"?

9

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

Arne
fonte

Respostas:

5

Este surge na lista de discussão cada vez em um 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 várias sessões, mas um painel pode pertencer apenas a uma única janela.

Chris Johnsen
fonte
3

Como Chris diz, não há funcionalidade incorporada para permitir que a marcação de um painel seja pegajosa, e isso faz sentido, porque não é imediatamente aparente como lidar com a reestruturação de todos os painéis em todas as outras janelas quando você alterna a "aderência" de algum painel específico na janela atual. Geralmente, seria uma má experiência do usuário mexer com o layout de uma maneira que nem é visível para o usuário.

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

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 esse vínculo, o tmux entrará e engolirá Alt+Ke Alt+Jmoverá o painel ativo para as janelas direita e esquerda, respectivamente.

Ele puxará a janela atual em que você está e a colocará na janela tmux adjacente. Você provavelmente pode especificar qual índice inserir o painel no layout da janela de destino. Veja a página de manual para outras opções que podem ser fornecidas move-pane.

Dessa maneira, é claro que ainda há uma alteração de layout (uma na janela de origem que está implícita e restrita a um painel e uma na janela de destino, também restrita a um painel e que é diretamente observada), mas é muito mais "controlado ", e enquanto você mantiver o foco no painel que pretende ser" fixo ", atinja seu objetivo, mais ou menos.

Eu ainda acho isso insatisfatório devido à necessidade de focar o painel que se pretende "pegajoso", e isso dificulta a emissão rápida desse comando se você deseja ter um painel pegajoso sempre visível, mas na verdade nunca o tem realmente focado .

Existe a possibilidade de criar scripts tmux um pouco mais elaborados, que usam nomes especiais para o painel que você pretende colar e 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 colado no pai tmux e faça com que o outro painel contenha um tmux que hospede o restante de seus terminais. Dessa forma, você pode alternar livremente no seu filho tmux. O problema é que você precisará criar algo viável porque, por padrão, precisará pressionar a tecla prefixo duas vezes para executar as mesmas tarefas. Muito chato também. Eu tenho vínculos que inteligentemente "encapsulam" através de quaisquer tmuxes aninhados, mas a lógica desses esquemas de transmissão de mensagens ineficientes rapidamente se torna difícil de gerenciar. E uma limitação disso é que o "painel pegajoso" aqui precisa abranger toda a altura ou largura, não pode ser um canto.

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

Steven Lu
fonte
2
Pelo que vale a pena, acho que, em vez de permitir a pegajosa, porque é realmente difícil definir o que fazer com outras janelas, deve haver um painel de clones, que aqueles que realmente desejam a pegajosidade poderiam explorar para obter o mesmo resultado. E, francamente, é o painel de clones que eu estava procurando que me levou até aqui também. Isso seria uma boa característica.
Tommi Kyntola