Eu gostaria de criar um "modo de foco" para o terminal usando tmux, mais ou menos como o que o goyo faz para o vim :

captura de tela goyo

Problema 1: dimensionando os painéis

Meu pensamento era conseguir isso dividindo a janela em três painéis e definindo o painel central para um valor máximo fixo (talvez 80 colunas? Talvez 100? Talvez máximos diferentes dependendo do tamanho da janela do terminal, como layouts responsivos da web?) E definindo o painéis laterais para preencher as colunas restantes igualmente. Também gostaria que isso funcionasse em telas de tamanhos variados, para que eu possa usá-lo no meu laptop e na minha área de trabalho.

Atualmente, a única maneira de pensar em fazer isso é com a cooperação do shell ( ou seja, para obter a largura do terminal tput colse calcular a largura necessária para cada painel usando operações matemáticas $(())). Eu estou bem com isso, mas se houvesse uma maneira embutida de fazer isso no tmux, eu me sentiria muito bobo por ter perdido.

Então ... existe?

Problema 2: apagando os painéis laterais

Isso é menos crucial; não é tão ruim ver um painel em branco com um prompt na parte superior. Eu sei que o tmux possui clock-mode(por exemplo), que substitui o conteúdo dos painéis e exibe outra coisa. Então, eu estou me perguntando se existe uma maneira de ocultar completamente o conteúdo de um painel inativo. Até agora, o melhor que posso encontrar é definir fg e bg para a mesma cor :

:select-pane -t:.1 -P 'fg=black,bg=black'

Ou, o Santo Graal

Tudo isso poderia ser realizado com muito mais facilidade se houvesse um recurso para margens em um painel no tmux. Que eu saiba, esse recurso não existe, mas estou longe de ser um especialista em tmux. Existe alguma chance de estar lá e eu simplesmente não sei sobre isso?

Ryan Lue
fonte