Come chiudere, minimizzare e massimizzare una finestra specificata dal Terminale?


17

Sto eseguendo Ubuntu GNOME 15.10 con GNOME 3.18 e mi chiedo se ci sia un modo per chiudere, minimizzare, minimizzare, massimizzare e minimizzare le finestre specificate dal Terminale?

Nota - Ho dato un'occhiata a queste domande e risposte - Sto chiedendo come farlo dal Terminale ... Non come aggiungere i pulsanti ... I pulsanti sono già lì, non ho bisogno di aggiungerli.



@Anastasia: come è un duplicato di questo? Ciò richiede solo di minimizzare ... Sto chiedendo anche di tutte le altre cose a cui non viene data risposta.

Ho ipotizzato che tali azioni siano così strettamente correlate che rispondere a una dovrebbe portare a tutte le altre, ma hai ragione, potrebbe essere una scelta ampia. Ora mi chiedo anche che in sottoinsiemi di domande possano essere considerati duplicati.
Anastasia,

@Anastasia: Beh, perché le risposte all'altra domanda in realtà non menzionano come raggiungere questo obiettivo, anche se mi aiutassero, non è ancora un duplicato di quella domanda. Inoltre, anche se le risposte all'altra domanda rispondono alla mia domanda, la mia domanda non sta ancora ponendo la stessa cosa dell'altra.

Ciao Para, spero che la domanda sia ancora "aperta". Una panoramica ...
Jacob Vlijm,

Risposte:


18

Esistono due strumenti importanti per manipolare Windows cli; xdotoole wmctrl. Entrambi gli strumenti si sovrappongono per funzionalità, ma i comandi più importanti che si riferiscono alla tua domanda:

In una panoramica (senza dubbio incompleta), che elenca i comandi che utilizzo di più:

Chiudere una finestra

wmctrl:

wmctrl -ic <window_id>

Ridurre a icona una finestra

xdotool:

xdotool windowminimize <window_id>

Non minimizzare una finestra

wmctrl:

effettivamente la minimizzazione viene effettuata da:

wmctrl -ia <window_id>

Cito efficace , dal momento che il comando si sposta sul desktop corrispondente, unminimizes e solleva la finestra, ma il comando anche se la detta sulle finestre che non sono minimizzata.

Massimizzare una finestra

xdotool:

xdotool windowsize <window_id> 100% 100%

wmctrl:

wmctrl -ir <window_id> -b add,maximized_vert,maximized_horz

Non massimizzare una finestra:

wmctrl -ir <window_id> -b remove,maximized_vert,maximized_horz

Appunti

  • Entrambi xdotoole wmctrlnon sono sul tuo sistema per impostazione predefinita:

    sudo apt-get install xdotool wmctrl
    
  • Per eseguire uno dei comandi nella finestra attualmente attiva :

    • per i wmctrlcomandi, rimuovere l' -iopzione, sostituire <window_id>con:ACTIVE:

    • per i xdotoolcomandi: sostituire <window_id>con$(xdotool getactivewindow)

  • In molti casi, i comandi possono essere eseguiti utilizzando l' id della finestra o il nome della finestra . L' -iopzione in wmctrldice wmctrldi usare l'id della finestra. Suggerirei di non usare il nome della finestra come identificatore, per evitare conflitti di nome. Succede più facilmente di quanto ti aspetteresti.

  • Dalla mia esperienza, usando massimizzare in una sceneggiatura; L'uso wmctrlper massimizzare / non ingrandire può essere un po 'buggy su entrambi Unitye Gnome, mentre l' xdotoolopzione funziona più robusta nella mia esperienza. Nella maggior parte degli script, finisco per usare un mix di entrambi wmctrle xdotool.

Maggiori informazioni su man wmctrl e man xdotool (principalmente la sezione: COMANDI DI WINDOW ).


Grazie per la magnifica risposta! Ma come si fa anche a minimizzare una finestra?

1
@ParanoidPanda vedi la mia risposta aggiornata :)
Jacob Vlijm

1
wmctrl -ir <window_id> -b remove,maximized_vert,maximized_horznon funziona su gnome 3.20
user41209

4

Aggiungendo alla risposta di Jacob Vlijm:

xdotool windowactivate $minwinid
xdotool windowraise $minwinid
xdotool windowfocus $minwinid

Funziona anche per minimizzare una finestra. L'animazione è più veloce per me.

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.