Modifications pour le document Nautilus et Zenity
Modifié par john le 2026/09/20 20:29
Résumé
-
Propriétés de la Page (2 modifications, 0 ajouts, 0 suppressions)
Détails
- Propriétés de la Page
-
- Titre
-
... ... @@ -1,1 +1,1 @@ 1 -Nautilus etZenity1 +NautilusZenity - 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 - Lerendre 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 lefichier 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 - ===🗜️Compresserlasé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"in95 - "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(aideGNOME)>>https://help.gnome.org/users/nautilus/stable/scripts.html]]116 -* [[ZenitysurArchWiki>>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]]