Un service menu est une action disponible à partir du clic droit sur un fichier/répertoire dans Dolphin ou Konqueror (gestionnaires de fichiers KDE).
Un équivalent sous Gnome avec Nautilus est nautilus-actions.
Il s'agit d'un simple fichier avec l'extension .desktop, situé dans le répertoire /servicemenus.
Pour Plasma 5 (Dolphin), le répertoire /servicemenus est localisé dans :
Pour KDE 4.2 et antérieurs (Konqueror), le répertoire /servicemenus est localisé dans :
Et il existe un répertoire commun à tous :
On peut télécharger toute sorte de service menus supplémentaires sur KDE Store.
Pour créer ou personnaliser un fichier .desktop, vous trouverez les informations utiles sur la création d'un service menu sur les sites suivants :
Mais attention les versions service_menus antérieur à KDE 4.2 ne sont plus compatibles .
Pour les rendre utilisables il faut modifier la section [Desktop Entry] :
ajouter une ligne Type=Service et ServiceTypes= KonqPopupMenu/Plugin
Autrement dit votre première section doit désormais contenir
[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin
MimeType=all/all; (ou tout autre type)
Actions= (le nom de l'action définis dans la section suivantes)
Ce service-menu offre plusieurs possibilités assez originales pour personnaliser l'aperçu d'un dossier, à partir d'une image qu'il contient.
Voici ce que donne la "pile de polaroid" :
Ce service-menu est né la collaboration entre deux membres du forum Arbre Ciré et alexnihilo sur ce sujet.
La version actuelle est développée et diffusée par Arbre Ciré, qui en assure aussi le maintien.
Télécharger ce paquet :koovfolder_beta_1.0.7.tar.gz et le décompresser.
sudo chmod a+x KoovFolder.sh
La dernière version de KoovFolder créé le fichier de configuration ~/.KoovFolder/KoovFolder.conf.
Il permet de régler plusieurs paramètres :
[Desktop Entry] ServiceTypes=text/*,application/x-desktop Actions=Editassu [Desktop Action Editassu] Name=Edit as Root Name[it]=Edita come Root Name[fr]=Editer en tant que Root Name[es]=Editar como Root Name[de]=Als root bearbeiten Icon=kfm Exec=kdesu "kate" "%U"
Source : http://club.mandriva.com/xwiki/bin/view/KB/EditAsRootMenu (J'ai modifié le script original en remplaçant kwrite par kate).
il est peut-être possible de ne spécifier que "inode/directory" plutôt que de mettre l'étoile, je maitrise pas bien les MIME et je ne sais pas si c'est suffisant pour que l'option soit disponible pour des dossier système tel que le dossier où sont installé les programmes.
[Desktop Entry] ServiceTypes=inode/* Actions=Openassu [Desktop Action Openassu] Name=Open as Root Name[fr]=Ouvrir en tant que Root Icon=kfm Exec=kdesu konqueror "%U"
Source : le script du dessus
Permet de lancer ExFalso directement dans le dossier que l'on pointe.
[Desktop Entry] ServiceTypes=inode/directory Actions=exfalso [Desktop Action exfalso] Name=Edit tag with Ex Falso Name[fr]=Editer les tag avec Ex Falso Icon=/usr/share/pixmaps/exfalso.png Exec=exfalso %U
Permet de lancer métamorphose directement dans le répertoire sélectionné. L'icône ne fonctionne peut-être pas pour tout le monde, je ne sais pas si elle y était d'origine ou si c'est moi qui l'y ai mise.
[Desktop Entry] ServiceTypes=inode/directory Actions=renamewithmetamorphose [Desktop Action renamewithmetamorphose] Name=Rename with metamorphose Name[fr]=Renommer avec métamorphose Icon=/usr/share/pixmaps/metamorphose64.png Exec=metamorphose %U
[Desktop Entry] ServiceTypes=all/allfiles Actions=attach [Desktop Action attach] Name=Mail with KMail Name[fr]=Attache le fichier dans Kmail Icon=kmail Exec=kmail --attach %F
Créer le lanceur AttachToThunderbirdMail.desktop dans ~/.kde/share/apps/konqueror/servicemenus/ avec le contenu :
[Desktop Entry] Encoding=UTF-8 ServiceTypes=all/all Actions=attachToEmail [Desktop Action attachToEmail] Name=Attach to Thunderbird Mail Name[fr]=Envoyer en pièce jointe avec Thunderbird Icon=thunderbird_2x Exec=thunderbird -compose `echo attachment=\'file://%F\' | sed 's/ \//,file:\/\/\//g'`
Source : http://www.kde-apps.org/content/show.php/Thunderbird+Service+Menu?content=19328
Plusieurs fonctionnalités sont proposées par ce service menu :
Télécharger le .desktop ici :konqkonv.desktop
Sources : http://forum.kubuntu-fr.org/viewtopic.php?pid=1150069#p1150069
[Desktop Entry] ServiceTypes=inode/directory Actions=search [Desktop Action search] Name=Search in the selected folder Name[fr]=Rechercher dans le dossier sélectionné Icon=kfind Exec=kfind %f
Sources : http://forum.kubuntu-fr.org/viewtopic.php?pid=1165799#p1165799
[Desktop Entry] ServiceTypes=video/* Actions=Enchainer Mplayer [Desktop Action Enchainer Mplayer] Name=Enchainer Mplayer Icon=kmplayer Exec=mplayer -fs %U
Sources : http://forum.kubuntu-fr.org/viewtopic.php?pid=1277583#p1277583
Nous allons reprendre l'exemple de ci-dessus nommé Editer un fichier en tant que root. L'insertion de séparateurs ce fait au niveau de l'option Actions en rajoutant le terme _SEPARATOR_. L'option X-KDE-Priority=TopLevel permet quant à elle de mettre le menu en question au premier plan.
[Desktop Entry] ServiceTypes=text/*,application/x-desktop Actions=_SEPARATOR_;Editassu;_SEPARATOR_; X-KDE-Priority=TopLevel [Desktop Action Editassu] Name=Edit as Root Name[it]=Edita come Root Name[fr]=Editer en tant que Root Name[es]=Editar como Root Name[de]=Als root bearbeiten Icon=kfm Exec=kdesu "kate" "%U"
Il faut télécharger l'outil Krip2clip ici : Krip2clip
Quelques pré-requis d'installation :
(l'outil propose lui-même le téléchargement et l'installation de HandBrakeCLI , voir ici : http://handbrake.fr )
L'outil installe de lui même les services menus (pour Dolphin et Konqueror) dont voici le contenu (à titre d'information, vous n'aurez pas à y intervenir normalement…) :
[Desktop Entry] ServiceTypes=inode/blockdevice,application/x-iso,media/dvdvideo Actions=rip2clip X-SuSE-translate=true [Desktop Action rip2clip] Name=Rip source to video clips Name[fr]=Ripper la source en vidéo clips Exec=Krip2clip "dvdname='%u';" Icon=/usr/share/apps/kmdr-Krip2clip/Krip2clip_icon.png
A noter, le logiciel M.O.V.E (My Own Video Encoder), un autre outil qui installe lui-même ces services menu : M.O.V.E.
pour encoder des vidéos direct dans les miniPlayers de la maison Meizu.
Ce service-menu permet de comparer deux fichiers sélectionnés ensemble ou successivement dans Konqueror ou Dolphin. Il nécessite l'installation de l'utilitaire kompare qui visualise ligne par ligne les différences, et le script komparefile.sh ci-dessous. Inspiré du fonctionnement d'un utilitaire existant sous XP, la première activation du service-menu enregistre le nom du premier fichier, et la deuxième activation lance la comparaison. Le menu "Choisir le premier fichier" reinitialise le nom de fichier.
Contributeur : besoa
[Desktop Entry] ServiceTypes=inode/directory,inode/system_directory,all/allfiles Actions=CompareFile;SelectFirst; [Desktop Action CompareFile] Name=Compare file with... Name[fr]=Comparer ... Icon=kompare Exec=~/tools/komparefile.sh "%u" [Desktop Action SelectFirst] Name=Select first file to compare Name[fr]=Choisir le premier fichier Icon=kompare Exec=rm /tmp/kde-`whoami`-comparefile1; ~/tools/komparefile.sh "%u" X-Ubuntu-Gettext-Domain=desktop_dolphin
Dans le cas indiqué ci-dessus, le fichier script komparefile.sh a été installé dans le répertoire ~/tools.
#!/bin/bash # file: komparefile.sh # http://developer.kde.org/documentation/tutorials/dot/servicemenus.html # check for number of arguments if [ "$1" == "" ]; then echo "Usage :" echo " komparefile.sh filename1, record the first filename." echo " komparefile.sh filename2, launch kompare on the two files." echo " komparefile.sh filename1 filename2 do the same." exit 0 fi export FILENAME1=$(echo /tmp/kde-`whoami`-comparefile1) if [ "$2" != "" ]; then kompare $1 $2 & if [ -f "$FILENAME1" ]; then # Clean up rm $FILENAME1 fi exit 0 fi # TODO: with the desktop action parameter %U # we only have one argument $1 which may contain multiple urls. # Should check if $1 contains multiple filenames # Now, because of the use of parameter "%u", # it recursively takes care of two files at a time. # which is not intended. if [ -f "$FILENAME1" ]; then echo "komparer les fichiers" export file1=$(cat $FILENAME1); echo file1 : $file1 echo file2 : $1 kompare $file1 $1 & rm $FILENAME1 exit 0 else echo "sauver le nom de fichier" echo file1 : $1 echo $1 > $FILENAME1; fi
D'autres extensions sont possibles mais nécessitent un peu de programmation supplémentaire: comme par exemple comparer deux répertoires, ou aussi comparer plus de deux fichiers en même temps. En l'état actuel, comme indiqué dans les commentaires du script, si plus de deux fichiers sont sélectionnés, le script les compare deux par deux et non pas tous à la fois.
Note: pour les anciennes versions de KDE, le fichier temporaire mémorisant le nom est /tmp/kde-`whoami`/comparefile1
, dans un sous répertoire de /tmp, au lieu de /tmp/kde-`whoami`-comparefile1
.
[Desktop Entry] Type=Service ServiceTypes=KonqPopupMenu/Plugin,all/allfiles Actions=shred [Desktop Action shred] Name=Suppr with shred Name[fr]=Suppression sécurisée Icon=draw-eraser Exec=shred -n 35 -z -u %U
Fonctionne sous kde 4.3
Contributeur : hizoka
Compatible avec KDE 4.3.
[Desktop Entry] Type=Service ServiceTypes=KonqPopupMenu/Plugin MimeType=all/all; Actions=compile [Desktop Action compile] Name=Compile the Makefile Name[fr]=Compile le fichier Makefile Exec=make && echo
Afin d'avoir un équivalent sous KDE avec Dolphin à l'excellent nautilus-image-converter qui tourne sous Gnome avec Nautilus.
Scripts validés sou KDE 4.8 (Kubuntu 12.04).
[Desktop Action r1920] Exec=/bin/sh -c "convert %f -resize 1920x1920 "`echo %f | awk -F . '{print $1 "_1920." $NF}'`"" Icon= Name=1920 [Desktop Action r1680] Exec=/bin/sh -c "convert %f -resize 1680x1680 "`echo %f | awk -F . '{print $1 "_1680." $NF}'`"" Icon= Name=1680 [Desktop Action r1280] Exec=/bin/sh -c "convert %f -resize 1280x1280 "`echo %f | awk -F . '{print $1 "_1280." $NF}'`"" Icon= Name=1280 [Desktop Action r1024] Exec=/bin/sh -c "convert %f -resize 1024x1024 "`echo %f | awk -F . '{print $1 "_1024." $NF}'`"" Icon= Name=1024 [Desktop Action r800] Exec=/bin/sh -c "convert %f -resize 800x800 "`echo %f | awk -F . '{print $1 "_800." $NF}'`"" Icon= Name=800 [Desktop Action r640] Exec=/bin/sh -c "convert %f -resize 640x640 "`echo %f | awk -F . '{print $1 "_640." $NF}'`"" Icon= Name=640 [Desktop Action r320] Exec=/bin/sh -c "convert %f -resize 320x320 "`echo %f | awk -F . '{print $1 "_320." $NF}'`"" Icon= Name=320 [Desktop Entry] Actions=r1920;r1680;r1280;r1024;r800;r640;r320; MimeType= ServiceTypes= Type=Service X-KDE-ServiceTypes=KonqPopupMenu/Plugin,,image/jpeg,image/png X-KDE-Submenu=RedimensionnerChangeNom
[Desktop Action r1024] Exec=convert %f -resize 1024x1024 %f Icon= Name=1024 [Desktop Action r1920] Exec=convert %f -resize 1920x1920 %f Icon= Name=1920 [Desktop Action r1280] Exec=convert %F -resize 1280x1280 "%f Icon= Name=1280 [Desktop Action r1680] Exec=convert %F -resize 1680x1680 %f Icon= Name=1680 [Desktop Action r640] Exec=convert %F -resize 640x640 %f Icon= Name=640 [Desktop Action r800] Exec=convert %F -resize 800x800 %f Icon= Name=800 [Desktop Action r320] Exec=convert %F -resize 320x320 %f Icon= Name=320 [Desktop Entry] Actions=r1920;r1680;r1280;r1024;r800;r640;r320; MimeType= ServiceTypes= Type=Service X-KDE-ServiceTypes=KonqPopupMenu/Plugin,,image/jpeg,image/png X-KDE-Submenu=RedimensionnerEcraseAncien
Pour créer une archive 7z et la couper en morceaux de 2Mo ou 20Mo. Utile pour envoyer de gros fichiers par email.
[Desktop Action DecoupeFichiers20Mo] Name=en fichiers de 20Mo Icon= Exec=cd %d && 7z a -v20m -mx=0 "%u".7z "%f" [Desktop Action DecoupeFichiers2Mo] Name=en fichiers de 2Mo Icon= Exec=cd %d && 7z a -v2m -mx=0 "%u".7z "%f" [Desktop Entry] Actions=DecoupeFichiers2Mo;DecoupeFichiers20Mo; MimeType= ServiceTypes=all/all Type=Service ExcludeServiceTypes=application/x-zip,application/x-7z,application/x-iso,application/x-bzip2,application/x-tgz,kdedevice/* X-KDE-ServiceTypes=KonqPopupMenu/Plugin,,inode/directory,all/allfiles X-KDE-Submenu=Archiver en 7z et couper
Source http://forum.ubuntu-fr.org/viewtopic.php?pid=11047721#p11047721