LXTerminal- und XTerm-Größenänderungsbefehl

LXTerminal- und XTerm-Größenänderungsbefehl

Ich möchte einen Befehl in einem Bash-Skript ausführen, der die Größe des Terminalfensters ändert. In xterm

xterm -geometry=30x30

wird eineneuxterm-Fenster und

lxterminal --geometry=30x30

wird eineneulxterminal-Fenster.

Gibt es eine Möglichkeit, die Größe eines Terminals zu ändern, ohne ein neues Fenster zu öffnen? So würde es aussehen:

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

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

ABER:Wenn es einen Befehl gibt, der aus einem schönen Einzeiler besteht und mit beiden Terminals funktioniert (vielleicht die Escape-Sequenz von vt100), ist das sogar noch besser.

Antwort1

Dazu sind zwei Schritte erforderlich. Zunächst müssen Sie xterm anweisen, dies überhaupt zuzulassen, da es standardmäßig Anfragen von gehosteten Programmen zur Größenänderung des Fensters ignoriert. Fügen Sie Folgendes zu Ihrer Datei ~/.Xdefaults hinzu:

xterm*allowWindowOps: true

Damit dies wirksam wird, müssen Sie sich entweder abmelden oder Folgendes ausführen:

xrdb ~/.Xdefaults

Starten Sie dann ein neues Xterm und geben Sie in Ihrem Bash-Skript Folgendes ein:

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

Antwort2

Ich möchte nur Folgendes mitteilen:

apt-get install xterm

Verwenden Sie den folgenden Größenänderungsbefehl, wobei20= Anzahl der Zeilen,40= Anzahl der Spalten:

resize -s 20 40

Ändern Sie den Wert von Zeilen und Spalten je nach Bedarf.

Antwort3

Zusätzlich zu@Pauls richtige Antwort:

Sie können dies ohne Bearbeitung versuchen ~/.Xdefaults, indem Sie Folgendes ausführen:

xterm -xrm 'xterm*allowWindowOps: true'

Dann in einem neuen Fenster:

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

.Xdefaultsoder.Xresources

Abhängig von Ihrer Installation müssen Sie dies möglicherweise auf .Xresourcesstatt speichern .Xdefaults.

DATEIEN

Xrdb ​​lädt selbst keine Dateien, aber viele Desktopumgebungen xrdbladen ~/.XresourcesDateien beim Starten einer Sitzung, um die Ressourcendatenbank zu initialisieren, als allgemeinen Ersatz für ~/.XdefaultsDateien.

Dann danach

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

Dann...

Einige bindBeispiele

Sie können dies ausführen oderhinzufügen zu Ihrem.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'

zu verwenden mit: Shift+ Right   ,   Shift+ Left   ,   Shift+ Down   oder   Shift+Up

Notiz: Da dies inbinden, dies funktioniert in einer interaktiven Befehlsumgebung (also nicht unter vim„nor“ lessoder readin Arbeit)

verwandte Informationen