Wie kann ich eigene Befehle in Keypirinha anlegen und ausführen?

Melden
  1. Was ist Keypirinha und wie funktionieren Befehle?
  2. Erweiterbarkeit durch eigene Packages
  3. Eigene Befehle durch ein Python-Package erstellen
  4. Das Package aktivieren und testen
  5. Parameter und Aktionen erweitern
  6. Beispiel: Externes Programm starten
  7. Zusammenfassung

Was ist Keypirinha und wie funktionieren Befehle?

Keypirinha ist ein schneller und erweiterbarer Launcher für Windows, mit dem man Anwendungen, Dateien, URLs und benutzerdefinierte Befehle schnell starten kann. Eigene Befehle erlauben es, Aktionen direkt über die Eingabe auszuführen, z. B. bestimmte Scripte starten oder spezielle Funktionen nutzen. Diese können entweder über die integrierte Paket-Architektur (Packages) in Python realisiert oder über externe Programme eingebunden werden.

Erweiterbarkeit durch eigene Packages

Um eigene Befehle in Keypirinha anzulegen, bietet sich das Erstellen eines eigenen Python-Packages an. Keypirinha unterstützt Python-Skripte, die über das Paket-System eingebunden werden. Dies ermöglicht es, neue Funktionen und Befehle zu definieren, die dann im Launcher zur Verfügung stehen.

Eigene Befehle durch ein Python-Package erstellen

Zuerst sollte man in dem Keypirinha-Paketordner ein neues Verzeichnis für das eigene Package anlegen. Der Pfad lautet typischerweise:

In diesem Verzeichnis erstellt man eine Python-Datei, z. B. mein_befehl.py. Die Basisstruktur für ein einfaches Command-Package sieht so aus:

import keypirinha as kpimport keypirinha_util as kpuclass MeinBefehl(kp.Plugin): def __init__(self): super().__init__() def on_catalog(self): # Definieren Sie hier den Befehl, der in der Liste erscheint item = self.create_item( category=kp.ItemCategory.KEYWORD, label="Hallo Welt Befehl", short_desc="Führt eine simple Ausgabe aus", target="hello_world", args_hint=kp.ItemArgsHint.ACCEPTED, hit_hint=kp.ItemHitHint.NOARGS ) self.set_catalog( ) def on_execute(self, item, action): if item.target() == "hello_world": self.info("Hallo Welt! Mein eigener Keypirinha-Befehl wurde ausgeführt.") # Hier können weiterführende Aktionen ausgeführt werden

Dieses Skript zeigt ein minimales Plugin, das einen neuen Command mit dem Label Hallo Welt Befehl zum Launcher hinzufügt. Beim Ausführen des Befehls erscheint eine Info-Meldung in der Keypirinha-Konsole (info wird in der Logdatei bzw. Debug-Ausgabe sichtbar).

Das Package aktivieren und testen

Nachdem das Python-Script gespeichert wurde, führt man im Keypirinha-Hauptfenster den Befehl F5 aus oder wählt Reload Packages aus dem Kontextmenü, um das neue Package zu aktivieren. Anschließend kann man im Launcher Hallo Welt eintippen. Der eigene Befehl erscheint als Option und lässt sich mit Enter ausführen.

Parameter und Aktionen erweitern

In der Methode on_catalog kann man weitere Befehle hinzufügen, indem man mehrere Items erstellt und mit set_catalog übergibt. Außerdem ist es möglich, Befehle mit Argumenten zu unterstützen, indem man args_hint=kp.ItemArgsHint.ACCEPTED setzt und in on_execute die Parameter verarbeitet.

Möchte man komplexere Aktionen ausführen, etwa externe Programme starten, Dateien öffnen oder Netzwerkanfragen tätigen, stehen alle Python-Standardbibliotheken und Keypirinha-Utilities zur Verfügung. So kann man bspw. mit subprocess Prozesse starten oder mit webbrowser.open() URLs öffnen.

Beispiel: Externes Programm starten

import keypirinha as kpimport keypirinha_util as kpuimport subprocessclass RechnerStarten(kp.Plugin): def __init__(self): super().__init__() def on_catalog(self): item = self.create_item( category=kp.ItemCategory.KEYWORD, label="Taschenrechner starten", short_desc="Öffnet den Windows Rechner", target="calc", args_hint=kp.ItemArgsHint.NOARGS, hit_hint=kp.ItemHitHint.NOARGS ) self.set_catalog( ) def on_execute(self, item, action): if item.target() == "calc": subprocess.Popen("calc.exe") self.info("Windows Taschenrechner wurde gestartet.")

Zusammenfassung

Eigene Befehle in Keypirinha lassen sich am besten über Python-Pakete umsetzen. Dabei erstellt man ein neues Plugin mit Python-Code, welches Befehle in on_catalog zur Verfügung stellt und in on_execute ausführt. Die Pakete speichert man im Keypirinha-Paketordner ab und lädt sie neu. So kann man beliebige Aktionen automatisieren und die Funktionalität von Keypirinha flexibel erweitern.

0

Kommentare