KDE-Servicemenüs
Artikel wird überarbeitet
Dieser Artikel wird momentan überarbeitet.
Geplante Fertigstellung: 15.1.2014
Derzeitig gültiger Artikel: KDE-Servicemenüs
Bearbeiter: Shakesbier
Solltest du dir nicht sicher sein, ob an dieser Anleitung noch gearbeitet wird, kontrolliere das Datum der letzten Änderung und entscheide, wie du weiter vorgehst.
Achtung: Insbesondere heißt das, dass dieser Artikel noch nicht fertig ist und dass wichtige Teile fehlen oder sogar falsch sein können. Bitte diesen Artikel nicht als Anleitung für Problemlösungen benutzen!
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte teste diesen Artikel für eine Ubuntu-Version, welche aktuell unterstützt wird. Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
⚓︎ Root-Rechte, optional
⚓︎ Rechte für Dateien und Ordner ändern, optional
⚓︎ Installation von Programmen, optional
KDE-Servicemenüs sind Einträge, die abhängig vom ausgewählten Dateityp im Kontextmenü von Dolphin und Konqueror erscheinen. Die Arbeit mit Dateien wird durch die Servicemenüs erheblich vereinfacht. Beispiele für standardmäßig installierte Servicemenüs sind die Optionen für Musik-Dateien "Amarok: An Wiedergabeliste anhängen" oder "Archiv hierher auspacken" für komprimierte Dateien.
Die Erstellung von Servicemenüs erfordert keine großen Kenntnisse über Programmierung. Die entsprechenden Einträge können in der Regel mit einem Editor geschrieben werden. In diesem Artikel wird das Grundgerüst eines Servicemenüs, sowie einige Beispiele vorgestellt.
Servicemenüs unter Dolphin und Konqueror¶
Dolphin und Konqueror bieten die Möglichkeit, fertige Servicemenüs über das KDE-Projekt zu installieren. In Dolphin wählt man "Einstellungen → Dolphin einrichten → Dienste". Dort können vorhandene Dienste de-/aktiviert werden, sowie über die Schaltfläche "Neue Dienste herunterladen" weitere Dienste heruntergeladen und installiert werden. Bei Konqueror ist es entsprechend "Einstellungen → Konqueror einrichten → Dateiverwaltung → KDE-Dienste → Neue Dienste herunterladen".
Hinweis:
Einige Servicemenüs funktionieren nur, wenn gewisse Skripte, Pakete oder andere Abhängigkeiten ebenfalls installiert sind. Hierzu die Beschreibung des Dienstes zu Rate ziehen.
Eigene Servicemenüs¶
Ein eigener Servicemenüeintrag kann mit Hilfe eines Editors [1] erstellt werden. Er besteht aus einer einzelnen Textdatei, die mit einem eindeutigen Namen und der Dateiendung .desktop abgespeichert wird.
Die Servicemenüs können vom Benutzer lokal in seinem Homeverzeicnis oder global für alle Benutzer des Systems im Basisordner installiert werden. Für die lokale Installation muss die erstellte Datei in den Ordner ~/.kde/share/kde4/services kopiert werden. Bei der globalen Installation kopiert man die erstellte Datei mit Root-Rechten [2] in das Verzeichnis /usr/share/kde4/services.
Die Datei beginnt mit folgendem Inhalten:
[Desktop Entry] Type=Service ServiceTypes=KonqPopupMenu/Plugin MimeType=audio/x-mp3; Actions=normalize; Action2
Als MimeType
wählt man für welche Kategorie oder Dateitypen das Kontextmenü auftauchen soll. Für Verzeichnisse wird z.B. inode/directory
eingetragen. Hierbei kann *
als Wildcard verwendet werden, z.B image/*
für alle Typen von Bildern.
Kontextmenü mit eigenem Eintrag durch X-KDE-Priority=TopLevel platziert |
Das Servicemenü erscheint in der Regel über " → Aktionen". Dieses Verhalten lässt sich jedoch über den Eintrag X-KDE-Priority=TopLevel
so verändern, dass das Servicemenü direkt unter erscheint.
Werden in einem Servicemenü mehrere Aktionen definiert, kann man diese durch die Angabe X-KDE-Submenu=Untermenüpunkt
in einen Untermenüpunkt zusammenfassen und die angebotenen Servicemenüs strukturieren.
Nach dem Eintrag Actions=
werden dann eine oder mehrere Aktionen definiert, die in weiteren Sektionen unterhalb beschrieben werden.
[Desktop Action normalize] Name=normalize Name[de]=Normalisieren Icon=audio-mpeg Exec=mp3gain -r -c -d 7 %u
In den eckigen Klammern wird nun der Abschnitt deklariert, die im obigen Abschnitt bereits beschrieben wird. Anschließend wird der Name, der im Kontextmenü erscheint, vergeben. Für Übersetzungen kann der Name ebenfalls mit angegeben werden. Der entsprechende Eintrag wird dann über die Spracheinstellungen des Systems ausgewählt.
Im Kontextmenü wird ebenfalls ein Icon angezeigt, sofern es hier definiert wurde. Die Angabe des Icons bezieht sich auf den Pfad /usr/share/icons oder dessen Unterverzeichnis, wenn keine absolute Pfadangabe gemacht wurde.
In der nächsten Zeile wird mit Exec=
der auszuführende Befehl angegeben werden. Am Ende wird der Dateiname übergeben. Das kann mit folgenden Parametern erfolgen:
Parameter | Erklärung |
%u | Eine URL öffnen |
%U | Eine Liste von URLs öffnen |
%d | Ein Verzeichnis öffnen, das eine bestimmte einzelne Datei enthält |
%D | Eine Reihe von Verzeichnissen öffnen, die verschiedene Dateien enthalten |
%f | Eine Datei oder Ordner mit Pfadangabe, auch wenn mehrere Dateien oder Ordner ausgewählt wurden |
%F | Mehrere Dateien oder Ordner mit Pfadangabe |
%n | Eine Datei oder Ordner ohne Pfadangabe, auch wenn mehrere Dateien oder Ordner ausgewählt wurden |
%N | Mehrere Dateien oder Ordner ohne Pfadangabe |
Als Befehl können auch mehrere aufeinander folgende Befehle ausgewählt werden: Exec=/bin/sh -c ";<Liste der Befehle>"
. Bei vielen Befehlen kann diese Notation jedoch schnell unübersichtlich werden. Hier bietet es sich an, die Befehle in ein Bash-Skript zu schreiben und die Dateien dem Skript zu übergeben. Im Bash-Skript lässt sich auch eine Rückmeldung mittels KDialog einbauen. Dementsprechend sieht dann die Zeile wie folgt aus: Exec=skript.sh %U
Hinweis:
Skripte können in das Homeverzeichnis (z.B. ~/bin/) oder global mit Root-Rechten [2] in das Verzeichnis /usr/local/bin kopiert und ausführbar [3] gemacht werden. Siehe hierzu den Skripting Guide - Ausführbar machen und aufrufen.
In der Befehlszeile können auch Befehle eingetragen werden, die über das D-Bus-Protokoll auf andere, bereits laufende Anwendungen zugreifen.
Vorschläge eigener Servicemenüs¶
Nachfolgend eine kleine Liste mit Vorschlägen für eigene Servicemenüeinträge:
mp3 mittels mp3gain auf eine normalisierte Lautstärke bringen
Erstellung von Bildkopien mit kleineren Abmessungen oder höheren Kompressionsraten für das Web
Bilder mit Wasserzeichen versehen
Einbindung von ISO-Images in das Dateisystem
etc.
Mehrere mp3 normalisieren¶
Diese Servicemenü normalisiert mehrere ausgewählte Dateien auf den Wert 95dB.
Das nachfolgende Paket muss hierzu installiert [4] werden:
mp3gain
Befehl zum Installieren der Pakete:
sudo apt-get install mp3gain
Oder mit apturl installieren, Link: apt://mp3gain
Größe mehrerer jpegs ändern¶
Dieses Servicemenü gibt die Möglichkeit, mehrere Bilder zu markieren und die Bildgröße in 3 festen Stufen (1024x768; 800x640; 640x480 Pixel) oder in eine beliebig anzugebenden Größe zu konvertieren. Entspricht das Seitenverhältnis des Ausgangsbildes nicht dem vorgegebenen Seitenverhältnis, so wird nur der Breitenwert berücksichtigt und der Höhenwert dementsprechend angepasst, so dass es zu keiner Verzerrung des Bildes kommt. Bei Verwendung eines benutzerdefinierten Wertes gibt man nur die gewünschte Breite an.
Das Originalbild bleibt dabei erhalten, es wird eine neue Datei mit entsprechendem Suffix im gleichen Ordner angelegt.
Das nachfolgende Paket muss hierzu installiert [4] werden:
image-magick
Befehl zum Installieren der Pakete:
sudo apt-get install image-magick
Oder mit apturl installieren, Link: apt://image-magick
Drehen von Bildern durch exif-Tags¶
Manche Kameras setzen einen Exif-Eintrag zur Orientierung des Bildes nicht. Hierdurch wird das Bild in den meisten Bildbetrachtern in korrekter Orientierung angezeigt. Dabei wird das Bild selbst nicht gedreht und dadurch eventuelle Konvertierungsverluste, die durch das Drehen entstehen können, ausgeschlossen.
Das nachfolgende Paket muss hierzu installiert [4] werden:
exiftran
Befehl zum Installieren der Pakete:
sudo apt-get install exiftran
Oder mit apturl installieren, Link: apt://exiftran
Links¶