Erstellen Sie einen benutzerdefinierten Taskleistenindikator für Ihre Aufgaben unter Linux

Erstellen Sie einen benutzerdefinierten Taskleistenindikator für Ihre Aufgaben unter Linux

Auch heute noch sind Taskleistensymbole ein magisches Feature. Indem Sie einfach mit der rechten Maustaste auf ein Symbol klicken und die gewünschte Aktion auswählen, können Sie Ihr Leben erheblich vereinfachen und viele unnötige Klicks bei Ihren täglichen Aktivitäten reduzieren.

Wenn es um nützliche Taskleistensymbole geht, fallen mir Skype, Dropbox und VLC ein:

Allerdings sind Taskleistensymbole tatsächlich viel nützlicher; Sie können je nach Bedarf eigene Taskleistensymbole erstellen. Diese Anleitung zeigt Ihnen, wie das in wenigen einfachen Schritten geht.

Voraussetzungen

Wir werden mit Python einen benutzerdefinierten Taskleistenindikator implementieren. Python ist wahrscheinlich auf allen wichtigen Linux-Distributionen bereits standardmäßig installiert, Sie müssen also nur sicherstellen, dass es installiert ist (hier wird Version 2.7 verwendet). Außerdem müssen wir das Paket gir1.2-appindicator3 installieren. Mit dieser Bibliothek können wir ganz einfach Systemsymbolindikatoren erstellen.

Installation auf Ubuntu/Mint/Debian:

sudo apt-get install gir1.2-appindicator3

Installation auf Fedora:

sudo dnf install libappindicator-gtk3

Suchen Sie bei anderen Distributionen einfach nach dem Paket, das „appindicator“ enthält.

Ab GNOME Shell 3.26 wurde das Taskleistensymbol entfernt. Sie müssen diese Erweiterung (oder andere Erweiterungen) installieren, um diese Funktion für Ihren Desktop zu aktivieren. Andernfalls können Sie den von uns erstellten Indikator nicht sehen.

Basiscode

Hier ist der Basiscode für den Indikator:

#!/usr/bin/python
Betriebssystem importieren
aus gi.repository importiere Gtk als gtk, AppIndicator3 als Appindicator
def main():
 Indikator = App-Indikator.Indikator.neu("customtray", "halb-mit Sternchen markiert-symbolisch", App-Indikator.IndikatorKategorie.APPLICATION_STATUS)
 Indikator.Status festlegen(AppIndikator.IndikatorStatus.AKTIV)
 Indikator.set_menu(Menü())
 gtk.main()
def menü():
 Menü = gtk.Menü()
 command_one = gtk.MenuItem('Meine Notizen')
 command_one.connect('aktivieren', Hinweis)
 Menü.Anhängen(Befehl_Eins)
 exittray = gtk.MenuItem('Ablage verlassen')
 exittray.connect('aktivieren', beenden)
 Menü.Anhängen(ExitTray)
 Menü.alles_anzeigen()
 Menü zurück
def Hinweis(_):
 os.system("gedit $HOME/Dokumente/notes.txt")
def beenden(_):
 gtk.main_quit()
wenn __name__ == "__main__":
 hauptsächlich()

Wir erklären gleich, wie dieser Code funktioniert. Aber speichern wir diesen Text vorerst als tray.py und führen ihn mit Python aus:

python tray.py

Wir sehen den Indikator wie unten dargestellt laufen:

Erstellen Sie einen benutzerdefinierten Taskleistenindikator für Ihre Aufgaben unter Linux

Lassen Sie uns nun erklären, wie dieser Zauber funktioniert:

Die ersten drei Codezeilen geben einfach den Python-Pfad an und importieren die erforderlichen Bibliotheken.

def main(): Dies ist die Hauptfunktion des Indikators. Der Code in dieser Funktion wird zum Initialisieren und Erstellen des Indikators verwendet.

Indikator = App-Indikator.Indikator.neu("customtray","halb-sternförmig-symbolisch",

appindicator.IndicatorCategory.APPLICATION_STATUS): Hier geben wir an, dass ein neuer Indikator mit dem Namen customtray erstellt wird. Dies ist ein eindeutiger Name für den Indikator, damit das System ihn nicht mit anderen laufenden Indikatoren verwechselt. Gleichzeitig verwenden wir das Symbol mit der Bezeichnung „semi-starred-symbolic“ als Standardsymbol für den Indikator. Sie können dies in einen beliebigen anderen Wert ändern, beispielsweise „Firefox“ (wenn der Indikator das FireFox-Symbol verwenden soll) oder einen anderen gewünschten Symbolnamen. Der letzte mit APPLICATION_STATUS verknüpfte Teil ist ein allgemeiner Code, der die Kategorie/den Bereich des Indikators angibt.
indicator.set_status(appindicator.IndicatorStatus.ACTIVE) : Diese Zeile aktiviert den Indikator.

indicator.set_menu(menu()): Hier sagen wir, dass wir die Funktion menu() (die wir später definieren werden) verwenden möchten, um Menüelemente für unseren Indikator zu erstellen. Dies ist wichtig, damit Sie mit der rechten Maustaste auf den Indikator klicken und eine Liste möglicher Aktionen anzeigen können.

gtk.main(): Führt die GTK-Hauptschleife aus.

In menu() definieren wir das Verhalten oder die Elemente, die der Indikator bereitstellen soll. command_one = gtk.MenuItem('Meine Notizen') initialisiert einfach das erste Menüelement mit dem Text „Meine Notizen“, dann verbindet command_one.connect('activate', note) das Aktivierungssignal des Menüs mit der später definierten Funktion note(); mit anderen Worten sagen wir unserem System: „Wenn dieses Menüelement angeklickt wird, führe die Funktion note() aus“. Schließlich fügt menu.append(command_one) das Menüelement zur Liste hinzu.
Die mit dem Exittray verbundenen Zeilen dienen dazu, ein Exit-Menüelement zu erstellen, sodass Sie den Indikator bei Bedarf schließen können.

menu.show_all() und return menu sind lediglich normaler Code, der die Menüelemente an den Indikator zurückgibt.

Unter der Notiz(_) steht der Code, der ausgeführt wird, wenn auf den Menüpunkt „Meine Notizen“ geklickt wird. Hier schreiben wir einfach os.system("gedit $HOME/Documents/notes.txt") ; die Funktion os.system ermöglicht Ihnen, Shell-Befehle innerhalb von Python auszuführen, also schreiben wir hier eine Befehlszeile, um mit gedit eine Datei namens notes.txt im Verzeichnis „Dokumente“ in unserem Home-Verzeichnis zu öffnen. Dies könnte beispielsweise von nun an Ihr tägliches Notizprogramm werden!

Fügen Sie die benötigten Aufgaben hinzu

Sie müssen lediglich zwei Stellen im Code ändern:

Speisekarte()

Angenommen, Sie möchten ein neues Menüelement erstellen, das beim Anklicken mithilfe von VLC eine bestimmte Video-/Audiodatei von Ihrer Festplatte abspielt? Fügen Sie dazu einfach die folgenden drei Zeilen in Zeile 17 ein:

command_two = gtk.MenuItem('Video/Audio abspielen')
command_two.connect('aktivieren', abspielen)
menu.append(Befehl_zwei)

Fügen Sie dann Folgendes zu Zeile 30 hinzu:

def spielen(_):
os.system("vlc /home/<Benutzername>/Videos/somevideo.mp4")

Ersetzen Sie „ home//Videos/somevideo.mp4` durch den Pfad zur Video-/Audiodatei, die Sie abspielen möchten. Speichern Sie nun die Datei und führen Sie den Indikator erneut aus:

python tray.py

Sie werden sehen:

Erstellen Sie einen benutzerdefinierten Taskleistenindikator für Ihre Aufgaben unter Linux

Und wenn Sie auf das neu erstellte Menüelement klicken, beginnt die VLC-Wiedergabe!

Um weitere Projekte/Aufgaben zu erstellen, wiederholen Sie einfach die obigen Schritte. Aber Vorsicht, Sie müssen command_two durch etwas anderes ersetzen, beispielsweise command_three, damit es nicht zu Konflikten zwischen den Variablen kommt. Definieren Sie dann die neue Funktion, genau wie die Funktion play(_).

Die Möglichkeiten sind endlos; ich verwende diese Methode beispielsweise, um Daten aus dem Web abzurufen (mithilfe der Bibliothek urllib2) und anzuzeigen. Ich verwende es auch, um mit dem Befehl mpg123 MP3-Dateien im Hintergrund abzuspielen, und ich habe ein weiteres Menüelement definiert, um „killall mpg123“ zu verwenden und die Audiowiedergabe jederzeit zu stoppen. Beispielsweise dauert das Beenden von CS:GO auf Steam sehr lange (das Fenster schließt sich nicht automatisch). Als Workaround minimiere ich einfach das Fenster und klicke auf ein selbst erstelltes Menüelement, das den Befehl killall -9 csgo_linux64 ausführt.

Mit diesem Indikator können Sie alles Mögliche tun: Systempakete aktualisieren, andere Skripte ausführen – buchstäblich alles.

Automatischer Start

Wir hoffen, dass der Taskleistenindikator automatisch nach dem Systemstart gestartet werden kann, ohne dass er jedes Mal manuell ausgeführt werden muss. Fügen Sie hierzu einfach den folgenden Befehl zu Ihrer Startanwendung hinzu (Sie müssen dabei allerdings den Pfad zu tray.py durch Ihren eigenen ersetzen):

nohup python/home/<username>/tray.py&

Beim nächsten Neustart des Systems wird die Anzeige nach dem Systemstart automatisch wieder in Betrieb genommen!

abschließend

Sie wissen jetzt, wie Sie Ihre eigenen Taskleistenindikatoren für die gewünschten Aufgaben erstellen. Je nach Art und Anzahl der täglich auszuführenden Aufgaben kann dieser Ansatz viel Zeit sparen. Manche Leute ziehen es vor, Aliase über die Befehlszeile zu erstellen. Dazu müssen Sie jedoch jedes Mal ein Terminalfenster öffnen oder einen Dropdown-Terminalemulator zur Verfügung haben. Hier hingegen ist dieser Taskleistenindikator immer funktionsfähig und verfügbar.

Haben Sie diese Methode schon einmal zum Ausführen Ihrer Aufgaben verwendet? Würde gerne Ihre Meinung hören.

Zusammenfassen

Oben habe ich Ihnen das Erstellen eines benutzerdefinierten Taskleistenindikators für Ihre Aufgaben unter Linux vorgestellt. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!
Wenn Sie diesen Artikel hilfreich finden, können Sie ihn gerne abdrucken und dabei bitte die Quelle angeben. Vielen Dank!

Das könnte Sie auch interessieren:
  • So lösen Sie das Problem des kontinuierlichen Flashens des Linux-Trays

<<:  Beispiele für allgemeine Operationen mit MySQL-Fremdschlüsseleinschränkungen [Anzeigen, Hinzufügen, Ändern, Löschen]

>>:  Fehlerbehebung bei hohem Speicherverbrauch von NodeJs, tatsächlicher Kampfrekord

Artikel empfehlen

Fehler MySQL-Tabelle 'performance_schema...Lösung

Die Testumgebung ist mit MariaDB 5.7 eingerichtet...

Detaillierte Erklärung der wechselseitigen Verwendung von Ref in React

Inhaltsverzeichnis 1. Lassen Sie uns zunächst erk...

Sprechen Sie über implizite Konvertierung in MySQL

Im Laufe der Arbeit werden Sie auf viele Fälle im...

js zur Realisierung eines Web-Musikplayers

Dieser Artikel enthält einfachen HTML- und Musikp...

Umfassende Analyse von Prototypen, Prototypobjekten und Prototypketten in js

Inhaltsverzeichnis Prototypen verstehen Prototypo...

Eine kurze Analyse der parallelen MySQL-Replikation

01 Das Konzept der parallelen Replikation In der ...

Vue implementiert eine einfache Slider-Verifizierung

Dieses Artikelbeispiel zeigt die Implementierung ...

Zabbix3.4-Methode zum Überwachen des MongoDB-Datenbankstatus

Mongodb verfügt über einen Befehl db.serverStatus...

Mehrere Möglichkeiten, Python-Programme im Linux-Hintergrund auszuführen

1. Die erste Methode besteht darin, den Befehl un...

Vier Methoden zur Datentypbeurteilung in JS

Inhaltsverzeichnis 1. Art von 2. Instanz von 3. K...

So sichern Sie MySQL-Kontoinformationen elegant

Vorwort: Ich bin kürzlich auf das Problem der Ins...