Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
nautilus_scripts [Le 30/05/2026, 21:11] – [Image] arverne73nautilus_scripts [Le 01/06/2026, 03:15] (Version actuelle) – mise en forme / syntaxe | suppr obsolete (un peu, encore du boulot sûrement) | file, pas code ! krodelabestiole
Ligne 1: Ligne 1:
 {{tag>Jammy nautilus}} {{tag>Jammy nautilus}}
  
----- +====== Les scripts pour GNOME Fichiers ======
- +
-====== Les scripts pour Nautilus ======+
  
-Le gestionnaire de fichiers Nautilus permet d'exécuter des [[tutoriel:script_shell|scripts]], sous la forme de fichiers textes.+Le gestionnaire de fichiers [[:nautilus|GNOME Fichiers]] permet d'exécuter des [[tutoriel:script_shell|scripts]], sous la forme de fichiers textes.\\
 Les scripts sont de "petits" programmes permettant une multitude de fonctionnalités. Les scripts sont de "petits" programmes permettant une multitude de fonctionnalités.
  
-Les scripts suivants et d'autres trouvés sur le Web peuvent être copiés dans le répertoire de scripts de Nautilus. Certains s'exécutent avec les [[:sudo|privilèges utilisateur]] ce qui signifie que vous pouvez endommager gravement votre système. Agissez donc avec beaucoup de prudence quand le script vous demande le mot de passe pour modifier le système. +Les scripts suivants et d'autres trouvés sur le Web peuvent être copiés dans le répertoire de scripts de Nautilus. Certains s'exécutent avec les [[:permissions administrateur]] ce qui signifie que vous pouvez endommager gravement votre système. Agissez donc avec beaucoup de prudence quand le script vous demande le mot de passe pour modifier le système.\\ 
-Beaucoup de scripts sont déjà présents dans les [[:depots|dépôts]] et peuvent être facilement installés par votre [[:gestionnaire_de_paquets|gestionnaire de paquets]]. Reportez-vous à la page de l'[[:nautilus_utilisation_avancee|utilisation avancée de nautilus]] pour voir la liste complète de ces scripts.+Beaucoup de scripts sont déjà présents dans les [[:dépôts]] et peuvent être facilement installés par votre [[:gestionnaire de paquets]]. Reportez-vous à la page de l'[[:nautilus_utilisation_avancee|utilisation avancée de GNOME Fichiers]] pour voir la liste complète de ces scripts.
  
 ===== Installation ===== ===== Installation =====
-Pour commencer, il vous faudra [[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>nautilus-scripts-manager]]**. Ce paquet gère le dossier de scripts de Nautilus se trouvant dans **~/.local/share/nautilus/scripts/** pour l'environnement de bureau GNOME. Vous pouvez également mettre des scripts valables pour tous les utilisateurs dans **/usr/share/nautilus-script**. \\ + 
-(Le répertoire **.local** est caché dans votre dossier personnel. Pour y accéder il faut préalablement afficher les fichiers cachés. Dans la barre des menus → Affichage → Afficher les fichiers cachés ou faites Ctrl + h). +Pour commencer, il vous faudra [[:deb#installer_un_paquet_deb|installer le paquet]] ''[[apt>nautilus-scripts-manager]]''. Ce paquet gère le dossier de scripts de GNOME Fichiers se trouvant dans ''~/.local/share/nautilus/scripts/'' pour l'environnement de bureau GNOME. Vous pouvez également mettre des scripts valables pour tous les utilisateurs dans ''/usr/share/nautilus-script''.\\ 
-Quand des scripts sont présents dans le dossier de scripts, il s'ouvre par clic-droit → Scripts → Ouvrir le dossier de scripts.+(Le répertoire ''.local'' est caché dans votre dossier personnel. Pour y accéder il faut préalablement afficher les fichiers cachés. Dans la barre des menus → //Affichage// → //Afficher les fichiers cachés//, ou faites ''Ctrl''+''H'').\\ 
 +Quand des scripts sont présents dans le dossier de scripts, il s'ouvre par clic droit → //Scripts// → //Ouvrir le dossier de scripts//.\\
 Tant qu'il n'y a pas de scripts dedans le raccourci n'est pas disponible. Tant qu'il n'y a pas de scripts dedans le raccourci n'est pas disponible.
  
-Placez-y vos scripts et [[:permissions|rendez-les exécutables]] en faisant un clic droit sur le script en question → Propriétés → onglet Permissions → et cocher la case "Autoriser l’exécution du fichier comme un programme". Vous devriez nommer ces fichiers de façon à ce qu'ils évoquent quelque chose pour vous car c'est sous leurs noms qu'ils apparaîtront dans vos menus Nautilus. De plus vous n'avez pas besoin de rajouter l'extension **.sh** de scripts shell. Il est également possible de créer des dossiers pour mieux organiser les scripts. +Placez-y vos scripts et [[:permissions|rendez-les exécutables]] en faisant un clic droit sur le script en question → //Propriétés// → onglet //Permissions// → et cocher la case //Autoriser l’exécution du fichier comme un programme//. Vous devriez nommer ces fichiers de façon à ce qu'ils évoquent quelque chose pour vous car c'est sous leurs noms qu'ils apparaîtront dans vos menus GNOME Fichiers. De plus vous n'avez pas besoin de rajouter l'extension ''.sh'' de scripts [[:shell]]. Il est également possible de créer des répertoires pour mieux organiser les scripts.\\ 
- Vos scripts seront alors disponibles dans toutes les fenêtres Nautilus dans //Fichier // → Scripts, ainsi que dans le menu contextuel (clic droit). Vous ne verrez pas le menu //Fichier // tant que vous n'aurez pas ajouté votre premier script dans **~/.local/share/nautilus/scripts/**.+Vos scripts seront alors disponibles dans toutes les fenêtres GNOME Fichiers dans //Fichier // → //Scripts//, ainsi que dans le menu contextuel (clic droit). Vous ne verrez pas le menu //Fichier // tant que vous n'aurez pas ajouté votre premier script dans ''~/.local/share/nautilus/scripts/''.
  
 Le chemin des scripts pour : Le chemin des scripts pour :
-  * Caja (Mate) est : ''~/.config/caja/scripts'' +  * Caja (MATE) est : ''~/.config/caja/scripts'' 
-  * Nautilus (Gnome/Unity) est : ''~/.local/share/nautilus/scripts''+  * GNOME Fichiers (GNOME/Unity) est : ''~/.local/share/nautilus/scripts''
   * Némo (Cinnamon) est : ''~/.local/share/nemo/scripts/''   * Némo (Cinnamon) est : ''~/.local/share/nemo/scripts/''
  
-Voir aussi: +Voir aussi : 
-  * [[#Les pièges à éviter]], +  * [[#Les pièges à éviter]] 
-  * [[#Exemples]].+  * [[#Exemples]]
  
 ===== Sélection de scripts ===== ===== Sélection de scripts =====
  
-Vous avez déjà des scripts Nautilus sur la page [[:scripts utiles]]+Vous avez déjà des scripts GNOME Fichiers sur la page [[:scripts utiles]].
- +
-Le script [[https://www.linux-apps.com/content/show.php/Script+Installer?content=67612|Script Installer]] permet d'installer automatiquement les scripts Nautilus.(dernière maj en 2008, il doit être obsolète ?).+
  
 ==== Les scripts dans les dépôts Canonical ==== ==== Les scripts dans les dépôts Canonical ====
Ligne 62: Ligne 59:
 ==== Image ==== ==== Image ====
  
-  * [[http://benn.org/software/nautilus-resize-image/|Retailler image]] (Resize-Image) : Script datant de 2009 mais toujours fonctionnel et très efficace. Descriptif d'installation à lire mais qui doit être un peu aménagé : le répertoire proposé pour l'enregistrement du script ~/.gnome2/ n'existe plus mais peut être remplacé par n'importe quel répertoire personnel.  +  * [[http://benn.org/software/nautilus-resize-image/|Retailler image]] (Resize-Image) : Script datant de 2009 mais toujours fonctionnel et très efficace. Descriptif d'installation à lire mais qui doit être un peu aménagé : le répertoire proposé pour l'enregistrement du script ''~/.gnome2/'' n'existe plus mais peut être remplacé par n'importe quel [[:arborescence#répertoire personnel]].\\ 
-Vous pouvez aussi ajouter d'autres tailles que celles prévues dans le script (800 et 1024) : il suffit de le modifier en ajoutant les tailles qui vous intéressent à la ligne **SIZES**.+Vous pouvez aussi ajouter d'autres tailles que celles prévues dans le script (800 et 1024) : il suffit de le modifier en ajoutant les tailles qui vous intéressent à la ligne ''SIZES''.
  
 Pour chaque taille d'image, il faut créer un lien vers ce script. Pour chaque taille d'image, il faut créer un lien vers ce script.
  
-Ouvrir un terminal, aller dans le répertoire ~/.local/share/nautilus/scripts/ (dans le terminal, taper ''cd+espace'' puis tirer ce dossier scripts sur le terminal puis la touche 'Entrée'). +Ouvrir un terminal, aller dans le répertoire ''~/.local/share/nautilus/scripts/'' (dans le terminal, taper '''cd''+''espace'' puis tirer ce répertoire ''scripts'' sur le terminal puis la touche ''Entrée'').\\ 
-Taper alors, par exemple, la commande suivante pour la taille 600 pixels : <code>ln -s ~/chemin d'enregistrement script/ResizeImage.sh "Retailler image (600px)"</code> +Entrer alors, par exemple, la commande suivante pour la taille 600 pixels : 
-(Comme pour la commande précédente, après ''ln -s '', il suffit de tirer le script //ResizeImage// sur le terminal pour que le chemin s'inscrive automatiquement).+<code>ln -s ~/chemin d'enregistrement script/ResizeImage.sh "Retailler image (600px)"</code> 
 +(Comme pour la commande précédente, après ''ln -s '', il suffit de tirer le script ''ResizeImage'' sur le terminal pour que le chemin s'inscrive automatiquement).
  
-Faire de même pour toutes les autres tailles prévues dans le script. +Faire de même pour toutes les autres tailles prévues dans le script.\\ 
-Bien ajouter .sh au nom du script pour qu'il apparaisse et s'exécute.+Bien ajouter ''.sh'' au nom du script pour qu'il apparaisse et s'exécute.
  
-  * Ajouter "Redimensionner les images..." dans le menu contextuel des images. [[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt>nautilus-image-converter]]** puis redémarrer la session.+  * Ajouter "Redimensionner les images..." dans le menu contextuel des images. [[:deb#installer_un_paquet_deb|Installez le paquet]] ''[[apt>nautilus-image-converter]]'' puis redémarrer la [[:session utilisateur|session]].
  
 ==== Audio ==== ==== Audio ====
Ligne 80: Ligne 78:
   * [[https://www.linux-apps.com/content/show.php/Enqueue+in+Audacious?content=80429|Enqueue in Audacious]]   * [[https://www.linux-apps.com/content/show.php/Enqueue+in+Audacious?content=80429|Enqueue in Audacious]]
   * [[https://www.linux-apps.com/content/show.php/Extract+Audio?content=83072|Extraire l'audio de tout fichier multimedia]].   * [[https://www.linux-apps.com/content/show.php/Extract+Audio?content=83072|Extraire l'audio de tout fichier multimedia]].
-  * [[timidity#script pour convertir un fichier midi vers un fichier audio|Convertir un fichier MIDI vers un fichier audio]] (nécessite [[timidity|TiMiDiTy]])+  * [[:timidity#script pour convertir un fichier MIDI vers un fichier audio|Convertir un fichier MIDI vers un fichier audio]] (requiert [[:TiMiDiTy]])
  
 ==== Gestion des fichiers ==== ==== Gestion des fichiers ====
Ligne 115: Ligne 113:
  
 ===== Créer un script ===== ===== Créer un script =====
 +
 Il vous suffit d'un [[editeur_de_texte|éditeur de texte]] pour écrire votre script. Il vous suffit d'un [[editeur_de_texte|éditeur de texte]] pour écrire votre script.
  
Ligne 132: Ligne 131:
  
 Il existe des outils d'analyse de scripts pour savoir s'il respecte les bonnes pratiques. Pour le langage bash il existe Il existe des outils d'analyse de scripts pour savoir s'il respecte les bonnes pratiques. Pour le langage bash il existe
-**[[apt>shellcheck]]**.+''[[apt>shellcheck]]''.
  
 ===== Les pièges à éviter ===== ===== Les pièges à éviter =====
Ligne 145: Ligne 144:
  
 Il **faut donc proscrire** d'utiliser des scripts du genre : Il **faut donc proscrire** d'utiliser des scripts du genre :
- +<file>
-<code bash>+
 for arg for arg
 do do
Ligne 158: Ligne 156:
   do_something "$arg"   do_something "$arg"
 done done
-</code>+</file>
  
 **Nautilus** fournit une variable ''$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS'', qui contient la liste des chemins complets des fichiers sélectionnés, séparés par '\n' (retour à la ligne). **Nautilus** fournit une variable ''$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS'', qui contient la liste des chemins complets des fichiers sélectionnés, séparés par '\n' (retour à la ligne).
 C'est donc cette variable qu'il faut utiliser. Par exemple : C'est donc cette variable qu'il faut utiliser. Par exemple :
-<code bash>+<file>
 #!/bin/bash #!/bin/bash
 function afficherFichier () {  function afficherFichier () { 
Ligne 170: Ligne 168:
 IFS=$'\n' # on limite le IFS aux sauts de ligne IFS=$'\n' # on limite le IFS aux sauts de ligne
 afficherFichier "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" afficherFichier "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
-</code>+</file>
  
 ==== Itérer sur les fichiers ==== ==== Itérer sur les fichiers ====
 +
 Le problème, c'est que des fichiers peuvent contenir des espaces, et aussi des \n (un '\' suivi d'un 'n'), et que certaines solutions ne sont pas correctes à cause de ces cas particuliers. Le problème, c'est que des fichiers peuvent contenir des espaces, et aussi des \n (un '\' suivi d'un 'n'), et que certaines solutions ne sont pas correctes à cause de ces cas particuliers.
  
 Par exemple : Par exemple :
  
-<code bash>+<file>
 for arg in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS for arg in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
 do do
   do_something "$arg"   do_something "$arg"
 done done
-</code>+</file>
  
 **n'est pas correct sans les guillemets aux variables**, car si les chemins sont '/tmp/a b/c' et '/tmp/d e', la boucle fera 4 itérations : '/tmp/a', 'b/c', '/tmp/d' et 'e'. **n'est pas correct sans les guillemets aux variables**, car si les chemins sont '/tmp/a b/c' et '/tmp/d e', la boucle fera 4 itérations : '/tmp/a', 'b/c', '/tmp/d' et 'e'.
  
 La même solution d'une autre manière : La même solution d'une autre manière :
-<code bash>+<file>
 printf %s "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | printf %s "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" |
 while read -r arg while read -r arg
Ligne 193: Ligne 192:
   do_something "$arg"   do_something "$arg"
 done done
-</code>+</file>
  
 Il ne faut pas utiliser **echo** (en **sh**, il ne fonctionnerait pas sur un fichier contenant un '\' suivi d'un 'n'), et il faut bien passer l'argument **-r** à **read** (même raison). Il ne faut pas utiliser **echo** (en **sh**, il ne fonctionnerait pas sur un fichier contenant un '\' suivi d'un 'n'), et il faut bien passer l'argument **-r** à **read** (même raison).
 Une seconde solution est de changer l'[[wp>Input_Field_Separators|IFS]] : Une seconde solution est de changer l'[[wp>Input_Field_Separators|IFS]] :
  
-<code bash>+<file>
 IFS=' IFS='
 ' '
Ligne 214: Ligne 213:
 ' '
 do_something $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS do_something $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
-</code>+</file>
  
 Si vous respectez ceci, votre script fonctionnera aussi bien en **/bin/bash** qu'en **/bin/sh** (du moins pour cette partie) et pour tous les fichiers, mêmes les cas particuliers. Si vous respectez ceci, votre script fonctionnera aussi bien en **/bin/bash** qu'en **/bin/sh** (du moins pour cette partie) et pour tous les fichiers, mêmes les cas particuliers.
Ligne 221: Ligne 220:
 par exemple pour une opération sur des fichiers mp3 : par exemple pour une opération sur des fichiers mp3 :
  
-<code bash>+<file>
 #!/bin/bash #!/bin/bash
 IFS=' IFS='
Ligne 230: Ligne 229:
  find "$arg" -depth -iname "*.mp3" -exec votre_commande {} \;  find "$arg" -depth -iname "*.mp3" -exec votre_commande {} \;
 done done
-</code>+</file>
  
-Le *.mp3 va prendre en compte les fichier mp3 contenus dans votre sélection et le {} remplace le nom de fichier dans votre commande à appliquer sur les mp3.+Le ''.mp3'' va prendre en compte les fichier MP3 contenus dans votre sélection et le {} remplace le nom de fichier dans votre commande à appliquer sur les mp3.
  
 ===== Exemples ===== ===== Exemples =====
  
 ==== Supprimer les fichiers de sauvegarde de Gedit ==== ==== Supprimer les fichiers de sauvegarde de Gedit ====
 +
 Gedit copie chaque fichier avant la sauvegarde sous le nom « $fichier~ ». Il suffira d'appliquer le script d'un //clic droit -> Scripts -> rm-backups.sh// : Gedit copie chaque fichier avant la sauvegarde sous le nom « $fichier~ ». Il suffira d'appliquer le script d'un //clic droit -> Scripts -> rm-backups.sh// :
  
-<code bash>+<file>
 #! /bin/bash #! /bin/bash
  
 rm ./*~ rm ./*~
 zenity --info --text="Fichiers de backup *~ supprimés :)" zenity --info --text="Fichiers de backup *~ supprimés :)"
-</code>+</file>
  
 <note tip> On peut désactiver la création de fichier de sauvegarde par Gedit en décochant la case "Créer une copie de sauvegarde des fichiers avant l’enregistrement" dans **Édition -> Préférences -> Éditeur**.</note> <note tip> On peut désactiver la création de fichier de sauvegarde par Gedit en décochant la case "Créer une copie de sauvegarde des fichiers avant l’enregistrement" dans **Édition -> Préférences -> Éditeur**.</note>
Ligne 251: Ligne 251:
  
 === Éditer un fichier avec VIM avec les privilèges ROOT === === Éditer un fichier avec VIM avec les privilèges ROOT ===
 +
 <note warning>**Extrêmement risqué, ne jouez pas avec**</note> <note warning>**Extrêmement risqué, ne jouez pas avec**</note>
-<code bash>+<file>
 #!/bin/bash #!/bin/bash
 # C'est sérieux il ne faut pas jouer avec les droits root # C'est sérieux il ne faut pas jouer avec les droits root
 notify-send "si vous ne savez pas ce que vous faites, fermez la fenêtre" notify-send "si vous ne savez pas ce que vous faites, fermez la fenêtre"
 gnome-terminal -- pkexec --user root vim "$(realpath "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS")" gnome-terminal -- pkexec --user root vim "$(realpath "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS")"
-</code>+</file>
  
 ==== Lire les fichiers du répertoire avec Rhythmbox ==== ==== Lire les fichiers du répertoire avec Rhythmbox ====
 +
 Permet d'envoyer tous les fichiers du répertoire dans la liste de lecture de [[:Rhythmbox]] : Permet d'envoyer tous les fichiers du répertoire dans la liste de lecture de [[:Rhythmbox]] :
  
-<code bash>+<file>
 #!/bin/sh #!/bin/sh
  
Ligne 295: Ligne 297:
  
 rhythmbox "$dir" rhythmbox "$dir"
-</code>+</file>
  
 ==== Envoyer par mail des images compressées petites avec Thunderbird ==== ==== Envoyer par mail des images compressées petites avec Thunderbird ====
  
-<code bash>+<file>
 #!/bin/sh #!/bin/sh
 IFS=' IFS='
Ligne 318: Ligne 320:
  
 exit 0 exit 0
-</code>+</file>
  
 ==== Afficher la somme de contrôle SHA256 dans Ubuntu 24.04==== ==== Afficher la somme de contrôle SHA256 dans Ubuntu 24.04====
  
-<code bash>+<file>
 #!/bin/sh #!/bin/sh
 function afficherHashes () {  function afficherHashes () { 
Ligne 330: Ligne 332:
 IFS=$'\n' # on limite l'IFS à "Retour à la ligne" seulement  IFS=$'\n' # on limite l'IFS à "Retour à la ligne" seulement 
 afficherHashes "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" afficherHashes "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
-</code>+</file>
  
  
Ligne 338: Ligne 340:
   * [[https://www.linux-apps.com/browse/cat/126/order/latest|Scripts pour Nautilus sur gtk-apps.org]]   * [[https://www.linux-apps.com/browse/cat/126/order/latest|Scripts pour Nautilus sur gtk-apps.org]]
   * [[http://g-scripts.sourceforge.net/|Site officiel de nautilus script, avec quelques scripts]]   * [[http://g-scripts.sourceforge.net/|Site officiel de nautilus script, avec quelques scripts]]
----- 
  
-//Contributeurs : [[utilisateurs:FredB]], [[utilisateurs:l_africain|L'Africain]], [[utilisateurs:Fabien26]], (1<sup>ère</sup> actualisation) [[:utilisateurs:ner0lph|Floriang]], (2<sup>ème</sup> actualisation) [[:utilisateurs:Amiralgaby|Amiralgaby]].//+---- 
 +//[[:Contributeurs]] : [[:utilisateurs:FredB]], [[:utilisateurs:L'Africain]], [[:utilisateurs:Fabien26]], (1<sup>ère</sup> actualisation) [[:utilisateurs:ner0lph|Floriang]], (2<sup>ème</sup> actualisation) [[:utilisateurs:Amiralgaby]].//