Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
applications:nautilus_scripts [Le 18/02/2007, 19:37] adam0509 tag hoary |
— (Version actuelle) | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>hoary}} | ||
- | [[https://wiki.ubuntu.com/NautilusScriptsHowto|Traduit]] par [[utilisateurs:fredb | FredB]]. | ||
- | |||
- | ===== 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 : | ||
- | <code> | ||
- | ~/.gnome2/nautilus-scripts | ||
- | </code> | ||
- | |||
- | 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 ...). 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à. | ||
- | |||
- | <code> | ||
- | #!/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); | ||
- | } | ||
- | </code> | ||
- | 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 [[utilisateurs: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. | ||
- | <code> | ||
- | #!/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); | ||
- | } | ||
- | </code> | ||
- | 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. | ||
- | <code> | ||
- | #!/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 | ||
- | </code> | ||
- | |||
- | ==== 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. | ||
- | |||
- | <code> | ||
- | #!/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 | ||
- | </code> | ||
- | ==== 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. | ||
- | |||
- | <code> | ||
- | #!/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 | ||
- | </code> | ||
- | ==== Définir un fichier en lecture seule ==== | ||
- | |||
- | Changer les permissions d'un fichier en lecture seule | ||
- | <code> | ||
- | #!/bin/bash | ||
- | chmod ugo-wx $* | ||
- | </code> | ||
- | |||
- | ==== 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. | ||
- | <code> | ||
- | #!/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 | ||
- | </code> | ||
- | |||
- | ==== Ouvrir Nautilus dans le répertoire choisi avec les privilèges ROOT ==== | ||
- | |||
- | <code> | ||
- | #!/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 | ||
- | </code> | ||
- | |||
- | ==== 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. | ||
- | <code> | ||
- | #!/bin/bash | ||
- | # | ||
- | for I in `echo $*` | ||
- | do | ||
- | /usr/bin/gksudo $I | ||
- | done | ||
- | done | ||
- | exit0 | ||
- | </code> | ||
- | |||
- | ==== Ouvrir une fenêtre de recherche dans le répertoire sélectionné ==== | ||
- | <code> | ||
- | #!/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 | ||
- | </code> | ||
- | |||
- | Autre version avec recherches multiples : | ||
- | <code> | ||
- | #! /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 | ||
- | </code> | ||
- | |||
- | |||
- | ==== Ouvrir un terminal ici ==== | ||
- | |||
- | Il existe maintenant (Breezy) un paquet **nautilus-open-terminal** qui permet d'obtenir le même résultat. | ||
- | |||
- | <code> | ||
- | #!/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 | ||
- | |||
- | </code> | ||
- | |||
- | ==== Masquer ou montrer les fichiers cachés ==== | ||
- | <code> | ||
- | #!/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 | ||
- | </code> | ||
- | **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 | ||
- | |||
- | <code> | ||
- | #!/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" | ||
- | </code> |