È possibile ridimensionare una finestra Terminale con un comando Terminale?


38

In modo che potessi ridimensionare la finestra ad una certa dimensione all'interno del Terminale.

Risposte:


58

Sì. Il terminale supporta sequenze di escape per la manipolazione di finestre, inclusi dimensioni e posizione, stratificazione e minimizzazione. Le dimensioni possono essere espresse in pixel o caratteri. Per i dettagli, vedere Xterm Control Sequences (cercare "Manipolazione delle finestre"; se non si ha familiarità con la notazione, "CSI" sta per "Control Sequence Introducer", ovvero ESC [).

Ad esempio, questo comando di shell imposterà la finestra su 100x50 caratteri:

printf '\e[8;50;100t'

Ridurre a icona la finestra per alcuni secondi, quindi ripristinarla:

printf '\e[2t' && sleep 3 && printf '\e[1t'

Spostare la finestra nell'angolo superiore / sinistro del display:

printf '\e[3;0;0t'

Ingrandisci la finestra:

printf '\e[9;1t'

Porta la finestra in primo piano (senza cambiare lo stato attivo della tastiera):

printf '\e[5t'

Abilitazione delle sequenze di controllo negli emulatori di terminale

Alcuni emulatori di terminale ignorano queste sequenze di controllo per impostazione predefinita e richiedono la configurazione per abilitarle.

Per abilitarli in XTerm , imposta la seguente risorsa su true:

allowWindowOps

Per abilitarli in iTerm2 , deseleziona la seguente preferenza:

Preferenze> Profili> [profilo]> Terminale> Disabilita il ridimensionamento della finestra avviato dalla sessione


Questo è semplicemente perfetto!
LopSae,

2
Da ora in poi sei il mio dio!
D12 congelato il

2
Questo non sembra funzionare su Yosemite con iterm2
Jistanidiot

Funziona benissimo ma sembra che Terminal non accetti ridimensionamenti che renderebbero la finestra solo parzialmente visibile sullo schermo. Ho appena provato printf '\ e [8; 100; 100t' e questo ha troncato a 79x100, proprio quello che potrebbe essere adatto. Il mio problema è che devo bypassare il mouse solo per questo caso di ingrandimento del Terminale oltre i limiti dello schermo ...
phs,

1
Questo funziona anche con iTerm2.
TextGeek

10

Puoi sempre usare AppleScript:

setwidth() { osascript -e "tell app \"Terminal\" to tell window 1
set b to bounds
set item 3 of b to (item 1 of b) + $1
set bounds to b
end"; }

Funziona solo con la finestra / scheda del terminale attualmente attiva. Affinché funzioni in modo affidabile, ottenere l'attuale percorso del dispositivo tty e individuare la scheda del terminale corrispondente.
Chris Page


10

Usa /usr/X11/bin/resize.

resize -s 30 80 ti darà 30 righe e 80 colonne.

resize -s 30 0 ti darà 30 righe e colonne piene.

resize -s 0 80 ti darà righe complete e 80 colonne.


1
Questa soluzione non è limitata a MacOS. È basato su terminali, quindi dovrebbe funzionare su tutti i terminali. Lo uso per ridimensionare le finestre PuTTY su Windows che eseguono bash shell con TERM = xterm.
DrStrangepork,

4
Questo non sembra funzionare su Yosemite in iterm2.
Jistanidiot,

Questo funziona per me con Apple Terminal ma non con iTerm2. Tuttavia, l'invio della sequenza di escape \ e [8; 24; 80t funziona con entrambi.
TextGeek

1
@KrishenGreenwell Fare riferimento alla documentazione iTerm2. Per impostazione predefinita, ignora queste sequenze di controllo. C'è una preferenza per controllare se vengono ignorati.
Chris Page

1
Questa soluzione funzionava, ma penso che i comandi X11 siano spariti. Forse, possono essere installati installando X11, ma non voglio installare X11 solo per avere il comando di ridimensionamento.
Gabriel,

-2

In realtà sai, spostare una finestra di ridimensionamento con il mouse è terribilmente lento.

Sto usando questa app SizeUp da molto tempo ormai. In pratica ridimensiona qualsiasi finestra dell'applicazione usando il comando da tastiera.

Puoi eseguire le seguenti operazioni (i miei comandi da tastiera personalizzati di seguito):

  • rendere la finestra a schermo intero ( control+ option+ command+ m)
  • sposta una finestra di 1/2 dello schermo a sinistra o a destra ( control+ option+ command+ / )
  • sposta una finestra di 1/4 dello schermo in qualsiasi angolo ( control+ option+ shift+ / / / )
  • sposta le finestre tra gli schermi
  • sposta le finestre tra gli spazi

Penso che questo potrebbe fare il trucco e aiutare anche con la gestione di altre finestre.


Sebbene utile, questo non affronta la domanda posta dall'interrogante.
Andrew Ferrier,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.