Ceci est une ancienne révision du document !



Nautilus Actions

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 :

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

Créer une action

Ouvrez la fenêtre de configuration de nautilus-actions Système>Préférences>Configuration des actions de nautilus. Dans Ubuntu 14.04 trusty, tapez nautilus-actions-config-tool en ligne de commande.

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 [FIXME : 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

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

Toutes les actions sur le site officiel (anglais).

Editer tags avec Easytag

Nécessite Easytag. Utile pour taguer rapidement des fichiers mp3 ou bien ogg.

Lien pour télécharger l'action (anglais)

Monter fichier ISO

Pour monter une image de cd au format iso en un clic. Nécessite un script.

Lien pour télécharger l'action (anglais)

Démonter ISO

Pour démonter une image de cd au format iso en un clic. Nécessite un script.

Lien pour télécharger l'action (anglais)

Lister paramètres

Actions utiles uniquement pour développer une action. Nécessite zenity.

Lien pour télécharger l'action (anglais)

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.

Lien pour télécharger l'action (anglais)

Editer en tant que root avec gedit

Permet d'éditer en tant qu'utilisateur root un fichier texte de configuration par exemple.

Lien pour télécharger l'action (anglais)

Rajouter des fichiers audio dans la liste de lecture XMMS

Permet de rajouter des fichiers audio dans la liste courante de lecture d'XMMS.

Lien pour télécharger l'action (anglais)

Renommer vos photos à partir des données EXIF

Permet de renommer vos photos selon des méta-données EXIF

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.

#!/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

Lien pour télécharger l'action

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

site officiel [eng], il regorge d'actions

le lien ci-dessus est erroné et provoque l'affichage de :

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

  • nautilus-actions.1404286303.txt.gz
  • Dernière modification: Le 02/07/2014, 09:31
  • par 6mon