Verknüpfung zum Wechseln zur App

8

Ist es möglich, eine geöffnete App-Instanz / ein geöffnetes App-Fenster mit einem Befehl zu fokussieren?

Ich möchte eine Tastenkombination zuweisen, um schnell zu einer bestimmten App zu wechseln.

Ich möchte Verknüpfungen für:

  • Chrom (jetzt öffnet sich ein neues Fenster mit leerem Tab)
  • Terminator (jetzt öffnet sich ein neues Fenster)

Es funktioniert gut für diese (Ausführen des Standardbefehls, z. B. thunderbird):

  • Thunderbird
  • erhabener Text 2

Ich benutze Gnome-Shell @ 12.04 (sollte keine Rolle spielen)

mreq
quelle

Antworten:

9

Das wmctrl-Paket bietet Zugriff und Bearbeitung von Anwendungsfenstern und würde tun, was Sie wollen. Installieren Sie zuerst dieses kleine Paket:

sudo apt-get install wmctrl

Hier ist die Manpage für wmctrl: http://manpages.ubuntu.com/manpages/precise/en/man1/wmctrl.1.html

Wenn Sie sich die Befehlszeilenschalter ansehen, werden Sie sehen, dass -a ein Fenster öffnet und fokussiert. Um zu wissen, auf welches Fenster Sie sich konzentrieren sollen, stellen Sie sicher, dass ein Chromium-Fenster geöffnet ist, und führen Sie es aus

wmctrl -l

Dadurch erhalten Sie eine Liste aller geöffneten Fenster und ihrer Titel. Chromium hat höchstwahrscheinlich immer "Chromium" am Ende des Fenstertitels, also können Sie das verwenden.

Mit diesen Informationen können Sie Ihren Befehl für die Verknüpfung erstellen. Öffnen Sie die Tastatureinstellungen, gehen Sie zu Verknüpfungen, klicken Sie auf Benutzerdefinierte Verknüpfungen, klicken Sie auf das Pluszeichen (+) und geben Sie Folgendes ein:

Name: Focus Chromium Shortcut
Command: wmctrl -a 'Chromium'

Ich verwende Unity und habe es gerade mit Google Chrome versucht. Es hat den Trick gemacht. Es sollte auch in Gnome-Shell funktionieren.

Ziemlich coole Idee :)

DrTebi

DrTebi
quelle
1
Danke vielmals. Funktioniert wie erwartet. Was das Terminal betrifft, kann man es verwenden username@pc_name.
Mreq
Ich bin froh, dass es geklappt hat. Wenn Sie möchten, können Sie noch einen Schritt weiter gehen und den Befehl wmctrl in ein Skript einfügen. Dieses Skript könnte dann weitere Aufgaben ausführen, z. B. prüfen, ob überhaupt ein Fenster mit diesem Namen vorhanden ist, und wenn nicht, die Anwendung starten. Auf diese Weise können Sie alle Ihre Lieblingsanwendungen technisch auf Verknüpfungen einrichten, die zwei Funktionen haben - entweder die App starten, wenn sie noch nicht gestartet wurde, oder sie in den Fokus rücken, wenn sie bereits gestartet ist ... nur als Idee, wenn Sie Lust haben ein bisschen mehr herumspielen.
DrTebi
Ja, genau das werde ich tun, wenn ich etwas Zeit habe;) Schade, dass du die Titel von Apps nicht ändern kannst. Sie können zum Beispiel Ziel nicht Clementinemit , wmctrlwie es immer hat den Titel , was gespielt wird .
Mreq
Dies funktioniert ziemlich gut, mit einer Einschränkung, dass es die Arbeitsbereiche von Unity nicht zu kennen scheint. Es gibt zwar ein Konzept für Desktops, aber diese scheinen nicht dasselbe zu sein. Dies bedeutet, dass wmctrl -a 'Google Chrome.'ich zum Chrome-Fenster in einem anderen Arbeitsbereich komme, nur weil es zuerst in der Fensterliste vorkommt. Ich habe noch keinen Weg gefunden, um zwischen Fenstern in verschiedenen Arbeitsbereichen zu unterscheiden.
nedned
1
Actuall @mreq wmctrlunterstützt das Ändern des Titels eines Fensters mit dem -NFlag.
nedned
1

Sie können Ubuntu verwenden Super+ 1bis 9zu wechseln , um Ihre Anwendung. Drücken Sie die Super - Taste für drei Sekunden , um die Nummer für jeden Tray - Icon zu sehen.

Yariv
quelle
0

Vor einigen Jahren habe ich genau zu diesem Zweck eine kleine Anwendung namens mcgr erstellt . Es funktionierte ursprünglich nur mit dem Metacity Windows Manager, aber ich habe es später für Gnome angepasst.

Akaihola
quelle
Hört sich gut an. Ich ging mit meinem eigenen Wmctile noch weiter .
Mreq
1
@mreq wow, sieht gut aus, kachelt und fokussiert oder läuft in einem einzigen Paket! Seitdem bin ich auch auf Kachel-Fenstermanager umgestiegen, angefangen bei ion3 bis hin zu awesome und weiter zu Xmonad. Keiner hat Focus-or-Run-Put der Box, aber es könnte mit Scripting unter Verwendung der verfügbaren Plug-Ins hinzugefügt werden. Jetzt experimentiere ich mit Gnome-Shell und Shellshape, daher muss ich wieder eine gute Focus-or-Run-Lösung finden. Übrigens ist der Link zum Dokument
akaihola
0

Ich benutze dafür das folgende einfache Skript. Es werden alle Windows mit dem passenden Titel (oder Tag) ausgelöst. Führen Sie zum Beispiel so aus:

winfocus.sh chrome

#!/bin/sh

if [ "" = "$1" ] ; then
    echo "usage $0 Window title"
    exit 1;
fi

wmctrl -lx | grep -i "$1" |cut -d' '  -f1 | while read id; 
   do wmctrl -i -a $id; 
done

Ich habe einige Ubuntu-Tastaturkürzel hinzugefügt, um dieses Skript auszuführen, sodass Super+ Calle Chrome ausgelöst und Super+ Talle Terminalfenster angezeigt werden. Funktioniert wirklich gut finde ich.

Geben Sie hier die Bildbeschreibung ein

Martin Wickman
quelle