Ich verwende QuickSilver immer noch auf meinem Mac, obwohl es mehrere Versuche gibt, es zu ersetzen. Früher gab es eines für Linux namens Gnome Do, die Entwicklung wurde jedoch irgendwann eingestellt. Ich entschied mich für den integrierten Launcher in Gnome Shell und wechselte dann kurz zu rofi mit dieser Konfiguration.
Eine Sache, die mir an Quicksilver sehr gut gefallen hat, ist, dass ich das Ergebnis einer Aktion gewissermaßen an einen anderen Vorgang weiterleiten kann, zum Beispiel:
„Piping“ in Quicksilver in Aktion
Zum Beispiel kann ich damit beginnen, nach der Datei DSCF8200.jpg zu suchen, dann eine Aktion „Öffnen mit“ auszuwählen und anschließend eine Anwendungsvorschau auszuwählen. Das ist eine Flexibilität, die ich mit rofi und Gnome Shell nicht bekomme.
Außerdem konnte ich Rofi nicht einmal dazu bringen, an einer Wayland-Sitzung teilzunehmen.
Einen Job zu finden scheint immer noch ein langer Prozess zu sein (ja, immer noch #OpenToWork hier), nur um meine Aufmerksamkeit abzulenken, habe ich beschlossen, mit der Arbeit an einem einfachen Launcher zu beginnen, den ich irgendwann verwenden würde. Diesmal würde ich auch die Gelegenheit nutzen, um zu lernen, wie man eine GUI-Anwendung in der Realität erstellt.
Da ich mich mit Python am besten auskenne, beginne ich mit tkinter. Allerdings würde ich klein anfangen und das Experiment mit einem CLI-Befehl starten. Der Aufbau des Kommandos dient als Blaupause für den Werfer.
So hat RapidCopper angefangen (sorry für den einfallslosen Namen).
Und ja, ich bin mir der Tatsache bewusst, dass Tkinter-GUI-Anwendungen derzeit nicht in Wayland funktionieren.
Es befindet sich noch in einem sehr frühen Stadium, ich bin immer noch dabei, Prototypen zu erstellen und die Spezifikationen für den Launcher herauszufinden. Im Moment macht es jedoch die Dinge, die ich möchte.
Die Anwendung erwartet weiterhin ein Setup mit
rc rebuild-index
Dadurch wird die Konfiguration in $HOME/.config/rapidcopper eingerichtet, mit einer SQLite3-Datenbank als Index und einem Ordner für Plugins.
Der Unterbefehl „do“ ist der Teil, in dem er seine Aufgabe erledigt. Ich kann eine Anwendung starten
rc do fire
Und es spuckt eine Liste mit Optionen aus
0 app: /home/jeffrey04/.local/share/applications/userapp-Firefox Developer Edition-EPEGV2.desktop - Custom definition for Firefox Developer Edition Firefox Developer Edition 1 app: /home/jeffrey04/.local/share/applications/firefox-developer.desktop - Firefox Aurora with Developer tools Firefox Developer Edition 2 app: /home/jeffrey04/.local/share/applications/userapp-Firefox Developer Edition-8CCQV2.desktop - Custom definition for Firefox Developer Edition Firefox Developer Edition Enter choice: :
Geben Sie eine Zahl ein, drücken Sie die Eingabetaste, und die entsprechende Anwendung wird gestartet (über GTK-Launcher, ja, dieses Skript ist nicht portierbar).
Ich wollte die Benutzeroberfläche von Quicksilver ein wenig nachahmen, deshalb habe ich auf das Pipe-Zeichen | aufmerksam gemacht, obwohl es in der Praxis hässlich aussieht.
rc do echo lorem ipsum dolor sit amet "|" clipboard
Der angegebene Text lorem ipsum dolor sit amet wird dann in die Zwischenablage kopiert. Leider musste ich das Pipe-Zeichen in Anführungszeichen setzen, damit es in der Shell nicht als Umleitung behandelt wird.
Ich bin immer noch dabei, die UX und die Spezifikation herauszufinden, aber im Moment hat es die Hauptaufgabe erfüllt, bei der ich Anwendungen starten möchte. Nachdem ich einige Zeit damit verbracht hatte, erinnerte ich mich an Textual, wo es ein Erlebnis bietet, das der Web-Frontend-Entwicklung ähnelt. Derzeit befindet sich die TUI noch in der Entwicklung, scheint aber ähnlich zu funktionieren wie das CLI-Pendant.
Es ist schwer zu sagen, was ich davon erwarte, da ich mich derzeit darauf vorbereite, einige befristete Teilzeitjobs anzunehmen, während ich nach dem nächsten Projekt suche. Dies würde die Zeit und Energie, die mir für das Projekt bleibt, erheblich reduzieren. Der Launcher verfügt derzeit über eine sehr grundlegende Unterstützung für Plugins, aber die API kann sich ändern.
Das obige ist der detaillierte Inhalt vonErstellen eines Desktop-Launchers. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!