logo

Suche:

RSS News/Blog
RSS Seiten

In der KDE-Desktopumgebung bzw. in deren Dateimanager "Konqueror" gibt es die Möglichkeit, durch klicken mit der rechten Maustaste auf ein Objekt, ein Menü mit bestimmten Funktionen anzuzeigen.
Die meisten Menüpunkte in den sogenannten KDE Servicemenüs sind dabei festgeschrieben. Aber natürlich kann man auch Anpassungen vornehmen.
Da ich kaum deutsche Dokumentationen dazu gefunden habe, stelle ich hier meine Erkenntnisse zu diesem Thema zusammen.

Die zentrale Anlaufstelle ist das Verzeichnis
/opt/kde3/share/apps/konqueror/servicemenus.
Hier liegen die notwendigen Dateien.
Für jeden Menü-Eintrag gibt es dabei eine eigene Datei, in der die Steuer-Informationen stehen. Der Name dabei ist beliebig wählbar, muss jedoch auf ".desktop" enden.

Die Konfiguration möchte ich anhand eines Beispiels erklären.

Meine Aufgabenstellung:
Beim Klick auf ein Verzeichnis soll dieses über einen Menüeintrag mittels "zip" entsprechend gepackt werden. Der Dateiname soll dabei der Verzeichnisname sein mit angehängtem ".zip"

Dazu erstellen wir im o.g. Verzeichnis die Datei zip.desktop mit folgendem Inhalt:

Beispieldatei "zip.desktop"
[Desktop Entry]
ServiceTypes=inode/directory
Actions=AddToZip

[Desktop Action AddToZip]
Name=Add To Zip
Name[de]=Zu Zip hinzufuegen
Icon=zip
Exec=zip -9 -r %d/%n.zip %u

Der Erste Absatz definiert, für welche Dateien der Menüpunkt angezeigt werden soll.
Bei ServiceTypes gibt man die MIME-Types der Dateien an, für die der Menüpunkt angezeigt werden soll. Im Beispiel also inode/directory da wir ja nur Verzeichnisse packen wollen.

Mit Actions sind die verschiedenen Aktionen gemeint, die auf die Datei angewandt werden können. Diese werden dann in den nächsten Absätzen definiert.

Der zweite und die folgenden Absätze beschreiben dann die eigentliche Aktion:
Name ist, wie man richtig vermutet, der später im Menü angezeigte Name.
Hier ist es möglich, die Beschriftung für mehrere Sprachen einzustellen. Standard ist hier die englische Beschriftung. Will man eine Beschriftung für andere Sprachen definieren, so legt man eine weitere Zeile an:
Name[sprachenkürzel]=angezeigter Text. Im obigen Beispiel ist es [de]für die deutsche Beschriftung.
Mit icon kann man ein Icon definieren. Hier gibt man entweder einen Namen aus den in KDE vorhandenen Icons an oder den Pfad zu einer entsprechenden Icon-Datei.
Die letzte Zeile exec enthält dann noch den Befehl, der ausgeführt werden soll. Hier gibt es sinnvollerweise noch einige Variablen, die eingebaut werden können:

Einige brauchbare Variablen:
%f Ein einzelner Dateiname, auch wenn mehrere Dateien markiert sind.
%F Eine Liste mit den markierten Dateinamen. Achtung, der verwendete Befehl muss mit einer Liste zurechtkommen!
%u Eine einzelne URL
%U Eine Liste mit URLs
%d Das Verzeichnis (directory), welches die Markierte Datei enthält
%n ein einzelner Dateiname (ohne Pfad)
%N Liste von Dateinamen (ohne Pfad)
  Eine Vollständige Liste ist unter diesem Link zu finden:
http://www.freedesktop.org/Standards/desktop-entry-spec

Nach dem speichern sollte dann das Menü auch schon funktionieren. Zum testen führe einen Rechtsklick auf ein Verzeichnis aus. Nun sollte der entsprechende Menüpunkt schon erscheinen:

KDE-Menü

Hier noch ein paar weitere praktische Beispiele:

Eine Audio-Datei zur Playliste von XMMS hinzufügen
[Desktop Entry]
ServiceTypes=sound/*
Actions=AddToXMMSPlaylist

[Desktop Action AddToXMMSPlaylist]
Name=Add to XMMS Playlist
Name[de]=Zur XMMS Playlsite hinzufuegen
Icon=
Exec=xmms -e %U
Ein Verzeichnis zur Playliste von XMMS hinzufügen
[Desktop Entry]
ServiceTypes=inode/directory
Actions=AddToXMMSPlaylist

[Desktop Action AddToXMMSPlaylist]
Name=Add to XMMS Playlist
Name[de]=Zur XMMS Playlsite hinzufuegen
Icon=
Exec=xmms -e %D