Você pode usar o comando run-shell
do Tmux - conforme a página man:
run-shell -b [-t target-pane] shell-command
... shell-command is expanded using the rules specified in the
FORMATS section ...
A seção FORMATS descreve como as strings podem ser formatadas por meio de operações de substituição, como " #{pane_width}
".
Portanto, com run-shell
pode-se chamar um shell script, passando-lhe qualquer informação relativa à sessão, cliente, janela ou painel do Tmux. Tmux também permite que alguém emita comandos para o servidor, direcionado a um painel a partir da linha de comando. O script de shell necessário para emitir o comando DCL para definir a largura e a altura do terminal torna-se:
#!/usr/bin/env sh
# We're assuming the pane identifier is passed as the first
# argument.
#
PANE=$1
# It's possible to "fetch" information by invoking the
# Tmux display-message command (short form: display) and
# passing it the pane identifier with the target (-t) option.
#
WIDTH=$( tmux display -t $PANE -p "#{pane_width}" )
HEIGHT=$( tmux display -t $PANE -p "#{pane_height}" )
#
# Construct the DCL command to set terminal width and
# height explicitly.
#
CMD="SET TERM/PAGE=$HEIGHT/WIDTH=$WIDTH"
#
# Set the buffer to contain the DCL command string.
#
tmux setb "$CMD"
#
# Paste the buffer contents to the relevant pane.
#
tmux pasteb -t $PANE
#
# Press "Enter" in the relevant pane to execute the DCL command.
#
tmux send -t $PANE Enter
O que resta, então, é configurar uma chave acoplada que chamará run-shell
, chamando o script acima e passando o identificador do painel "atual" como o único argumento:
bind-key C-r run-shell "~/bin/resizevms.sh #{pane_id}"
Coloque isso no seu ~/.tmux.conf
e depois de fazer login, um rápido C-b C-r
definirá as coisas para você.