h1

Programme in den Vordergrund holen mit Shortcuts

April 20, 2009

Charly und ich fanden es nervig, sich immer mit <Alt> + <Tab> zwischen den Fenstern hin- und herzubewegen, da man so oft durch eine recht lange Liste durch muss und trotzdem manchmal im falschen Fenster angommt. Viel besser wäre es doch, wenn man je einen Shortcut für gnome-terminal, Pidgin und Firefox hätte, welcher dann das jeweilige Fenster in den Vordergrund holt oder die Anwendung erstmal startet.

Also haben wir uns hingesetzt und ein kleines bash-script geschrieben, cofw.sh (Ja, der Name ist sehr kreativ und steht für ‚Create or focus window‘).

Das Script bekommt den Titel oder einen Teil des Titels des Fenster übergeben. cofw sucht dann mithilfe von wmctrl in allen offenen Fenstern nach dem Titel und setzt bei Erfolg den Fokus auf dieses Fenster. Findet es kein Fenster mit diesem Titel, so schaut es in einer Liste nach, ob zu diesem Titel ein Kommando definiert wurde, welches die Anwendung startet. Entweder es findet solch ein Kommando führt es aus, oder es nimmt den übergebenen Titel als Kommando und versucht so, die gewünschte Anwendung zu starten.

Bei Pidgin (und auch rhythmbox) war das allerdings etwas trickreicher, da hier der Name des Fensters je nach Gesprächspartner (Musiktitel) variiert, aber auch das haben wir mit mit einer kleine Ausnahme in das Script eingepflegt.

Hier nochmal ein konkretes Beispiel:

Der Befehl ./cofw.sh Terminal sorgt dafür, dass cofw schaut, ob es ein Fenster gibt, das im Titel „Terminal“ enthalten hat. Wenn ja, bekommt dieses Fenster den Fokus, ansonsten schaut es standardmäßig in der Datei ~/.cofwrc nach, ob dort für dein Eintrag Terminal ein Kommando definiert wurde. Bei mir steht dort für Terminal das Kommanodo gnome-terminal. Also führt cofw das Kommando aus und öffnet mir damit ein Gnome-Terminal.

Da man aber natürlich nicht immer das Script aufrufen will, kann man mit metacity noch Shortcuts definieren. Dazu ruft man gconf-editor auf, geht dann auf -> apps -> metacity -> keybinding_commands und legt beispielsweise command_1 auf cofw.sh Firefox. Danach muss man noch in der gleichen Ebene in global_keybindings einen Shortcut für run_command_1 festlegen. Z.B. <Mod4>s für die Tastenkombination Windows-Taste + s. Außerdem muss jetzt noch in die ~/.cofwrc die Zeile „Firefox firefox“, damit cofw firefox startet, falls noch kein solches Fenster existiert.

Dieses Spielchen kann man beliebig mit anderen Anwendungen weiter machen, man muss nur darauf achten, dass die jeweillige Anwendungen irgendeinen statischen oder teilweise statischen Text im Fenstertitel hat.

Damit das ganze funktioniert, muss man sich zunächst wmctrl installieren. Für Ubuntuuser oder Debianer:

sudo apt-get install wmctrl

Und für alle Anderen von hier als Quellcode.

Hier gibts das Script bei paste.pocoo.org.

5 Kommentare

  1. Joa.. ne schöne Sache..
    ihr könnt euch ja auch mal gnome-do anschauen🙂


  2. Super =)
    Erleichtert definitiv die Fenstersuche!


  3. Leider ist das Skript „cofw.sh“ down. Kannst Du es bitte nochmal hochladen oder als Text einbinden.

    Danke!


  4. Ok, habe es jetzt bei paste.pocoo.org eingefügt. Hoffentlich wird es dort nicht einfach wieder weg geschmissen…
    http://paste.pocoo.org/show/120309/


  5. Danke für die schnelle Antwort und das neue Hochladen🙂.



Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: