Main menu:

Site search

Categories

septembre 2008
L M M J V S D
« Août   Oct »
1234567
891011121314
15161718192021
22232425262728
2930  

Archive

Ecrire ses propres scripts Nautilus

Il est possible dans le gestionnaire de fichiers Nautilus de créer des scripts qui pourront être lancés via le menu Fichier/Scripts ou via le menu contextuel apparaissant lors d’un clic droit sur un fichier.
A quoi peuvent bien servir ces scripts?
A exécuter des tâches répétitives. Par exemple si vous devez toujours redimensionner des images avec les mêmes caractéristiques, il peut être intéressant de créer un script.
Ou bien pour effectuer une tâche que Nautilus ne permet pas. Par exemple afficher une image en fond d’écran directement sans passer par l’outil Préférences de l’apparence dans la configuration de Gnome.

L’élément Scripts du menu Fichier ou du menu contextuel n’apparaît que si vous avez placé un script (fichier) exécutable dans le répertoire ~/.gnome2/nautilus-scripts. Ne vous étonnez donc pas si dans votre Nautilus, il n’y a pas (encore) de menu Scripts qui apparaisse. Les scripts peuvent être écrits dans le language que vous désirez. Dans l’exemple ci-dessous, je vous donnerai une version du script écrite avec bash et une version écrite avec python .
Le nom du fichier script est le nom qui apparaît dans le menu Scripts. Donnez donc un nom significatif à vos scripts.

Voici comment procéder pour créer un script qui va afficher une image en fond d’écran (wallpaper).

Créer dans le répertoire ~/.gnome2/nautilus-scripts, un fichier appelé fond’écran. Ouvrez ce fichier avec gedit par exemple et copiez le code ci-dessous dans votre fichier:

#!/bin/sh

arg=$(printf %s "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"  | sed '2,$d' )
gconftool-2 --set --type string  /desktop/gnome/background/picture_filename "$arg"
gconftool-2 --set --type string /desktop/gnome/background/picture_options "scaled"

La première ligne indique qu’il s’agit d’un script shell. Ensuite, on récupère dans la variable arg le nom du fichier passé en argument par Nautilus. Lorsque vous sélectionnez un fichier ou plusieurs dans Nautilus, ce dernier les passent au script via la variable d’environnement NAUTILUS_SCRIPT_SELECTED_FILE_PATHS qui contient tous les noms de fichiers sélectionnés, séparés par des ‘\n’ (newline). Autrement dit chaque ligne est un nom de fichier. D’autres paramètres sont transmis aux scripts par des variables d’environnement dont nous n’avons pas besoin ici.
La commande sed ‘2,$d’ permet de ne prendre que le premier fichier si plusieurs ont été sélectionnés.
Ensuite, gconftool-2 écrit dans les fichiers de configuration de Gnome, le nom du fichier choisi comme fond d’écran et choisit le mode d’affichage ‘scaled’.
Sauvez ce fichier et rendez-le exécutable:

$ chmod o+x le_nom_du_fichier

Vous pouvez le faire aussi directement dans Nautilus via les propriétés du fichier.

Le même script écrit en python pour ceux qui préfèrent ce langage:

#!/usr/bin/env python

import os

file = os.environ['NAUTILUS_SCRIPT_SELECTED_FILE_PATHS'].splitlines()[0]
os.system('gconftool-2 --set --type string  /desktop/gnome/background/picture_filename ' + '"'+ file +'"')
os.system('gconftool-2 --set --type string /desktop/gnome/background/picture_options "scaled" ')

A nouveau, n’oubliez pas de rendre votre script exécutable sinon il n’apparaîtra pas dans le meu Scripts.

Notez que rien ne vous empêche de créer dans vos scripts des boîtes de dialogue que vous auriez créées avec glade pour python ou en utilisant zenity pour vos scripts shell. De même, les scripts peuvent être écrits avec n’importe quel langage.
Je vous renvoie à la page d’ubuntu-fr concernant les scripts nautilus pour plus d’infos sur le sujet et bien sûr à la documentation de Gnome.