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

Ein leichtgewichtiger Launcher mit dmenu und Perl

$
0
0

Lange habe ich GNOMEDo genutzt nur um Programme zu starten. Auch Kupfer und Launchy habe ich ausprobiert. Was mir an allen Programmen nicht gefällt: Für die Aufgabe, für die ich sie brauche (zum Starten von Programmen) sind sie viel zu groß, zu überladen und sie laufen die ganze Zeit im Hintergrund und brauchen RAM. Durch uzbl habe ich dmenu kennen gelernt. Ein Programm, mit dem man leicht eine Liste von Worten als Menü anzeigen kann. Der Benutzer kann nun das gesuchte Wort eingeben und dmenu schließt automatisch beim Tippen alle unpassenden Wörter aus (dabei wird nicht nur der Wortanfang kontrolliert sondern ob irgendein Teil des Wortes matched). Mit wird das aktuell ausgewählte Wort zurückgegeben und dmenu beendet. Übergibt man diesem Programm die Liste aller im PATH befindlichen Programme und führt das gewählte Programm danach aus hat man schon einen Launcher.

Ich habe nun noch ein kleines Script – dmenuLauncher.pl – geschrieben, das die Programme nach Häufigkeit ihrer Aufrufe sortiert, damit die am häufigsten genutzten Programmen immer zuerst gewählt werden, wenn es eine Mehrdeutigkeit gibt.

Features:

  • Kleines Perl-Script, dass nur bei Bedarf gestartet wird und sonst weder Prozessorzeit noch RAM benötigt
  • Kann in den meisten Fenstermanagern über Tastenkombination gestartet werden
  • Programmen können beim Aufruf Argumente übergeben werden
  • Sortiert Programme nach Nutzungshäufigkeit
  • Horizontale oder vertikale Anzeige der Programmliste
  • Programme im Terminal öffnen
  • Optimierung der Programmliste (löschen aller Programme mit geringer Aufrufsanzahl aus der Liste)
  • Einfaches hinzufügen von Programmen, die nicht in der Liste sind

 

dmenuLauncher mit horizontaler Anzeige

dmenuLauncher mit horizontaler Anzeige der am häufigsten aufgerufenen Programme

 

Das Script habe ich auf gitHub online gestellt. Das Programm dmenu kann unter Ubuntu über das Paket dwm-tools installiert werden. Also mit dem Befehl sudo apt-get install dwm-tools.

Die Datei dmenuLauncher.pl hat im oberen Teil einen Konfigurationsbereich. Ich habe auf eine externe Konfigurationsdatei verzichtet um diese nicht jedes Mal laden zu müssen.

Zuerst wird der Pfad zur path-Datei (in der die Liste der Programme mit ihrer jeweiligen Aufrufanzahl gespeichert wird) in der Variablen PATHFILE angegeben.

dmenu kann die Programme im Menü nebeneinander oder untereinander angezeigen. Dafür kann man dmenuLauncher.pl entweder mit der Option -h für horizontal (also nebeneinander) oder -v für vertical (also untereinander) aufrufen.

Den Standardmodus, der genutzt wird, wenn nichts angegeben wurde kann man über die Variable MODE steuern. Sie wird entweder auf horizontal oder vertical gesetzt.

dmenuLauncher vertikale Anzeige

Die Konfigurationsvariable NUMBER_OF_LINES gibt die Anzahl von anzuzeigenden Zeilen im vertical-Modus an.

In der Variablen TERMINAL wird der Befehl für den Terminalaufruf gespeichert. Der Platzhalter %COMMAND% wird durch das aufzurufende Kommando (mit Argumenten) ersetzt.

Nun kann durch den Aufruf dmenuLauncher.pl -u die path-Datei generiert werden. Nach dem Installieren oder Löschen von Programmen kann die Datei so auch aktualisiert werden.

Nachdem man dmenuLauncher.pl konfiguriert und die path-Datei (mit der Option -u) generiert hat, kann man eine Tastenkombination dafür einrichten. Bei GNOME unter System -> Einstellungen -> Tastenkombinationen auf den Button “Hinzufügen” klicken, als Namen “dmenuLauncher” und als Befehl den Pfad zur Perldatei (dmenuLauncher.pl) angeben. Nun gibt es in der Liste ganz unten einen neuen Eintrag. Klickt man auf das Feld “Tastenkombination”, so kann man die gewünschte Tastenkombination drücken (ich habe SHIFT+ gewählt, die dann dem Script automatisch zugeordnet wird.

Nach dem Starten des Programms (also drücken der zugeordneten Tastenkombination oder per Terminal) öffnet sich nun das Menü und zeigt die Programmliste an. Nun fängt man an, den gewünschten Befehl einzutippen bis er markiert ist. Man kann auch die Pfeiltasten benutzen. Mit der Eingabetaste wird das gewählte Programm ausgeführt und dmenuLauncher geschlossen.

Drückt man nicht direkt die Eingabetaste sondern , so wird der Befehl vervollständigt und man kann noch Argumente angeben.

Ob mit ohne ohne Argumente: Durch ein abschließendes Semikolon wird der Befehl im Terminal ausgeführt.

Ein paar Beispiele:

  • firef öffnet Firefox
  • firef http://zinformatik.de öffnet firefox und geht auf die Seite “http://zinformatik.de”
  • top; öffnet top in einem Terminal
  • ls -lh ~; zeigt das Ergebnis von ls -lh ~ in einem Terminal an.

Da die ganze Liste von Programmen sehr groß ist, man jedoch meist nur einen sehr kleinen Teil nutzt gibt es die Möglichkeit die Liste der Programme zu optimieren. Durch den Aufruf von dmenuLauncher.pl -o werden alle Programme aus der Liste entfernt, die noch nie genutzt wurden. Ein weiteres Argument gibt die Anzahl der Aufrufe an, die ein Programm mindestens haben sollte. So werden durch dmenuLauncher.pl -o 3 alle Programm aus der Liste entfernt die weniger als 3 mal aufgerufen wurden.

Möchte man nach der Optimierung ein Programm aufrufen, das sich nicht mehr in der Liste befindet, so kann man es einfach komplett eingeben. Auch wenn es dann keine Auswahl gibt, wird das Programm ausgeführt und mit der Aufrufsanzahl 1 in die Liste gespeichert.
Um ein neues Programm in die Liste aufzunehmen braucht man es also nur einmal eingeben.

Mit dmenuLauncher habe ich also ein sehr kleines Programm, welches nur kurz läuft um mir die Auswahl eines Programms zu ermöglichen und danach sofort wieder beendet wird. Das Laden ist auch auf älteren Systemen kaum zu spüren, weil keine Bibliotheken geladen werden. Das bedeutet ich kann jedes häufiger genutzte Programm mit 3-4 Tastendrücken ohne irgendeine Verzögerung starten.


Viewing all articles
Browse latest Browse all 10

Latest Images

Trending Articles





Latest Images