0 Votes

Modifications pour le document Nautilus et Zenity

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

Depuis la version 5.1
modifié par john
sur 2026/09/20 20:29
Commentaire de modification : Il n'y a aucun commentaire pour cette version
À la version 4.1
modifié par john
sur 2026/09/20 20:05
Commentaire de modification : Il n'y a aucun commentaire pour cette version

Résumé

Détails

Propriétés de la Page
Contenu
... ... @@ -1,99 +1,90 @@
1 += Intégration de scripts Bash dans Nautilus avec Zenity =
2 +
1 1  {{toc/}}
2 2  
3 3  == Pourquoi intégrer ses scripts dans Nautilus ? ==
4 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 +Nautilus, le gestionnaire de fichiers de GNOME, permet d'ajouter ses propres scripts au menu contextuel (clic droit).
8 +En combinant cette fonctionnalité avec **Zenity**, on peut créer des interactions graphiques simples, comme afficher une info-bulle, demander une saisie utilisateur ou générer un menu interactif.
7 7  
8 -C'est une solution pratique pour déclencher des automatisations **sans ouvrir un terminal**.
10 +C'est une solution pratique pour déclencher des automatisations **sans avoir à ouvrir un terminal**.
9 9  
10 10  ----
11 11  
12 12  == Mettre en place un script contextuel ==
13 13  
14 -Créer le dossier si besoin :
16 +1. Créer le dossier si besoin :
17 +{{code language="bash"}} mkdir -p ~/.local/share/nautilus/scripts
18 + {{/code}}
15 15  
16 -{{code language="bash"}}
17 -mkdir -p ~~/.local/share/nautilus/scripts
18 -{{/code}}
20 +2. Écrire ton script, par exemple `info.sh` :
21 +{{code language="bash"}} #!/bin/bash
22 + zenity --info --title="Info" --text="Vous avez cliqué sur : $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
23 + {{/code}}
19 19  
20 -Écrire le script, par exemple ##info.sh## :
25 +3. Le rendre exécutable :
26 +{{code language="bash"}} chmod +x ~/.local/share/nautilus/scripts/info.sh
27 + {{/code}}
21 21  
22 -{{code language="bash"}}
23 -#!/bin/bash
24 -zenity --info --title="Info" --text="Sélection : $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
25 -{{/code}}
29 +4. Redémarrer Nautilus :
30 +{{code language="bash"}} nautilus -q
31 + {{/code}}
26 26  
27 -Le rendre exécutable :
33 +Après ça, tu verras un nouveau menu **Scripts** dans le clic droit sur un fichier ou un dossier.
28 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 41  ----
42 42  
43 -== Variables disponibles ==
37 +== Variables disponibles dans un script Nautilus ==
44 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é
39 +Tu peux utiliser ces variables fournies automatiquement :
49 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}}
41 +|= Variable |= Description |
42 +| `$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS` | Chemins complets des fichiers sélectionnés |
43 +| `$NAUTILUS_SCRIPT_SELECTED_URIS` | Liste des URIs sélectionnés |
44 +| `$NAUTILUS_SCRIPT_CURRENT_URI` | URI du dossier actuel |
53 53  
54 54  ----
55 55  
56 -== Exemples ==
48 +== Exemples utiles ==
57 57  
58 -=== 📁 Renommer le fichier sélectionné ===
50 +=== 📁 Renommer un fichier sélectionné ===
59 59  
52 +Demande à l’utilisateur un nouveau nom :
53 +
60 60  {{code language="bash"}}
61 61  #!/bin/bash
62 -fichier=$(head -n 1 <<< "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS")
63 -[ -z "$fichier" ] && exit 0
56 +fichier=$(basename "$1")
57 +nouveau_nom=$(zenity --entry --title="Renommer" --text="Nouveau nom :" --entry-text="$fichier")
58 +[ -n "$nouveau_nom" ] && mv "$1" "$(dirname "$1")/$nouveau_nom"
59 +{{/code}}
64 64  
65 -nouveau=$(zenity --entry --title="Renommer" --text="Nouveau nom :" --entry-text="$(basename "$fichier")")
66 -[ -z "$nouveau" ] && exit 0
61 +----
67 67  
68 -if ! mv -n "$fichier" "$(dirname "$fichier")/$nouveau"; then
69 - zenity --error --text="Renommage impossible"
70 -fi
71 -{{/code}}
63 +=== 🗜️ Compresser un fichier ou un dossier ===
72 72  
73 -=== 🗜️ Compresser la sélection ===
65 +Crée une archive `.tar.gz` à partir des éléments sélectionnés :
74 74  
75 75  {{code language="bash"}}
76 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
69 +for fichier in "$@"; do
81 81   nom=$(basename "$fichier")
82 - tar -czf "$nom.tar.gz" "$nom"
83 -done <<< "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
84 -
71 + tar -czf "$nom.tar.gz" "$fichier"
72 +done
85 85  zenity --info --text="Compression terminée"
86 86  {{/code}}
87 87  
88 -=== 🧠 Menu interactif ===
76 +----
89 89  
78 +=== 🧠 Menu interactif personnalisé ===
79 +
80 +Propose à l'utilisateur une action à choisir :
81 +
90 90  {{code language="bash"}}
91 -#!/bin/bash
92 -choix=$(zenity --list --title="Action" --column="Option" "Compresser" "Renommer")
83 +choix=$(zenity --list --title="Action" --column="Option" "Compresser" "Renommer" "Annuler")
93 93  
94 -case "$choix" in
95 - "Compresser") ~~/.local/share/nautilus/scripts/compresser.sh ;;
96 - "Renommer") ~~/.local/share/nautilus/scripts/renommer.sh ;;
85 +case $choix in
86 + "Compresser") ... ;;
87 + "Renommer") ... ;;
97 97  esac
98 98  {{/code}}
99 99  
... ... @@ -101,23 +101,21 @@
101 101  
102 102  == Bonnes pratiques ==
103 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
95 +* Teste toujours tes scripts avant de les rendre publics
96 +* Prévois des messages d’erreur clairs via Zenity (`zenity --error`)--
97 +* Utilise les noms de fichiers entre guillemets (`"$fichier"`) pour gérer les espaces
109 109  
110 110  ----
111 111  
112 112  == Pour aller plus loin ==
113 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]]
103 +* Manuel Zenity https~://manpages.debian.org/zenity)//
104 +* Scripts Nautilus sur GNOME Help https~://help.gnome.org/users/nautilus/stable/scripts.html)//
105 +* Créer des interfaces Bash GUI https~://wiki.archlinux.org/title/Zenity)//
117 117  
118 118  ----
119 119  
120 120  == Liens internes ==
121 121  
122 -* [[Retour aux scripts perso>>doc:Wiki Batcave John.TutosLinux.ScriptsPerso.WebHome]]
111 +* [[Retour aux scripts personnels>>doc:Wiki Batcave John.TutosLinux.ScriptsPerso.WebHome]]
123 123  * [[Retour à l’accueil>>doc:Wiki Batcave John.WebHome]]