0 Votes

Code source wiki de ScriptsPerso/NautilusZenity

Modifié par john le 2025/05/25 00:32

Masquer les derniers auteurs
john 1.1 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
john 2.1 12 ----
john 1.1 13
14 == Mettre en place un script contextuel ==
15
16 1. Créer le dossier si besoin :
john 3.1 17 {{code language="bash"}} mkdir -p ~/.local/share/nautilus/scripts
john 1.1 18 {{/code}}
19
20 2. Écrire ton script, par exemple `info.sh` :
john 3.1 21 {{code language="bash"}} #!/bin/bash
john 1.1 22 zenity --info --title="Info" --text="Vous avez cliqué sur : $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
23 {{/code}}
24
25 3. Le rendre exécutable :
john 3.1 26 {{code language="bash"}} chmod +x ~/.local/share/nautilus/scripts/info.sh
john 1.1 27 {{/code}}
28
29 4. Redémarrer Nautilus :
john 3.1 30 {{code language="bash"}} nautilus -q
john 1.1 31 {{/code}}
32
33 Après ça, tu verras un nouveau menu **Scripts** dans le clic droit sur un fichier ou un dossier.
34
john 2.1 35 ----
john 1.1 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
john 2.1 46 ----
john 1.1 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
john 2.1 61 ----
john 1.1 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
john 2.1 76 ----
john 1.1 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
john 2.1 91 ----
john 1.1 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
john 2.1 99 ----
john 1.1 100
101 == Pour aller plus loin ==
102
john 3.1 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)//
john 1.1 106
john 2.1 107 ----
john 1.1 108
109 == Liens internes ==
110
111 * [[Retour aux scripts personnels>>doc:Wiki Batcave John.TutosLinux.ScriptsPerso.WebHome]]
john 3.1 112 * [[Retour à l’accueil>>doc:Wiki Batcave John.WebHome]]