date: 09 Dec 2008 title: Les ServiceMenus dans KDE 4 tags: kde ## 1. Présentation Un serviceMenu (appelé aussi menu contextuel) permet d'effectuer diverses actions sur un ou plusieurs fichier(s) directement dans Dolphin ou Konqueror. Par exemple, si vous voulez redimensionner une image, clic droit sur celle-ci et vous aurez une entrée "Redimensionner" par exemple. À l'usage, cela devient très pratique, voir indispensable, puisque vous n'avez aucun logiciel supplémentaire à ouvrir pour, dans cet exemple, redimensionner l'image. Les serviceMenus sont constitué en règle générale : * d'un ou plusieurs fichier .desktop qui indique à Dolphin ou Konqueror la ou les entrées à mettre dans le menu et sur quel(s) type(s) de fichier il doit s'appliquer (image, texte, pdf, dossier, ...) * d'un ou plusieurs programmes, en général c'est un script shell, qui se charge du travail à réaliser sur le fichier donné. Sous KDE 3.5, il existait quelques serviceMenus intégrés par défaut, mais ils ont disparu avec KDE 4.1. ## 2. Réutiliser les serviceMenus de KDE 3.5 Si vous aviez installé des serviceMenus sous KDE 3.5, vous avez dût constater qu'ils n'apparaissaient plus dans KDE 4.1 avec Dolphin ou Konqueror. De même, si vous essayez d'utiliser des serviceMenus fait pour KDE 3.5, ils ne s'afficheront pas sous KDE 4. Voici donc les modifications à apporter aux anciens serviceMenus pour les rendre utilisable sous KDE 4 : * Tout d'abord, il faut déplacer tous les *.desktop dans le dossier /usr/share/kde4/services/ServiceMenus/ ou ~/.kde/share/kde4/services/ServiceMenus/ NOTE: Suivant votre installation de Kde4, il se peut que vous ayez un dossier de config dédié : ~/.kde4. Dans ce cas le chemin sera ~/.kde4/share/kde4/services/ServiceMenus (pensez à l'adapter pour la suite de l'article ;) ). Pour information, sous KDE 3.5, ils étaient dans /usr/share/apps/konqueror/servicemenus/ ou ~/.kde/share/apps/konqueror/servicemenus/ Ce qui donne, au choix : cp /usr/share/apps/konqueror/servicemenus/*.desktop ~/.kde/share/apps/konqueror/servicemenus/*.desktop /usr/share/kde4/services/ServiceMenus/ ou cp /usr/share/apps/konqueror/servicemenus/*.desktop ~/.kde/share/apps/konqueror/servicemenus/*.desktop ~/.kde/share/kde4/services/ServiceMenus/ * Ensuite, dans ces fichiers .desktop, il est nécessaire de rajouter, dans la section [Desktop Entry] une ligne Type=Service puis dans la ligne ServiceTypes=type1,type2,... rajoutez : KonqPopupMenu/Plugin à séparer des autres par une virgule (','). Pour finir, voici un petit script qui fera tous ça à votre place ([télécharger](http://billux13.servhome.org/atelecharger/serviceMenus_for_KDE4 .sh)): #!/bin/bash kdeinstdir=`kde4-config --prefix` cp $kdeinstdir/share/apps/konqueror/servicemenus/*.desktop ~/.kde/share/apps/konqueror/servicemenus/*.desktop $kdeinstdir/share/kde4/services/ServiceMenus/ cd $kdeinstdir/share/kde4/services/ServiceMenus/ sed -i "s/[Desktop Entry]/[Desktop Entry]nType=Service/" * sed -i "s/ServiceTypes=/ServiceTypes=KonqPopupMenu/Plugin,/" * ## 3. Quelques serviceMenus particulièrement utiles (selon moi) * [Kim :](http://kde-apps.org/content/show.php/Kim+(Kde+Image+Menu)?content=11505) diverse opérations sur les images : rotation, redimensionnement, compression, changement de format, ajout de bordures, ... * [Extract And Compress :](http://www.kde-apps.org/content/show.php/Extract+And+Compress+KDE4?content=84 206) compression dans un grand nombre de format, décompression dans le dossier courant ou dans un sous dossier. * [AudioKonverter :](http://www.kde-apps.org/content/show.php/audiokonverter?content=12608) conversion de musique en mp3, ogg, wav, flac, ... * [Servicemenu-pdf :](http://www.kde-apps.org/content/show.php/servicemenu-pdf+for+KDE4?content=373 21) permet de transformer un document pdf en texte, html ou images (il n'est pas encore traduit en français, mais j'ai entammé sa traduction). ## 4. Créer ses propres serviceMenus Et pour finir, voici comment créer vos serviceMenus, si, par exemple, vous ne trouvez pas celui que vous voulez. Soit vous créez les fichiers .desktop et .sh nécessaire à la main. Je ne vais pas vous dire ici comment faire, de nombreux tutoriels existent déjà, par exemple [celui-ci](http://www.coagul.org/spip.php?article572). Soit vous utilisez [une petite application graphique](http://www.kde-apps.org/content/show.php/Service+Menu+Editor?content= 85062) que j'ai découverte et qui permet de générer le .desktop très facilement. Personnellement je n'aime pas trop les applications qui génèrent du code à votre place (ce qui revient à écrire du code qui écrira lui même du code, stupide ; autant écrire du code directement...) mais là elle est très bien faite et surtout simple à utiliser. Je vous laisse la découvrir. Notez quand même que dans tous les cas, il faut écrire le script soi-même.