Actions personnalisées dans Nautilus
Sur mon ordinateur, j'utilise le système Archlinux avec GNOME. En bon informaticien feignant, j'ai automatisé quelques actions répétitives. Par exemple, lorsque je veux partager une photo prise avec mon téléphone, je veux
- réduire sa taille à max 1000px
- enlever les métadata
- sauvegarder le résultat dans
/tmp
Dans Nautilus, le gestionnaire de défaut de GNOME, il est assez facile de créer de nouvelles actions contextuelles, il suffit de mettre un script exécutable dans le dossier ~/.local/share/nautilus/scripts/
.
Dans mon exemple ci-dessus, mon script utilisant ffmpeg ressemble à ceci :
#!/bin/bash
# scale down to max 1000px and remove EXIF data
PRE=''
if [ `pwd` = "/tmp" ]; then
# if already in /tmp, add prefix to keep original file
PRE='copy-'
fi
for FILE_PATH in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS; do
FILENAME=${FILE_PATH##*/}
convert $FILE_PATH -strip -resize '1000x1000>' /tmp/$PRE$FILENAME
done
Je le sauve dans un fichier Resize to 1000px
dans mon dossier en n'oubliant pas de le rendre exécutable et on peut y accéder via un clic droit :

Le wiki de Ubuntu donne un peu d'explications et des exemples de code plus avancés.
NautilusScriptsHowto | Ubuntu Community Help Wiki
Si vous essayez d'écrire votre propre script, vous rencontrerez surement le besoin de débugger votre script. Pour pouvoir afficher les erreurs ou messages de log, il suffit de lancer Nautilus en ligne de commande et de truffer votre code des habituels echo "coucou123"
.
$ nautilus --no-desktop
** Message: 20:11:08.058: Connecting to org.freedesktop.Tracker3.Miner.Files
coucou123