Nautilus, Dolphin, Konqueror, clic droit et lolcat
Les explorateurs de fichiers sous Linux cachent de nombreuses surprises. Une est particulièrement intéressante puisqu'elle permet d'ajouter des actions en clic droit.
Cela permet de sélectionner un ou plusieurs fichiers avec un clic droit et de lancer dessus des actions automatiques et personnalisées. On peut par exemple lancer des conversions de fichiers photos à la volée. En entreprise, on peut imaginer l'envoi d'un fichier terminé sur le serveur par un simple clic droit. Si on le met en place pour une tierce personne, celle ci n'a pas besoin de connaître la moindre ligne de commande pour déclencher une série d'actions à partir d'un fichier.
Pour l'exemple, et pour rester simple, je vais juste lancer une conversion en png à l'aide du logiciel imagemagick.
apt-get install imagemagick
On utilise le module convert d'Imagemagick, la ligne de commande se résume ici à
convert image.extension image.png
Intégration dans Nautilus
On crée un script .sh dans le dossier ~/.local/share/nautilus/scripts/
mkdir -p ~/.local/share/nautilus/scripts/
touch ~/.local/share/nautilus/scripts/conversion_vers_png.sh
Pour les versions de Nautilus antérieure à la 3.6. le dossier contenant les scripts se trouvent ici ~/.gnome2/nautilus-scripts/
Puis on le rend exécutable.
chmod u+x ~/.local/share/nautilus/scripts/conversion_vers_png.sh
Ensuite avec son éditeur préféré, on édite le fichier et on y ajoute une belle boucle:
#!/bin/sh
IFS='
'
for source in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
do
destination="${source%.*}.png"
convert $source $destination
done
IFS=' ' permet de prendre en charge les espaces dans les chemins et les noms de fichiers.
La variable $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS vient prendre le ou les chemins complets du ou des fichiers sélectionnés,
for source in charge tour à tour les valeurs de $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS dans la variable source, et exécute le code situé entre do et done à chaque fois.
destination="${file%.*}.png" permet de fabriquer la nouvelle extension du fichier de destination.
Maintenant que l'on a le chemin du fichier d'entrée dans $source et le chemin du fichier de sortie dans $destination on peut lancer la conversion :convert $source $destination
Voilà, le script est prêt, il est maintenant disponible en clic droit depuis Nautilus.
Intégration dans Dolphin et Konqueror
Pour dolphin et konqueror le même principe existe. On passe par des .desktop visibles dans le menu actions. Ils peuvent lancer une commande ou un script directement.
Pour cela il faut créer un .desktop dans le dossier: ~/.kde/share/kde4/services/ServiceMenus/
echo > ~/.kde/share/kde4/services/ServiceMenus/conversion_vers_png.desktop
Le contenu en sera un peu différent :
[Desktop Entry]
Encoding=UTF-8
ServiceTypes=KonquerorPopupMenu/Plugin,image/*
TryExec=convert
Type=Service
Action=convtoPNG;
TryExec=convert
Icon=image-gif
[Desktop Action convtoPNG]
Name=Conversion vers PNG
Icon=image-png
Exec=convert %f "$(echo %f | sed 's/\\.[^\\.]*$/.png/')"
sed 's/\\.[^\\.]*$/.png/' est un autre manière de remplacer l'extension
Il existe d'autres exemples de possibilités visibles dans le dossier: /usr/share/kde4/services/ServiceMenus . Ce dossier sert aussi pour partager les scripts entre tout les utilisateurs.
Conclusion
Voilà ce n'est pas bien compliqué à mettre en place et cela peut rendre de grands services, à chacun de les adapter à ses besoins.
Liens:
pour KDE(en): https://techbase.kde.org/Development/Tu ? vice_Menus
pour Nautilus(en): http://g-scripts.sourceforge.net/cat-executing.php
Cordialement,
L'équipe Debian Facile