Ceci est une ancienne révision du document !
Nautilus Actions
Présentation
Nautilus-actions est une extension de nautilus permettant d'ajouter des fonctions au menu contextuel (menu lors d'un clic droit). Ces fonctions sont appelées actions.
Nautilus-actions fonctionne un peu comme nautilus scripts à part que sa configuration se fait entièrement graphiquement et que ce ne sont pas des scripts que l'on ajoute mais des actions (fichier xml de configuration de gconf en *.schemas).
Il permet aussi de filtrer les fichiers auxquels les actions peuvent s'appliquer (on ne peut pas tagguer un fichier texte, inversement on ne peut pas éditer en sudo un fichier mp3).
Les images sont toujours plus éloquentes :
Installation
Une simple ligne de commande (dépôts Universe nécessaire) : apt://nautilus-actions
Beaucoup d'actions nécessitent le paquet zenity qui permet de faire une interface graphique en GTK à partir de n'importe quel script. C'est pourquoi, il est recommandé d'installer zenity : apt://zenity
Pour ajouter des actions vous avez le choix :
- Vous créez vous-même vos actions
- Vous téléchargez les actions disponibles ci-dessous puis vous les importez.
Créer une action
Ouvrez la fenêtre de configuration de nautilus-actions Système>Préférences>Configuration des actions de nautilus. Puis ajouter.
Un Conseil pour créer une action prenez exemple sur celles déjà existantes ça vous simplifiera la vie.
Onglet Action et entrée de menu
- Libellé sera le texte affiché dans le menu contextuel.
- Infobulle est le texte affiché au survol de l'action dans le menu.
- Icône vous permet de choisir une icône à afficher à gauche du titre de l'action dans le menu de nautilus.
- Chemin est la ligne de commande de l'action. Il peut être très long du moment que ça tient sur une ligne (le recourt à un script peut être utile)
- Paramètres est la liste des paramètres à passer à l'exécutable de chemin. Nautilus-actions possède sa propre syntaxe, pour la connaitre aller voir dans Legend.
Onglet Conditions
C'est un onglet très important, il permet de spécifier quel type de fichiers sont concernés (MIMETYPE et expression régulière) et si les dossiers sont concernés les fichiers ou bien les deux.
Onglet Advanced Conditions
Cet onglet permet d'aller plus loin en spécifiant si les fichiers doivent être locaux ou en réseau ou que sais-je encore.
importer une action
Ouvrer la fenêtre de configuration de nautilus-actions Système>Préférences>Configuration des actions de nautilus.
Sélectionner l'action à importer au format .schemas en face du champs Fichier à importer
Puis vérifier que dans la partie type de configuration ce soit bien Fichier de configuration de schéma GConf (nautilus-actions v1.x et ultérieur)
Valider et c'est fini !
Créer une action depuis la ligne de commande
Il peut-être pratique de pouvoir ajouter une action à nautilus depuis la ligne de commande. La commande nautilus-actions-new est utilisée pour ce, par exemple:
nautilus-actions-new --label="Action à effectuer" -p "%d %m" -x /chemin/du/programme -d -u -g
détails des paramètres:
- –label="texte": affiche "texte" dans le menu contextuel
- -p "%d %m": ajoute les paramètres à la commande lancée (%d = dossier dans lequel se trouve le fichier, %m = liste des fichiers sans leur chemin complet)
- -x chemin/programme: exécute le programme disponible au chemin spécifié
- -d: actif si un dossier est sélectionné
- -u: actif même si plusieurs éléments sont sélectionnés
- -g: ajouter directement le tout à gconf plutôt que de renvoyer le résultat sur la sortie standard [ : ceci ne fonctionne plus ! ]
pour plus de détails, voir la sortie de la commande nautilus-actions-new dans un terminal.
pour supprimer une action depuis la ligne de commande, c'est une autre paire de manche: il faut identifier les schemas et keys (on peut passer par un fichier temporaire plutôt que d'utiliser l'option -g):
gconftool-2 --recursive-unset /path/your/schemas/in/gconf gconftool-2 --recursive-unset /path/your/keys/in/gconf
On peut tout de même le faire facilement depuis l'outil graphique
Pour que Nautilus prenne en charge vos actions en compte, il faut redémarrer nautilus après l'installation du nouveau paquet :
nautilus -q
Actions
Déposer ici vos actions au format gconf.schema.
TODO Pour l'instant il m'est impossible d'uploader ici les fichiers .schemas, il faut les télécharger en version anglaise, à partir du site officiel
Editer tags avec Easytag
Nécessite Easytag. Utile pour taguer rapidement des fichiers mp3 ou bien ogg.
Monter fichier ISO
Pour monter une image de cd au format iso en un clic. Nécessite un script.
Démonter ISO
Pour démonter une image de cd au format iso en un clic. Nécessite un script.
Lister paramètres
Actions utiles uniquement pour développer une action. Nécessite zenity.
Mettre une image en fond d'écran
Cette action est facultative.
Il suffit de faire un glisser-déposer avec le bouton du milieu d'une image sur le bureau pour changer rapidement le fond d'écran.
Cette action permet en 2 clics de changer facilement et rapidement son fond d'écran.
Editer en tant que root avec gedit
Permet d'éditer en tant qu'utilisateur root un fichier texte de configuration par exemple.
Rajouter des fichiers audio dans la liste de lecture XMMS
Permet de rajouter des fichiers audio dans la liste courante de lecture d'XMMS.
Renommer vos photos à partir des données EXIF
Permet de renommer vos photos selon des méta-données EXIF
- selon la date et l'heure Lien pour télécharger l'action (anglais)
Renommer plusieurs fichiers ou dossiers
Permet de renommer les fichiers ou dossiers sélectionnés
Ouvrir un terminal dans le dossier
Ouvre un terminal avec pour dossier de travail le dossier où l'on se trouve. Lien pour télécharger l'action (anglais)
Ou plus simplement par les dépôts : apt://nautilus-open-terminal (qui sera dans menu principal, pas dans script).
Créer un lien symbolique vers
Permet de créer un lien symbolique vers une destination choisie.
- Installez le paquet zenity zenity
- Créer un fichier .lnto dans votre home (gedit ~/.lnto). Le fichier comprendra :
#!/bin/sh
TARGET=`zenity --file-selection --save --confirm-overwrite --filename="$1 - Lien"` if [ "$TARGET" != "" ]; then rm -rf "$TARGET" ln -s -f "$1" "$TARGET" fi;
- Ajoutez le droit d'exécution sur le fichier
chmod +x ~/.lnto
Mailto avec Thunderbird
Permet d'envoyer un email contenant les fichiers/dossiers sélectionnés.
Lien pour télécharger l'action (également disponible en script).
(lien mort)
Voici un script permettant d'envoyer un email contenant les fichiers sélectionnés mais aussi de redimensionner les images. (script légèrement corrigé de Lien)
#!/bin/bash # Creation le : 19/10/2005 par eddy http://forum.ubuntu-fr.org/profile.php?id=1142 # Edite le 18/06/2011 par jOoL - www.jool.ch # Modifié et corrigé le 05/03/2014 # Attention : les packages zenity et imagemagick doivent etre installes au prealable # # On verifie tout d'abord qu'il y a bien au moins un fichier selectionne if [ $# -eq 0 ]; then zenity --warning --title="Attention" --text="Il faut sélectionner au moins un fichier !" exit 1 fi # On memorise le nombre de fichiers a envoyer NB_FILES=$# # On ecrase une eventuelle precedente liste de fichiers attaches echo "" > /tmp/attachment.log # On passe en revue la liste des fichiers a envoyer (while [ $# -gt 0 ]; do # Pour chaque fichier on memorise son nom et son uri fullfilename=$(basename "$1") extension=${fullfilename##*.} filename=${fullfilename%.*} FILE_NAME="$filename.$extension" FILE_URI="$1" # On passe les infos a la fenetre de progression let "COMPTEUR += 1" echo "# Traitement du fichier $FILE_NAME ($COMPTEUR/$NB_FILES) ..." let "PROGRESS = COMPTEUR*100/NB_FILES" echo $PROGRESS # On teste si le fichier est une image IS_IMAGE=`file -bi "$FILE_NAME" | grep -c image` if [ $IS_IMAGE != 0 ]; then # Si c'est une image on demande une fois (pour toutes) la definition souhaitee # pour cette image (et les eventuelles autres) if [ ! $DEF_ASKED ]; then # On attend un peu pour que la fenêtre n'arrive pas avant la fenetre de progression ... sleep 2 DEF=`zenity --list --title "Redimensionner l'(es) image(s) ..." --text="Choisir une définition maximum ci-dessous (ou cliquer sur Annuler pour envoyer les images sans modification)" --radiolist --column "" --column "Taille" TRUE 1280x1024 FALSE 1024x768 FALSE 800x600 FALSE 640x480` MAX_DEF=`echo "$DEF" | awk -F'x' '{ print $1 }'` DEF="${MAX_DEF}x${MAX_DEF}" DEF_ASKED=1 fi if [ "$DEF" != "x" ]; then # Si une definition a ete specifiee, on va contruire # une copie de l'image (reduite) dans le répertoire temporaire convert "$FILE_NAME" -resize $DEF "/tmp/$FILE_NAME" # On memorise l'uri de l'image reduite a la place de celle de l'image d'origine FILE_URI="/tmp/$FILE_NAME" fi fi # On rajoute l'uri du fichier a la liste if [ "$ATTACHMENT" == "" ]; then ATTACHMENT=$FILE_URI else ATTACHMENT=$ATTACHMENT,$FILE_URI fi # On enregistre la liste provisoire des fichiers echo $ATTACHMENT > /tmp/attachment.log # Et on passe au fichier suivant ... shift done) | zenity --progress --auto-close --title="Préparation" --text="Traitement en cours ..." --percentage=0 # On recupere la liste des fichiers et on rajoute des quotes autour ATTACHMENT=`cat /tmp/attachment.log` ATTACHMENT=\'$ATTACHMENT\' # On teste si Thunderbird est lance pour choisir # la bonne façon de joindre les fichiers MOZ_ON=`ps -ec | grep -c mozilla-thunder` if [ $MOZ_ON != 0 ]; then thunderbird -remote "xfeDoCommand(composeMessage,attachment=$ATTACHMENT)" else thunderbird -compose "attachment=$ATTACHMENT" fi
Liens
site officiel [eng], il regorge d'actions
Fatal error: Access denied for user: 'grumz@%' to database 'grumz' query: INSERT INTO sessions (sid, uid, hostname, timestamp) VALUES ('09f0c3bf9513c5eb4d9dc951b517e47a', 0, '31.34.87.55', 1392732815) in /homez.44/grumz/www/includes/database.mysql.inc on line 66
Contributeurs : meven