Quantcast
Channel: zInformatik
Viewing all articles
Browse latest Browse all 10

dmenuLauncher 0.1.1 – Update des leichtgewichtigen Launchers

0
0

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.


Viewing all articles
Browse latest Browse all 10

Latest Images





Latest Images