Comando de cambio de tamaño de LXTerminal y XTerm

Comando de cambio de tamaño de LXTerminal y XTerm

Quiero ejecutar un comando en un script bash que cambiará el tamaño de la ventana del terminal. en xterm

xterm -geometry=30x30

creará unnuevoventana xterm, y

lxterminal --geometry=30x30

creará unnuevoventana lxterminal.

¿Hay alguna manera de cambiar el tamaño de cualquiera de los terminales sin abrir una nueva ventana? Así es como se vería:

if [ $TERMINALTYPE=xterm ]; then
    DASH="-"
else
    DASH="--"
endif

echo -e $TERMINALTYPE" "$DASH"geometry 30x30"

PERO:Si hay un comando que sea de una sola línea y que funcione con cualquiera de los terminales (tal vez la secuencia de escape vt100), entonces es aún mejor.

Respuesta1

Hay dos pasos para esto. Primero, debe decirle a xterm que permita que esto suceda, porque de forma predeterminada ignora las solicitudes de los programas alojados para cambiar el tamaño de la ventana. Añade esto a tu ~/.Xdefaults:

xterm*allowWindowOps: true

Para que esto surta efecto, debes cerrar sesión o ejecutar:

xrdb ~/.Xdefaults

Luego lanza un nuevo xterm y en tu script bash:

echo -ne "\e[8;30;30t"

Respuesta2

Sólo quiero compartir:

apt-get install xterm

Utilice el siguiente comando de cambio de tamaño donde20= número de filas,40= número de columnas:

resize -s 20 40

Cambie el valor de filas y columnas según el requisito.

Respuesta3

Además deLa respuesta correcta de @Pablo:

Puedes probar esto sin editar ~/.Xdefaults, ejecutando:

xterm -xrm 'xterm*allowWindowOps: true'

Luego, en una nueva ventana:

printf "\e[8;%d;%dt" $[LINES+5] $[COLUMNS+5]

.Xdefaultso.Xresources

Dependiendo de su instalación, es posible que deba almacenarlo en .Xresourceslugar de .Xdefaults.

ARCHIVOS

Xrdb ​​no carga ningún archivo por sí solo, pero muchos entornos de escritorio suelen xrdbcargar ~/.Xresourcesarchivos al iniciar la sesión para inicializar la base de datos de recursos, como un reemplazo generalizado de ~/.Xdefaultslos archivos.

A continuación, después

sed -e '$axterm*allowWindowOps: true' -i.bak .Xresources 
xrdb <.Xresources

Entonces...

Algunas bindmuestras

Podrías ejecutar esto oagregar a tu.bashrc:

# Some bind for 'Shift' + <direction> key and allowWindowOps resource
bind -x '"\e[1;2C"':'printf  "\e[8;%d;%dt" $LINES $((COLUMNS+5))'
bind -x '"\e[1;2D"':'printf  "\e[8;%d;%dt" $LINES $((COLUMNS-5))'
bind -x '"\e[1;2B"':'printf  "\e[8;%d;%dt" $((LINES+3)) $COLUMNS'
bind -x '"\e[1;2A"':'printf  "\e[8;%d;%dt" $((LINES-3)) $COLUMNS'

para usarse con respectivamente: Shift+ Right   ,   Shift+ Left   ,   Shift+ Down   o   Shift+Up

Nota: Como esto enbind, esto funcionará en un entorno de comando interactivo (también conocido como no bajo vimni less, readni ningún trabajo en progreso)

información relacionada