Wie füge ich dem Kontextmenü in Dolphin in KDE 5 benutzerdefinierte Elemente hinzu?

12

Ich habe herumgegoogelt, kann aber anscheinend keine konsistenten Tutorials oder Dokumentationen finden, die beschreiben, wie das geht (in meinem Fall auf Kubuntu 15.10). Ich möchte dem Kontextmenü in Dolphin (a la nautilus-scriptsfor Nautilus) benutzerdefinierte Skripte hinzufügen . Wenn ich Anweisungen befolge, die ich finde, kann ich aus irgendeinem Grund das Kontextmenü nur anzeigen, wenn ich mit der rechten Maustaste auf die entsprechende .desktopDatei klicke . Wie kann ich das lösen?

JesseTG
quelle

Antworten:

13

KDE-Servicemenüs

In KDE-speak ist ein "Servicemenü" ein spezieller Eintrag, der in einem Kontextmenü (oder einer anderen kontextbasierten Schnittstelle) für eine Datei (oder für ein Verzeichnis) angezeigt wird, abhängig vom Typ der ausgewählten Dateien.

Erstellen von (Konqueror) KDE-Servicemenüs: https://techbase.kde.org/Development/Tutorials/Creating_Konqueror_Service_Menus

Servicemenüs mit Dolphin: https://www.kubuntuforums.net/showthread.php?25740-Service-Menus-with-Dolphin -> KF5-Servicemenüs: https://www.kubuntuforums.net/showthread.php?25740 -Service-Menüs-mit-Delphin & p = 367207 & viewfull = 1 # post367207

Fehlende Servicemenüs: https://forum.kde.org/viewtopic.php?f=223&t=128621

Wege

KDE Frameworks 5 sucht Dienste von:

kf5-config --path services

Ausführen:

$ kf5-config --path services
/home/user26687/.local/share/kservices5/:/usr/share/kservices5/

Das ist:

Benutzerwartungsmenüs sind:

$HOME/.local/share/kservices5/ServiceMenus/

Systemwartungsmenüs sind bei

/usr/share/kservices5/ServiceMenus/

Desktop-Dateien

Servicemenüs werden mithilfe von .desktop-Dateien definiert. Desktop-Eintragsspezifikation: https://standards.freedesktop.org/desktop-entry-spec/latest/

Bild: Die Desktop-Eintragsspezifikation hat die Bedeutung der Schlüssel / Codes Bild: Beispiel für die Schlüssel / Codes der Desktop-Eintragsspezifikation

Ein Beispiel - einfaches Servicemenü mit Dateipfad:

Erstellen: $ HOME / .local / share / kservices5 / ServiceMenus / myFirstServiceMenu.desktop

Wenn das Verzeichnis nicht existiert, kann der Benutzer es machen!

[Desktop Entry]
Type=Service
Icon=smiley-shape
X-KDE-ServiceTypes=KonqPopupMenu/Plugin
MimeType=all/allfiles;
Actions=helloWorld;
Encoding=UTF-8

[Desktop Action helloWorld]
Name=Hello with path information
Icon=smiley-shape
Exec=kdialog --msgbox "Path is %f"

Bild: Ein Servicemenü am richtigen Ort. Bild: Ein Servicemenü am richtigen Ort.

Schließen Sie alle Dolphin-Fenster und starten Sie ein neues. Wenn Sie mit der rechten Maustaste auf eine Datei klicken:

Bild: Beispiel der Wartungsaktion

user26687
quelle
Bitte fügen Sie hier den relevanten Teil der Antwort hinzu und geben Sie die Links nur als Referenz an.
Anwar
3

Das Folgende funktionierte für mich unter Ubuntu 16.04

Platzieren Sie die Skripte im Verzeichnis ~/.local/share/kservices5/ServiceMenus/

Lauf kbuildsycoca5

Skripte werden in neuen Delfininstanzen angezeigt.

bbbb
quelle
1

Unter Ubuntu 16.04 mit KDE (Kubuntu) ein passendes Verzeichnis für * .desktop Dateien/usr/share/kservices5/ServiceMenus/

(Vergleichen Sie die Ausgabe von dpkg -L ark, um ähnliche Dateispeicherorte für die Arche-Untermenüs zu finden.)

cucujoidea
quelle