Wie wechsle ich über das Terminal zu einem bereits laufenden Programm?
Zum Beispiel:
firefox öffnet ein neues Firefox-Fenster.
Gibt es einen Befehl, der das bereits geöffnete Firefox-Fenster fokussiert?
Wie wechsle ich über das Terminal zu einem bereits laufenden Programm?
Zum Beispiel:
firefox öffnet ein neues Firefox-Fenster.
Gibt es einen Befehl, der das bereits geöffnete Firefox-Fenster fokussiert?
Antworten:
Angenommen, Sie haben wmctrl installiert (ausführen, sudo apt-get install wmctrlwenn nicht):
Der Befehl:
wmctrl -ia "$(wmctrl -lp | grep "$(pgrep gedit)" | tail -1 | awk '{ print $1 }')"
Würde das zuletzt geöffnete geditFenster öffnen . Ersetzen Sie es durch eine andere Anwendung.
pgrep gedit
bekommt die pid von gedit
wmctrl -lp
listet alle Fenster und die PID auf, zu der sie gehören
awk '{ print $1 }'
spaltet die Fenster-ID ab (die erste Zeichenfolge in der Zeile)
$(wmctrl -lp | grep "$(pgrep gedit)" | tail -1 | awk '{ print $1 }')
findet daher die Fenster-ID des zuletzt erstellten Fensters von gedit(die Ausgabe von wmctrl -lplistet die Fenster in einer chronologischen Reihenfolge der Erstellung auf, wenn die Anwendung mehrere Fenster hat, tail -1gibt sie das letzte zurück).
wmctrl -ia
anschließend hebt das Fenster durch seine window-id
... mit der Anwendung als Argument ausgeführt werden:
#!/bin/bash
wmctrl -ia "$(wmctrl -lp | grep "$(pgrep "$1")" | tail -1 | awk '{ print $1 }')"
switchto.shFühren Sie es aus als (z.
/path/to/switchto.sh firefox
Theoretisch der Befehl:
xdotool search --class gedit windowactivate
sollte das Gleiche tun; In diesem Fall sollte das erste gefundene Fenster von geöffnet geditwerden.
Es scheint jedoch weniger robust. Auf meinem System (Unity) hat es überhaupt nichts getan.
Wenn Sie Firefox mit ausgeführt haben firefox &, können jobsSie dessen Nummer anzeigen . Um es in den Vordergrund zu bringen, schreiben Sie, %n firefoxwas nfür seine Nummer steht. Beispiel:
sabrina@ubuntu:~$ jobs
[1]+ Stopped firefox
sabrina@ubuntu:~$ fg %1
Sie können das Programm auch "töten":
sabrina@ubuntu:~$ kill %1