[[Vorlage(InArbeit, Datum, Schmirglgruber)]] [[Vorlage(Getestet, karmic, lucid, maverick)]] {{{#!vorlage Wissen [:Terminal: Öffnen eines Terminals] [:Editor: Einen Editor öffnen] }}} [[Inhaltsverzeichnis(1)]] KDE-Servicemenüs sind Einträge, die abhängig vom ausgewählten Dateityp im [wikipedia: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 aller Regel mit einem Text-Editor geschrieben werden. Hier wird das Grundgerüst eines Servicemenüs vorgestellt und einige Beispiele vorgestellt, bei denen man sie anwenden kann. = Servicemenüs unter Dolphin und Konqueror = [:Dolphin:] und [:Konqueror:] bieten die Möglichkeit, fertige Servicemenüs über das KDE-Projekt zu installieren. Im Dolphin geht man dazu auf ''"Einstellungen -> Dolphin einrichten -> Dienste -> Neue Dienste herunterladen"''. Beim Konqueror ist es entsprechend ''"Einstellungen -> Konqueror einrichten -> Dateiverwaltung -> KDE-Dienste -> Neue Dienste herunterladen"''. {{{#!vorlage Warnung Einige Servicemenüs funktionieren nur, wenn gewisse Skripte, Pakete oder andere Abhängigkeiten ebenfalls installiert sind. Hierzu die Beschreibung des Dienstes zu Rate ziehen. Zusätzlich scheint bei einigen angebotenen Servicemenüs die Installation nicht korrekt zu funktionieren. }}} = Eigene Servicemenüs = == Erstellung des Servicemenüs == Das Servicemenü wird mit einem Text-Editors (z.B. kate) erstellt. Das Servicemenü ist eine Textdatei, die mit einem eindeutigen Namen und der Dateiendung '''.desktop''' abgespeichert wird. Die Datei beginnt mit folgendem Inhalten: {{{ [Desktop Entry] Type=Service ServiceTypes=KonqPopupMenu/Plugin MimeType=audio/x-mp3; Actions=normalize; Action2 }}} Bei `MimeType=` kann eingetragen werden, für welche Kategorie oder Dateitypen das Kontextmenü auftauchen soll. Für Verzeichnisse wird z.B. `inode/directory` eingetragen. Dabei lässt sich auch mit einem `*` als Wildcard arbeiten, z.B `image/*` für alle Typen von Bildern. Das Servicemenü erscheint in der Regel über "[[Vorlage(Tasten, rmb)]] -> Aktionen". Dieses Verhalten lässt sich jedoch über den Eintrag `X-KDE-Priority=TopLevel` so verändern, dass das Servicemenü direkt unter [[Vorlage(Tasten, rmb)]] 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, wenn 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: * %u : eine Datei oder Ordner mit Pfadangabe, auch wenn mehrere Dateien oder Ordner ausgewählt wurden * %U : mehrere Dateien oder Ordner mit Pfadangabe * %f : eine Datei oder Ordner ohne Pfadangabe, auch wenn mehrere Dateien oder Ordner ausgewählt wurden * %F : mehrere Dateien oder Ordner ohne Pfadangabe Als Befehl können auch mehrere aufeinander folgende Befehle ausgewählt werden: `Exec=/bin/sh -c ";"` Bei vielen Befehlen kann diese Notation jedoch schnell unübersichtlich werden. Hier bietet es sich an, die Befehle in ein [:Shell/Bash-Skripting-Guide für Anfänger: 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 so aus: `Exec=skript.sh %U` In der Befehlszeile können auch Befehle eingetragen werden, die über das dbus-Protokoll auf andere, bereits laufende Anwendungen zugreifen. == Installation der Servicemenüs == Die Servicemenüs können vom Benutzer lokal in seinem Homeverzeicnis oder global im Basisordner installiert werden. Für die lokale Installation muss die erstellte Datei in den Ordner '''~/.kde/share/kde4/services/Servicemenus''' kopiert werden. Bei der globalen Installation mit root-Rechten kopiert man die erstellte Datei in das Verzeichnis '''/usr/share/kde4/services/ServiceMenus'''. == Vorschläge zu Servicemenüs == Hier eine kleine Liste von Sachen, die man über ein Servicemenü realisieren kann: * 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. = Anhänge = Anbei einige Anhänge, die oben beschriebene Vorschläge umsetzen Die Bash-Skripte können lokal in das Verzeichnis '''~/.local/bin''' oder global in das Verzeichnis '''/usr/local/bin''' installiert werden und mit {{{#!vorlage Befehl chmod +x /pfad/zu/Mein_Skript }}} ausführbar gemacht werden. == Mehrere mp3 normalisieren == Das Servicemenü normalisiert mehrere ausgewählte Dateien auf den Wert 95dB. Es wird der Status der Normalisierung angezeigt, was bei vielen Dateien sehr hilfreich ist. Erfordert das Paket {{{#!vorlage Paketinstallation mp3gain }}} * [[Anhang("mp3gain servicemenu.desktop")]] {dl} * [[Anhang("mp3gain-batch")]] {dl} == 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. Erfordert das Paket {{{#!vorlage Paketinstallation image-magick }}} * [[Anhang("image-resize servicemenu.desktop")]] {dl} * [[Anhang("image-resize-batch")]] {dl} == Drehen von Bildern durch exif-Tags == Manche Kameras setzen das exif-Tag zur Orientierung des Bildes nicht. Durch das Setzen des Tags 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. Erfordert das Paket {{{#!vorlage Paketinstallation exiftran }}} * [[Anhang("exiftran servicemenu.desktop")]] {dl} = Links = * [http://techbase.kde.org/Development/Tutorials/Creating_Konqueror_Service_Menus KDE TechBase über Servicemenüs] {en} * [http://bouveyron.free.fr/kim/ KDE Image Menü für KDE3] {en} #tag: Desktop, KDE, Dateimanager,