Quiero forzar que las ventanas de mi tmux
sesión tengan un tamaño particular, independientemente del tamaño de mi terminal. ¿Cómo puedo hacer esto?
Contexto
Estoy intentando grabar un tmux en asciinema como se describe aquí.https://github.com/asciinema/asciinema/wiki/Recording-tmux-session(ejecute asciinema con un tmux attach
comando). Sin embargo, la pantalla es demasiado grande, quiero forzar el tamaño del archivo tmux window
.
Cosas que he probado
Tengo una solución exitosa donde uso una segunda vista de la sesión tmux para mate-terminal -e 70x20
forzar el tamaño de la ventana... pero esto parece un truco.
Intentando forzar el tamaño de la sesión con -x
tmux new-session -x $X -y $Y -d
Estas opciones parecen ignorarse (he intentado modificar la configuración de cambio de tamaño agresivo)
Respuesta1
Probablemente necesites tener al menos 3 paneles abiertos para ocupar las áreas no deseadas. Prueba algo como
tmux new-session \; split-window -h \; split-window -v \; resize-pane -x 70 -y 20
Respuesta2
Esto debería hacer lo que quieres:
tmux new-session \; setw force-width 80 \; setw force-height 24 \; attach
o con $X
y $Y
, por supuesto.
Respuesta3
Este es un error en tmux y se ha solucionado en la versión de desarrollo. La última versión lanzada en este momento es la 3.2a, que no tiene la solución.
Solo parece ignorar las opciones -x e -y para una nueva sesión separada. La documentación dice que estos valores anularán la configuración de tamaño predeterminado para nuevas ventanas, lo que sugiere crear una nueva sesión, establecer el tamaño predeterminado, abrir una nueva ventana y luego cerrar la ventana inicial. Eso funciona. Sin embargo, puede usar las opciones -x e -y para anular la configuración de tamaño predeterminado y evitar la necesidad de ajustarla, pero aún debe crear una nueva ventana. El problema es que -x e -y modifican el tamaño predeterminado de la sesión una vez que se ha creado la ventana inicial.
tmux new-session -d -x $X -y $Y \; new-window ${MY_COMMAND} \; kill-window -t 0
Eso creará una nueva sesión con el tamaño predeterminado que desea, luego creará una nueva ventana con el tamaño deseado ejecutando ${MY_COMMAND} y finalmente cerrará la otra ventana. Esto debería funcionar para ejecutar un comando en una terminal virtual de cualquier dimensión que se requiera.