Como faço para forçar uma janela do tmux a ter um determinado tamanho

Como faço para forçar uma janela do tmux a ter um determinado tamanho

Quero forçar as janelas da minha tmuxsessão a terem um tamanho específico, independentemente do tamanho do meu terminal. Como posso fazer isso?

Contexto

Estou tentando gravar um tmux em asciinema conforme descrito aquihttps://github.com/asciinema/asciinema/wiki/Recording-tmux-session(execute asciinema em um tmux attachcomando). Porém a tela é muito grande, quero forçar o tamanho do arquivo tmux window.

Coisas que eu tentei

Eu tenho um trabalho bem-sucedido onde uso uma segunda visualização da sessão tmux para mate-terminal -e 70x20forçar o tamanho da janela ... mas isso parece um hack.

Tentando forçar o tamanho da sessão com -x

tmux new-session -x $X -y $Y -d

Essas opções parecem ser ignoradas (tentei mexer na configuração agressiva de redimensionamento)

Responder1

Você provavelmente precisará ter pelo menos três painéis abertos para ocupar as áreas indesejadas. Tente algo como

tmux new-session \; split-window -h \; split-window -v \; resize-pane -x 70 -y 20

Responder2

Isso deve fazer o que você deseja:

tmux new-session \; setw force-width 80 \; setw force-height 24 \; attach

ou com $Xe $Y, é claro.

Responder3

Este é um bug no tmux e foi corrigido na versão de desenvolvimento. A última versão lançada no momento é a 3.2a, que não possui a correção.

Parece apenas ignorar as opções -x e -y para uma nova sessão desanexada. A documentação diz que esses valores substituirão as configurações de tamanho padrão para novas janelas, o que sugeria a criação de uma nova sessão, a definição do tamanho padrão, o lançamento de uma nova janela e, em seguida, a eliminação da janela inicial. Isso funciona. No entanto, você pode usar as opções -x e -y para substituir a configuração de tamanho padrão para evitar a necessidade de ajustá-la, mas ainda será necessário criar uma nova janela. O problema é que -x e -y modificam o tamanho padrão da sessão após a janela inicial já ter sido criada.

tmux new-session -d -x $X -y $Y \; new-window ${MY_COMMAND} \; kill-window -t 0

Isso criará uma nova sessão com o tamanho padrão desejado, depois criará uma nova janela com o tamanho desejado executando ${MY_COMMAND} e, finalmente, encerrará a outra janela. Isso deve funcionar para executar um comando em um terminal virtual de quaisquer dimensões necessárias.

informação relacionada