Interface et Session graphique

GNOME - Nautilus Scripts : Exécuter des scripts sur des fichiers ou dossiers

Table des matières

Introduction



Les scripts Nautilus permettent d'ajouter des fonctionnalités personnalisées au gestionnaire de fichiers Nautilus dans l'environnement GNOME. Ils offrent un moyen simple et puissant d'automatiser des tâches courantes sur les fichiers et dossiers.
La seule limite de ces scripts est votre imagination.

Emplacement des scripts



Les scripts Nautilus sont stockés dans le répertoire ~/.local/share/nautilus/scripts/.
Nautilus détecte automatiquement tous les fichiers exécutables dans ce dossier et les affiche dans le menu contextuel "Scripts".

Si on n'a pas encore créé de scripts sur notre système, on pourra créer l'arborescence :
Code BASH :
mkdir -p ~/.local/share/nautilus/scripts/


D'ailleurs, une fois le dossier créé, quand on est dedans, on a une indication sur l'utilité :

gnome-nautilus-script-folder



On pourra y placer des scripts dans ce dossier, qui s'exécuteront sur le fichier ou dossier sélectionné.

Exemples



Dans ces démos, on va utiliser des fenêtres générées avec Zenity. Il devra être installé.

Script simple : Interagir avec le fichier sélectionné



On va commencer par écrire un script tout simple, qui va afficher une pop-up avec le nom du fichier sur lequel on a demandé l'exécution du script.

On va partir sur un script BASH. Le nom du fichier sera celui affiché dans le menu script :
Code BASH :
vim "~/.local/share/nautilus/scripts/Demo Fichier"


Je vais y placer ceci dedans :
Code BASH :
#! /bin/bash
zenity --info --title "Fichier sélectionné" --text="$1"


Bien penser à mettre les droits d'exécution sur le script :
Code BASH :
chmod +x "~/.local/share/nautilus/scripts/Demo Fichier"


Lorsqu'on fait un clic droit sur le fichier, on a le menu Script qui une fois déroulé on a la liste de nos scripts créés :

gnome-nautilus-script-menu1 gnome-nautilus-script-menu2



Une fois le script lancé, la pop-up indique bien le fichier sur lequel on a demandé l'exécution du script :

gnome-nautilus-script-file-selected



Grâce à ce script, on a déjà une base de départ pour développer ce qu'on a envie.

Script perso : Convertir une image en 112px 56px et 28 px



Sur ma chaîne Twitch, pour les récompenses, les illustrations sont des images en 3 résolutions différentes : 112px, 56px et 26px.

J'ai donc créé un script :
Code BASH :
vim "~/.local/share/nautilus/scripts/Convertir 112 56 28"


Voici le contenu du script :
Code BASH :
#! /bin/bash
FICHIER="$1"
FICNOM=${FICHIER:0:-4}
FICEXT=${FICHIER: -4}
convert "$FICHIER" -resize "112" "$FICNOM-112$FICEXT"
convert "$FICHIER" -resize "56" "$FICNOM-56$FICEXT"
convert "$FICHIER" -resize "28" "$FICNOM-28$FICEXT"


Une fois le script rendu exécutable :
Code BASH :
chmod +x "~/.local/share/nautilus/scripts/Convertir 112 56 28"


J'exécute le script rapidement :

gnome-nautilus-script-democonv1



Mes images sont générées instantanément :

gnome-nautilus-script-democonv2



Variables utilisables



Plusieurs variables sont utilisables dans les scripts.

Voici un script qui peut aider à voir les variables retournées :
Code BASH :
vim "~/.local/share/nautilus/scripts/Demo variables"


Contenu :
Code BASH :
#! /bin/bash
zenity --info --title "Liste des variables" --text="Chemin '\$PWD' : $PWD \n\nArguments '\$\*' : $* \n\nFichier 1 '\$1' : $1  \n\nNAUTILUS_SCRIPT_SELECTED_FILE_PATHS : $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS \n\n NAUTILUS_SCRIPT_SELECTED_URIS : $NAUTILUS_SCRIPT_SELECTED_URIS \n\n NAUTILUS_SCRIPT_CURRENT_URI : $NAUTILUS_SCRIPT_CURRENT_URI"


Si je sélectionne dans mon dossier personnel les fichiers 1.txt, 2.txt et 3 espace.txt, voici le retour proposé dans la pop-up :

Code TEXT :
Chemin '$PWD' : /home/adrien 
Arguments '$*' : 1.txt 2.txt 3 espace.txt 
Fichier 1 '$1' : 1.txt  
NAUTILUS_SCRIPT_SELECTED_FILE_PATHS : /home/adrien/1.txt
/home/adrien/2.txt
/home/adrien/3 espace.txt
 
 NAUTILUS_SCRIPT_SELECTED_URIS : file:///home/adrien/1.txt
file:///home/adrien/2.txt
file:///home/adrien/3%20espace.txt
 
 NAUTILUS_SCRIPT_CURRENT_URI : file:///home/adrien


Attention à l'utilisation des variables s'il y a plusieurs fichiers et des espaces dans les noms, si on veut boucler avec un for en BASH.
Pensez à faire des tests !
Cette page a été vue 480 fois