Hauptseite

dmenuLauncher 0.1.1 – Update des leichtgewichtigen Launchers

14. Mai 2011 von

Aufgrund des Feedbacks und der vielen interessanten Anregungen habe ich dmenuLauncher ein wenig erweitert. Vielen Dank an alle, die mir Ihre Ideen mitgeteilt haben :)

dmenuLauncher ist ein Programmstarter, der dmenu nutzt um ein Programm auszuwählen. Die Grundfunktionalität ist im Artikel Ein leichtgewichtiger Launcher mit dmenu und Perl beschrieben. Das Skript habe ich auf GitHub hochgeladen.

Das Script wurde um folgende Punkte erweitert:

  • Ob ein Programm im Terminal gestartet werden soll wird nun mitgespeichert
  • Es können optional auch Argumente für ein Programm gespeichert werden
  • Es kann ein String definiert werden, der immer vor dem Befehl eingefügt wird
  • Es gibt eine (englische) readme, in der alle Funktionen beschrieben sind

Starten im Terminal
Wird dem Programmaufruf ein ; angehängt, so wird damit zwischen “im Terminal ausführen” und “direkt ausführen” hin und hergeschaltet. Die jeweils letzte Einstellung wird für zukünftige Aufrufe gespeichert.

Beispiel: Ich gehe von davon aus, dass die pathfile gerade generiert wurde, also alle Programme immer direkt ausgeführt werden.

  • firefox – führt firefox direkt aus
  • firefox; – führt firefox im Terminal aus
  • firefox – führt firefox im Terminal aus (weil dies beim obigen Aufruf für die Zukunft gespeichert wurde)
  • firefox; – führt firefox direkt aus
  • firefox – führt firefox direkt aus (weil dies beim obigen Aufruf für die Zukunft gespeichert wurde)

Möchte man wirklich ein ; an einen Befehl anhängen ohne die Option “Starten im Terminal” zu verändern, kann man dies mit einem \ escapen.

Also: programm\;

Speichern von Argumenten
Es gibt nun eine Konfigurationsvariable SAVE_ARGUMENTS. Ist diese auf 1 gesetzt, werden automatisch alle Argumente gespeichert. Das bedeutet, dass in der Liste der Programme, aus denen man wählen kann das entsprechende Programm einmal ohne Argumente und jeweils einmal mit Argument aufgeführt wird.

dmenuLauncher im vertikalen Modus mit Argumenten

dmenuLauncher im vertikalen Modus mit Argumenten

Für jedes Argument eines Befehls wird auch die Anzahl der Aufrufe gespeichert, so dass häufig genutzte Argumente weiter vorne stehen.

Man kann die Variable SAVE_ARGUMENTS für einen Aufruf umschalten, indem man einen . an den Programmaufruf anhängt.

Beispiel: free -m.

  • Ist die Variable SAVE_ARGUMENTS auf 1 gesetzt, so wird das Argument -m nicht gespeichert (ohne den . am Ende würde es gespeichert werden)
  • Ist die Variable SAVE_ARGUMENTS auf 0 gesetzt, so wird das Argument -m gespeichert (ohne den . am Ende würde es nicht gespeichert werden)

Bei der Optimierung werden Programme, zu denen Argumente gespeichert sind grundsätzlich nicht entfernt.

Möchte man wirklich einen . an einen Befehl anhängen ohne die Option “Speichern von Argumenten” zu verändern, kann man ihn mit einem \ escapen.

Also: programm\.

Man kann . und ; nicht gleichzeitig bei einem Aufruf verwenden.

[UPDATE] Ich habe als Trenner für mehrere Argumente in der pathfile die Zeichenfolge ||| genutzt und zum Trennen der Argumente und der jeweiligen Anzahl der Aufrufe die Zeichenfolge |#|. Leerzeichen sind hier nicht möglich, da diese auch in den Argumenten vorkommen dürfen sollen. Falls jemand einen Fall kennt, wo diese Trenner problematisch wären oder grundsätzlich eine bessere Idee hat würde ich mich über einen entsprechenden Kommentar freuen :) [/UPDATE]

String vor dem Befehl
In der Variable BEFORE_COMMAND kann man einen String definieren, der vor dem Befehl eingefügt wird. Ein Anwendungszweck wäre das Wechseln ins Home-Verzeichnis, so dass alle Befehle im Home-Verzeichnis ausgeführt werden.
Dafür setzt man BEFORE_COMMAND auf "cd ~ && ". Dies ist auch die default Einstellung.

Natürlich kann man auch einen leeren String angeben, damit nichts vor dem eigentlichen Befehl eingefügt wird.

Die Readme
Die Readme findet man, wenn man die Datei dmenuLauncher.pl mit einem Texteditor öffnet.


Schlagworte: , ,



11 Kommentare zu „dmenuLauncher 0.1.1 – Update des leichtgewichtigen Launchers“

  1. Einfach Toll sagt:

    Sehr schön, das scheint doch zu funktionieren. Vielen Dank dafür!
    Was mir jetzt noch auffällt ist dass das Filtern nach Groß- und Kleinschreibung unterscheidet, was man, denke ich, getrost deaktivieren kann ohne dass sich jemand daran stört. Ein -i hinter dem dmenu-Aufruf löst das Problem.

  2. ZiB sagt:

    Ich bin entzückt! Danke!

  3. Einfach Toll sagt:

    Hm nee, funktioniert doch nicht ganz einwandfrei mit den Trennern bei den Argumenten. Gebe ich beispielsweise ls -l , dann ls -a und nochmal ls -l ein, dann ist in der Pathfile-Datei was kaputt. Aber ich verstehe sowieso nicht, was das Hantieren mit den Trennern soll. Warum werden nicht einfach alle verschiedenen Aufrufe in einer Zeile gespeichert? Also halt so:
    ls 4 0
    ls 5 1 -a
    ls 6 0 -l
    Mit den Argumenten am Zeilenende, das ist vielleicht am einfachsten. Man muss nur noch dafür sorgen, dass die Argumente korrekt in die Sortierung mit einbezogen werden.

  4. cpth sagt:

    Also ich hab schon mal gnome-do deinstalliert, soweit besten dank.

  5. deifl sagt:

    Danke fuer den dmenu-Launcher. Ist eine noch feinere Sache als dmenu pur. Leider bekomme ich es nicht hin xterm durch rxvt-unicode (urxvt) zu ersetzen (urxvt: unable to exec child.), aber vielleicht gibt es da ja einen Trick den ich nur noch nicht entdeckt habe.

    Gruss

  6. zimon sagt:

    @Einfach Toll: Hab das Problem behoben. Nun sollte es funktionieren. Der Zähler bei den Argumenten wird jedoch nur erhöht, wenn SAVE_ARGUMENTS auf 1 gesetzt ist oder das Kommando mit einem . abgeschlossen wird. Das werde ich auch noch fixen, aber erst wenn ich dazu Zeit habe.

    @deifl: Ich habe urxvt gerade nicht installiert. Möglicherweise zuerst in der bash versuchen, ob der Befehl so korrekt ist und ansonsten mal mit vollständigem Pfad aufrufen. Mehr fällt mir im Moment nicht ein. Ich schau das ich das die Tage mal selbst teste. Sag bitte bescheid, wenn Du es hinbekommen hast und wie :)

    @cpth: :D

  7. zimon sagt:

    Zur Sache mit den Trennern: da habe ich auch drüber nachgedacht und ich fand es sinnvoll mit Trennern zu arbeiten, damit die Option “Im Terminal öffnen” vom original Programm übernommen wird. Jetzt wo ich nochmal drüber nachdenke könnte man auch die Option auch jedes Mal vom Originalbefehl kopieren und dann für jedes Argument eine eigene Zeile in die pathfile schreiben.

    Naja, solange nichts dagegen spricht lasse ich es erstmal wie es ist. Argumente für oder gegen die Trenner sind natürlich weiterhin sehr willkommen.

    Viele Grüße
    zimon

  8. Sasch sagt:

    Seit ich auf dem ubuntuusers.de Planeten davon gelesen habe nutze ich den dmenuLauncher.
    Vielen Dank für dieses tolle Stück Software!

    Btw … habe gerade eben auch auf g+ darüber geschrieben:
    https://plus.google.com/103329627719640203587/posts/H6Mf2zccELL

  9. zimon sagt:

    Hallo Sasch,
    vielen Dank. Leider funktioniert der Link nicht (404 Error).

    Viele Grüße,
    zimon

  10. Sasch sagt:

    Hm, wie unschön, bei mir gehts … hast du kein g+ Zugang?

  11. Sasch sagt:

    Hm, würde es gerne auch auf Diaspora posten, aber ich habe gerade festgestellt, dass mit gnome-shell die Situation gegeben ist, dass die oberste Zeile unter dem Panel verschwindet! :(

    Kann man das in den Einstellungen ändern? Dass evtl. das dmenu weiter unten erst beginnt?

Kommentieren

Kommentarlinks könnten nofollow frei sein.


Bloggeramt.de frisch gebloggt Blogverzeichnis - Blog Verzeichnis bloggerei.de