0 Votes

Code source wiki de ScriptsPerso/NautilusZenity

Version 2.2 par john le 2025/05/24 23:09

Afficher les derniers auteurs
1 = Intégration de scripts Bash dans Nautilus avec Zenity =
2
3 {{toc/}}
4
5 == Pourquoi intégrer ses scripts dans Nautilus ? ==
6
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.
9
10 C'est une solution pratique pour déclencher des automatisations **sans avoir à ouvrir un terminal**.
11
12 -----
13
14 == Mettre en place un script contextuel ==
15
16 1. Créer le dossier si besoin :
17 {{code language="bash"}} mkdir -p ~/.local/share/nautilus/scripts
18 {{/code}}
19
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}}
24
25 3. Le rendre exécutable :
26 {{code language="bash"}} chmod +x ~/.local/share/nautilus/scripts/info.sh
27 {{/code}}
28
29 4. Redémarrer Nautilus :
30 {{code language="bash"}} nautilus -q
31 {{/code}}
32
33 Après ça, tu verras un nouveau menu **Scripts** dans le clic droit sur un fichier ou un dossier.
34
35 -----
36
37 == Variables disponibles dans un script Nautilus ==
38
39 Tu peux utiliser ces variables fournies automatiquement :
40
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 |
45
46 -----
47
48 == Exemples utiles ==
49
50 === 📁 Renommer un fichier sélectionné ===
51
52 Demande à l’utilisateur un nouveau nom :
53
54 {{code language="bash"}}
55 #!/bin/bash
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}}
60
61 -----
62
63 === 🗜️ Compresser un fichier ou un dossier ===
64
65 Crée une archive `.tar.gz` à partir des éléments sélectionnés :
66
67 {{code language="bash"}}
68 #!/bin/bash
69 for fichier in "$@"; do
70 nom=$(basename "$fichier")
71 tar -czf "$nom.tar.gz" "$fichier"
72 done
73 zenity --info --text="Compression terminée"
74 {{/code}}
75
76 -----
77
78 === 🧠 Menu interactif personnalisé ===
79
80 Propose à l'utilisateur une action à choisir :
81
82 {{code language="bash"}}
83 choix=$(zenity --list --title="Action" --column="Option" "Compresser" "Renommer" "Annuler")
84
85 case $choix in
86 "Compresser") ... ;;
87 "Renommer") ... ;;
88 esac
89 {{/code}}
90
91 -----
92
93 == Bonnes pratiques ==
94
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
98
99 -----
100
101 == Pour aller plus loin ==
102
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)
106
107 -----
108
109 == Liens internes ==
110
111 * [[Retour aux scripts personnels>>doc:Wiki Batcave John.TutosLinux.ScriptsPerso.WebHome]]