Dieser Artikel beschreibt die Erstellung eines eigenen Kontextmenü-Eintrags für den KDE Plasma Dateimanager Dolphin am Beispiel der Konvertierung von Audio/Video-Dateien.
Grob gesagt, lässt sich der Vorgang in drei Schritte einteilen.
-
Erstellen der Datei, die die Befehle/Aufrufe enthält
-
Ermitteln des Dolphin Kontextmenü-Verzeichnisses
-
Kopieren der Befehls-Datei in das Kontextmenü-Verzeichnis
Details und Beispiele:
- Zuerst wird die Datei (im Desktop-Format) erstellt, die definiert, was auf der/den selektierten Datei(en) ausgeführt werden soll.
Erstellen der Datei audioConverterMenu.desktop
; als Beispielsdatei kann diese verwendet werden.
Zum Holen der Beispieldatei gibt es diverse Möglichkeiten:
- Kopieren des Inhalts über das Webinterface in die Zwischenablage
- Klonen des Repos mit:
git clone https://codeberg.org/rubinski/my_files.git
- Datei im Originalformat direkt herunterladen mit:
curl https://codeberg.org/rubinski/my_files/raw/branch/main/dolphin_contextmenu/audioConverterMenu.desktop > audioConverterMenu.desktop
Die wichtigsten Zeilen aus der Datei kurz erklärt:
MimeType=audio/*;video/*
Hier wird der spezifiziert, für welche Art von selektierten Dateien der Menüeintrag überhaupt erst sichtbar gemacht werden soll. In diesem Fall für alle Dateien vom Typ "Audio" und "Video".
Actions=audioConverterToFlac;audioConverterToMp3;audioConverterToMp4
Für jede einzelne Aktion (Semikolon separierte Liste) wird weiter unten eine eigene Gruppe angelegt; der Name ist beliebig wählbar, muss dann aber natürlich mit dem bei Actions verwendeten Namen identisch sein, Bsp. für die Aktion "audioConverterToFlac":
[Desktop Action audioConverterToFlac]
TryExec=ffmpeg
Exec=for file in %F; do output="${file%.*}.flac"; i=1; while [ -e "$output" ]; do output="${file%.*} ($i).flac"; i=$((i+1)); done; ffmpeg -i "$file" -f flac "$output"; done
Name=Convert multimedia file to flac
Name[de]=Konvertiere zu FLAC
Icon=audio
-
Bei
Exec
wird der tatsächliche Bash-Aufruf eingetragen; in %F steht die jeweils selektierte Datei, respektive Dateien bei Mehrfach-Selektion -
Bei
Name[de]
kann ein deutscher Text vergeben werden, der später im Kontextmenü erscheinen wird -
Bei
Icon
kann ein vom System verfügbares Icon verwendet werden, welches im Kontextmenü für die jeweilige Aktion eingeblendet wird.
- Verwenden des Plasma Shell Kommandos
kf5-config --path services
, um das kservice-Verzeichnis zu identifizieren. (Ein häufig verwendetes Verzeichnis ist $HOME/.local/share/kservices5/)
- Kopieren der zuvor erzeugten Datei
audioConverterMenu.desktop
in das kservices5/ServicesMenus Verzeichnis, z.B.:
Systemweites Kontextmenü (verfügbar für alle Benutzer des Systems)
sudo cp audioConverterMenu.desktop /usr/share/kservices5/ServiceMenus/
Benutzerspezifisches Kontextmenü (nur verfügbar für den aktuell eingeloggten Benutzer)
cp audioConverterMenu.desktop /$HOME/.local/share/kservices5
Dadurch wird ein neuer Eintrag "Multimedia" im Kontextmenü von Dolphin hinzugefügt, der bei selektierten Audio- und Videodateien sichtbar wird.
Info: Hier verwendete KDE-Plasma-Version: 5.27.9.
Abschließend sei gesagt es gibt wohl auch GUI-Tools die einem diese Aufgaben leichter machen, diese wurden vom Autor dieses Artikels aber nicht verwendet und somit auch nicht auf Plasma-Aktualität oder Funktionalität getestet.
Weitere Links:
Ich glaube, ich musste das Exec-Script noch in einen Bash-Aufruf verpacken – z. B. so (hoffe, der Code kommt korrekt an):
Wie kann man in Bludit (bzw. diesem Kommentar-Teil) denn Code einfügen, damit doppelte Code-Anführungszeichen überleben? TIA