Come posso passare al programma già in esecuzione usando il terminale?
Per esempio:
firefox apre una nuova finestra di Firefox.
Esiste un comando che focalizzerà la finestra di Firefox già aperta?
Come posso passare al programma già in esecuzione usando il terminale?
Per esempio:
firefox apre una nuova finestra di Firefox.
Esiste un comando che focalizzerà la finestra di Firefox già aperta?
Risposte:
Supponendo che tu abbia installato wmctrl (esegui in sudo apt-get install wmctrlcaso contrario):
Il comando:
wmctrl -ia "$(wmctrl -lp | grep "$(pgrep gedit)" | tail -1 | awk '{ print $1 }')"
Solleva l' ultimagedit finestra aperta . Sostituiscilo con qualsiasi altra applicazione.
pgrep gedit
ottiene il pid di gedit
wmctrl -lp
elenca tutte le finestre e il pid a cui appartengono
awk '{ print $1 }'
divide il window-id (la prima stringa nella riga)
$(wmctrl -lp | grep "$(pgrep gedit)" | tail -1 | awk '{ print $1 }')
trova quindi l'ID finestra dell'ultima finestra creata di gedit(l'output di wmctrl -lpelenca le finestre in un ordine cronologico di creazione, se l'applicazione ha più finestre, tail -1restituisce l'ultima).
wmctrl -ia
successivamente alza la finestra dal suo window-id
... da eseguire con l'applicazione come argomento:
#!/bin/bash
wmctrl -ia "$(wmctrl -lp | grep "$(pgrep "$1")" | tail -1 | awk '{ print $1 }')"
switchto.shEseguilo come (ad es.)
/path/to/switchto.sh firefox
Teoricamente il comando:
xdotool search --class gedit windowactivate
dovrebbe fare (tipo di) lo stesso; in questo caso dovrebbe alzare la prima finestra trovatagedit .
Sembra tuttavia meno robusto. Sul mio sistema (Unity) non ha fatto nulla.
Se hai eseguito Firefox utilizzando firefox &, puoi usarlo jobsper vedere il suo numero. Per portarlo in primo piano scrivere %n firefoxche nsta per il suo numero. Esempio:
sabrina@ubuntu:~$ jobs
[1]+ Stopped firefox
sabrina@ubuntu:~$ fg %1
Inoltre puoi "uccidere" il programma:
sabrina@ubuntu:~$ kill %1