mart-e

La vie, Linux, la tartiflette...

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

  1. réduire sa taille à max 1000px
  2. enlever les métadata
  3. 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

Réagissez à cet article.