Apportez votre aide…
Ceci est une ancienne révision du document !
Les scripts pour nautilus
Notes: Ces scripts ne sont peut-être plus à jour, utilisez les à vos risques et périls
Le gestionnaire de fichiers Nautilus dispose de fonctions limitées en terme de scripts. Les scripts suivants peuvent être copiées dans le répertoire de scripts de Nautilus. Nombre de ces scripts s'executent avec les privilèges de l'utilisateur ROOT ce qui signifie que vous pouvez gravement endommager votre système. Agissez avec prudence.
Le répertoire de scripts de nautilus :
~/.gnome2/nautilus-scripts
Placez vos scripts là et rendez-les executables (chmod +x {nom du script}). Vous devriez nommer ces fichiers de façon à ce qu'ils évoquent quelquechose pour vous car c'est sous leur nom qu'ils apparaitront dans vos menus Nautilus. De plus vous n'avez pas besoin de rajouter l'extension .sh de scripts shell (Note du traducteur : dans le monde Unix/Linux les extensions des noms de fichier n'ont aucune importance …). Il est également possible de créer des dossiers pour mieux organiser les scripts. Une fois que vous aurez fait ceci, vos scripts seront disponibles dans toutes les fenêtres Nautilus dans Fichier→Script ainsi que dans le menu contextuel (clique droit). Vous ne verrez pas le menu Fichier→Script tant que vous n'aurez pas ajouté votre premier script dans ~/.gnome2/nautilus-scripts
Envoyer le fichier sélectionné par Mail
Celui-ci est réellement très pratique. Combien de fois avez vous eu besoin de trouver un fichier puis de l'envoyer ? Et pour être honnête, c'est loin d'être simple à partir de Mozilla Thunderbird ou d'Evolution. Il est beaucoup plus facile d'utiliser Nautilus pour trouver votre fichier et alors de l'envoyer à partir de là.
#!/usr/bin/perl -w # Par John Russell # Ce script envoie le fichier selectionne avec votre client de messagerie. use strict; my $MAILTO_URL="mailto:?"; my @files = split("\n", $ENV{NAUTILUS_SCRIPT_SELECTED_FILE_PATHS}); my $count = 0; foreach my $file (@files) { if ( ! -f $file && ! -l $file ) { my @dialog = ("gdialog","--title","Error","--msgbox",\ "\nError: Je ne peux pas envoyer $file.\ \n\n seuls les fichiers reguliers peuvent etre envoye.\ ","200", "300"); system (@dialog); } else { $MAILTO_URL = $MAILTO_URL . "attach=" . $file . "&"; shift; $count += 1; } } if ($count > 0) { my @command = ("gnome-open", $MAILTO_URL); system(@command); }
Ajouté par Darell : J'ai trouvé que la syntaxe de mailto: ci-dessus ne fonctionne pas avec Mozilla Thunderbird. j'ai donc créé la version suivante qui semble fonctionner avec Thunderbird
Ajouté par Herbie : le script fonctionne très bien avec kmail, merci pour ce script, au passage la fonction "envoyer à" dans le menu par défaut de Gnome ne fonctionne pas dans mon cas.
#!/usr/bin/perl -w # par John Russell # et bidouille pour fonctionner avec Thunderbird par Darrell # Ce script envoie le(s) fichier(s) selectionne(s) avec Thunderbird. use strict; my $attach_string="\"attachment='"; my @files = split("\n", $ENV{NAUTILUS_SCRIPT_SELECTED_FILE_PATHS}); my $count = 0; foreach my $file (@files) { if ( ! -f $file && ! -l $file ) { my @dialog = ("gdialog","--title","Error","--msgbox",\ "\nError: Je ne peux pas envoyer $file.\ \n\n seuls les fichiers reguliers peuvent etre envoye.\ ","200", "300"); system (@dialog); } else { $attach_string = $attach_string . "file://" . $file . ","; shift; $count += 1; } } if ($count > 0) { $attach_string = $attach_string . "'\""; # replace spaces with '%20' as demanded by mozilla/thunderbird $attach_string =~ s/\s/%20/g; # appelle un script shell afin d'appeler thunderbird differemment suivant # qu'il soit deja lance ou non my $command = ("~/scripts/thunderbird-email-attachments " . $attach_string); system($command); }
Vous verrez qu'un script shell est requis,"~/scripts/thunderbird-email-attachments" dans mon exemple ci-dessus, ne le mettez pas dans le répertoire de script de Nautilus sinon il apparaitra dans le menu contextuel.
#!/bin/sh # Si thunderbird est deja lance ouvre une fenetre de composition dans l'instance en cours if `ps xc | grep -q mozilla-thunder`; then exec mozilla-thunderbird -a Mozilla-Thunderbird -remote\ "xfeDoCommand(ComposeMessage,$1)" # sinon lance une nouvelle instance avec juste la fenetre de composition else exec mozilla-thunderbird -compose $1 fi
Monter une image ISO
Monter une image ISO à partir de Nautilus. Note de carney1979 : ce script sera bientôt mis à jour afin de fonctionner avec les noms de fichier contenant des espaces.
#!/bin/bash # #en chargeant le module loop on s'assure de son chargement et qu'ilest pret a etre utilise #Si il est deja charge il ne se passe rien. modprobe loop for I in `echo $*` do foo=`gksudo -u root -k -m\ "entrez votre mot de passe afin d'acceder au terminal en tant que root"\ /bin/echo "got r00t?"` sudo mount -o loop -t iso9660 $I /media/iso done done exit0
Démonter une image ISO
Démonter une image ISO à partir de Nautilus. Note de carney1979 : ce script sera bientôt mis à jour afin de fonctionner avec les noms de fichier contenant des espaces.
#!/bin/bash # for I in `echo $*` do foo=`gksudo -u root -k -m\ "entrez votre mot de passe afin d'acceder au terminal en tant que root"\ /bin/echo "got r00t?"` sudo umount $I done done exit0
Définir un fichier en lecture seule
Changer les permissions d'un fichier en lecture seule
#!/bin/bash chmod ugo-wx $*
Editer un fichier avec GEDIT avec les privilèges ROOT
Note de carney1979 : ce script sera bientôt mis à jour afin de fonctionner avec les noms de fichier contenant des espaces.
#!/bin/bash # for I in `echo $*` do foo=`gksudo -u root -k -m\ "entrez votre mot de passe afin d'acceder au terminal en tant que root"\ /bin/echo "got r00t?"` sudo gedit $I done done exit0
Ouvrir Nautilus dans le répertoire choisi avec les privilèges ROOT
#!/bin/bash # root-nautilus-here # Ouvrir Nautilus dans le repertoire choisi avec les privileges ROOT # necessite des privileges sudo et gksudo, ce qui peut entrainner des risques de securites #Installez le dans votre répertoire ~/Nautilus/scripts. # # Place dans le domaine publique par Shane T. Mueller 2001 # correctifs fournis par Doug Nordwall # # 2004.04.18 -- keith@penguingurus.com - Ajout de l'utilisation de gksudo # afin de lancer une fenetre de mot de passe si sudo a expire. # Les echos sont renvoyés # vers la sortie standard de root. Mais gksudo # met à jour votre acces sudo # donc le lancement de nautilus avec sudo fonctionnera sans # demander de mot de passe foo=`gksudo -u root -k -m\ "entrez votre mot de passe afin de lancer nautilus en tant que root"\ /bin/echo "got r00t?"` sudo nautilus --no-desktop $NAUTILUS_SCRIPT_CURRENT_URI
Executer un fichier en tant que ROOT
Note de carney1979 : ce script sera bientôt mis à jour afin de fonctionner avec les noms de fichier contenant des espaces.
#!/bin/bash # for I in `echo $*` do /usr/bin/gksudo $I done done exit0
Ouvrir une fenêtre de recherche dans le répertoire sélectionné
#!/bin/sh # De Johnathan Bailes # Ce script ouvre l'outil de recherche gnome dans le répertoire que vous sélectionnez. # # Distribué selon les termes de GNU GPL version 2 ou ultérieur # # Installez le dans votre répertoire ~/Nautilus/scripts. # Vous devez utiliser Nautilus 1.0.3+ pour utiliser ce script. cd $NAUTILUS_SCRIPT_CURRENT_URI exec gnome-search-tool
Autre version avec recherches multiples :
#! /bin/sh # Par gusaweb <gusaweb at gmail.com> # Permet d'utiliser l'outil de recherche gnome # sur un/des répertoire(s) ou fichier(s) # sélectionné(s). # Distribué selon les termes de la GNU GPL 2 # ou ultérieure # pour chaque path sélectionné for path in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS ; do # s'il s'agit d'un répertoire on effectue # la recherche dedans if ( test -d $path ) then exec gnome-search-tool --path=$path & # s'il s'agit d'un fichier on effectue la # recherche sur le répertoire qui le contient else exec gnome-search-tool --path=`dirname $path` & fi ; done
Ouvrir un terminal ici
Il existe maintenant (Breezy) un paquet nautilus-open-terminal qui permet d'obtenir le même résultat.
#!/bin/bash # # Ce script ouvre le terminal gnome dans le répertoire que vous sélectionnez. # # Distribué selon les termes de GNU GPL version 2 ou ultérieur # # Installez le dans votre répertoire ~/Nautilus/scripts. # Vous devez utiliser Nautilus 1.0.3+ pour utiliser ce script. # Lorsqu'un répertoire est selectionné ouvre celui-ci. Sinon ouvre le répertoire courant # Si plus d'un répertoire est sélectionné affiche une erreur. if [ -n "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" ]; then set $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS if [ $# -eq 1 ]; then destination="$1" # Va dans le répertoire d'un fichier si un fichier est selectionné if [ ! -d "$destination" ]; then destination="`dirname "$destination"`" fi else zenity --error --title="Erreur - Ouvre un terminal ici" \ --text="Vous ne pouvez selectionner qu'un repertoire." exit 1 fi else destination="`echo "$NAUTILUS_SCRIPT_CURRENT_URI" | sed 's/^file:\/\///'`" fi # Seuls les repertoires locaux peuvent etre ouverts if [ -n "`echo "$destination" | grep '^[a-zA-Z0-9]\+:'`" ]; then zenity --error --title="Erreur - Ouvre un terminal ici" \ --text="Seuls les repertoires locaux peuvent etre ouverts." exit 1 fi cd "$destination" exec x-terminal-emulator
Masquer ou montrer les fichiers cachés
#!/bin/sh # Lorsque des fichiers masqués (.emacs, etc) sont cachés, montre l'option "Show Hidden Files". # Lorsque des fichiers masqués (.emacs, etc) sont cachés, montre l'option "Hide Hidden Files". # Utilise gconf pour basculer entre les deux options de Nautilus. # Doit être placé dans ~/.gnome2/nautilus-scripts/ et être executable. OLDSTATE=$(gconftool-2 --get "/desktop/gnome/file_views/show_hidden_files") if [ "$OLDSTATE" == "false" ] ; then NEWSTATE="True" mv ~/.gnome2/nautilus-scripts/Show\ Dot\ Files ~/.gnome2/nautilus-scripts/Hide\ Dot\ Files else NEWSTATE="False" mv ~/.gnome2/nautilus-scripts/Hide\ Dot\ Files ~/.gnome2/nautilus-scripts/Show\ Dot\ Files fi gconftool-2 --set "/desktop/gnome/file_views/show_hidden_files" --type boolean $NEWSTATE
Note:Vous pouvez faire la même chose sans script en pressant Ctrl+H dans Nautilus.
Lire les fichiers du répertoire avec xmms
Permet d'envoyer tout les fichiers du répertoire dans la playlist de xmms
#!/bin/sh base="`echo $NAUTILUS_SCRIPT_CURRENT_URI | cut -d'/' -f3- | sed 's/%20/ /g'`" if [ -z "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" ]; then dir="$base" else while [ ! -z "$1" -a ! -d "$base/$1" ]; do shift; done dir="$base/$1" fi if [ "$NAUTILUS_SCRIPT_CURRENT_URI" == "x-nautilus-desktop:///" ]; then dir="Desktop" fi if [ "$NAUTILUS_SCRIPT_CURRENT_URI" == "trash:" ]; then dir="$HOME/.Trash" fi if [ "$NAUTILUS_SCRIPT_CURRENT_URI" == "file:///" ]; then dir="/" fi FIRST_URI="`echo -n $NAUTILUS_SCRIPT_SELECTED_URIS`" if [ "$FIRST_URI" == "x-nautilus-desktop:///home" ]; then dir="$HOME" fi #if [ "$FIRST_URI" != "" ]; then #dir="`echo $FIRST_URI | cut -c8-`" #fi if [ "$FIRST_URI" == "x-nautilus-desktop:///computer" ]; then dir="/" fi xmms "$dir"