¿Cómo fuerzo que una ventana tmux tenga un tamaño determinado?

¿Cómo fuerzo que una ventana tmux tenga un tamaño determinado?

Quiero forzar que las ventanas de mi tmuxsesió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 attachcomando). 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 70x20forzar 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 $Xy $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.

información relacionada