0 Votes

Code source wiki de Nautilus et Zenity

Modifié par john le 2026/09/20 20:29

Afficher les derniers auteurs
1 {{toc/}}
2
3 == Pourquoi intégrer ses scripts dans Nautilus ? ==
4
5 Nautilus, le gestionnaire de fichiers de GNOME, permet d'ajouter ses propres scripts au menu contextuel (clic droit).
6 En combinant cette fonctionnalité avec **Zenity**, on peut créer des interactions graphiques simples : afficher une information, demander une saisie, proposer un menu.
7
8 C'est une solution pratique pour déclencher des automatisations **sans ouvrir un terminal**.
9
10 ----
11
12 == Mettre en place un script contextuel ==
13
14 Créer le dossier si besoin :
15
16 {{code language="bash"}}
17 mkdir -p ~~/.local/share/nautilus/scripts
18 {{/code}}
19
20 Écrire le script, par exemple ##info.sh## :
21
22 {{code language="bash"}}
23 #!/bin/bash
24 zenity --info --title="Info" --text="Sélection : $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
25 {{/code}}
26
27 Le rendre exécutable :
28
29 {{code language="bash"}}
30 chmod +x ~~/.local/share/nautilus/scripts/info.sh
31 {{/code}}
32
33 Redémarrer Nautilus :
34
35 {{code language="bash"}}
36 nautilus -q
37 {{/code}}
38
39 Un menu **Scripts** apparaît alors dans le clic droit.
40
41 ----
42
43 == Variables disponibles ==
44
45 |=Variable|=Contenu
46 |##$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS##|Chemins complets des fichiers sélectionnés, un par ligne
47 |##$NAUTILUS_SCRIPT_SELECTED_URIS##|Les mêmes, sous forme d'URI
48 |##$NAUTILUS_SCRIPT_CURRENT_URI##|URI du dossier affiché
49
50 {{info}}
51 C'est la variable ##NAUTILUS_SCRIPT_SELECTED_FILE_PATHS## qui fait foi : les arguments (##$1##, ##$@##) ne sont pas toujours transmis. Elle contient un chemin par ligne, à lire avec une boucle ##while read##.
52 {{/info}}
53
54 ----
55
56 == Exemples ==
57
58 === 📁 Renommer le fichier sélectionné ===
59
60 {{code language="bash"}}
61 #!/bin/bash
62 fichier=$(head -n 1 <<< "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS")
63 [ -z "$fichier" ] && exit 0
64
65 nouveau=$(zenity --entry --title="Renommer" --text="Nouveau nom :" --entry-text="$(basename "$fichier")")
66 [ -z "$nouveau" ] && exit 0
67
68 if ! mv -n "$fichier" "$(dirname "$fichier")/$nouveau"; then
69 zenity --error --text="Renommage impossible"
70 fi
71 {{/code}}
72
73 === 🗜️ Compresser la sélection ===
74
75 {{code language="bash"}}
76 #!/bin/bash
77 cd "$(dirname "$(head -n 1 <<< "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS")")" || exit 1
78
79 while IFS= read -r fichier; do
80 [ -z "$fichier" ] && continue
81 nom=$(basename "$fichier")
82 tar -czf "$nom.tar.gz" "$nom"
83 done <<< "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
84
85 zenity --info --text="Compression terminée"
86 {{/code}}
87
88 === 🧠 Menu interactif ===
89
90 {{code language="bash"}}
91 #!/bin/bash
92 choix=$(zenity --list --title="Action" --column="Option" "Compresser" "Renommer")
93
94 case "$choix" in
95 "Compresser") ~~/.local/share/nautilus/scripts/compresser.sh ;;
96 "Renommer") ~~/.local/share/nautilus/scripts/renommer.sh ;;
97 esac
98 {{/code}}
99
100 ----
101
102 == Bonnes pratiques ==
103
104 * Tester le script dans un terminal avant de l'installer, en définissant la variable à la main
105 * Toujours entourer les chemins de guillemets : les noms contiennent souvent des espaces
106 * Prévoir un message d'erreur clair avec ##zenity --error##
107 * Sortir proprement si la sélection est vide ou si l'utilisateur annule
108 * Préférer ##mv -n## et ##cp -n## pour ne jamais écraser un fichier existant
109
110 ----
111
112 == Pour aller plus loin ==
113
114 * [[Manuel Zenity>>https://manpages.debian.org/zenity]]
115 * [[Scripts Nautilus (aide GNOME)>>https://help.gnome.org/users/nautilus/stable/scripts.html]]
116 * [[Zenity sur ArchWiki>>https://wiki.archlinux.org/title/Zenity]]
117
118 ----
119
120 == Liens internes ==
121
122 * [[Retour aux scripts perso>>doc:Wiki Batcave John.TutosLinux.ScriptsPerso.WebHome]]
123 * [[Retour à l’accueil>>doc:Wiki Batcave John.WebHome]]