Ajouter une entrée au menu contextuel de Nautilus

On peut modifier le menu contextuel de Nautilus, le navigateur de fichiers de Gnome, avec l'outil nautilus-actions. L'idée ici est de proposer dans le menu contextuel de lire plusieurs vidéos l'une derrière l'autre lorsque plusieurs fichiers de ce type sont sélectionnés dans Nautilus. La capture d'écran ci-dessous illustre le résultat.

menu contextuel 1

L'installation de nautilus-actions est bien sûr très simple sur les Linux Debian et dérivés :

$ sudo apt-get install nautilus-actions

Il faut ensuite aller dans le menu Bureau -> Préférences -> Configuration des actions de Nautilus, ou bien, plus rapidement, lancer la commande suivante :

$ nautilus-actions-config

Il suffit de créer une action selon les captures d'écran suivantes et le tour est joué. Vous pouvez aussi récupérer mon fichier create-playlist.schemas et l'importer dans nautilus-actions afin de vous éviter le labeur de recopie des textes. ;-)

onglet principal

onglet conditions

Créer une liste de lecture

Méthode propre

Une liste de lecture en format M3U est un simple fichier texte contenant des informations et les noms des fichiers à lire à raison de un par ligne. Par exemple :

#EXTM3U
#EXTINF:0,p1000200.mov
p1000200.mov
#EXTINF:0,p1000219.mov
p1000219.mov
#EXTINF:0,p1000231.mov
p1000231.mov

On peut facilement obtenir un tel fichier nommé par exemple playlist.m3u avec le petit script shell suivant[1] :

echo '#EXTM3U' > playlist.m3u
for FILE in $(ls *.mov); do
  echo '#EXTINF:0,'$FILE >> playlist.m3u
  echo $FILE >> playlist.m3u
done

Il faut ensuite lire cette playlist dans un lecteur vidéo. Si vous utilisez Mplayer, il faut savoir que celui-ci ne reconnaîtra bizarrement pas la liste de lecture si vous ne lui donnez pas l'option qui lui permet de le savoir :

$ gmplayer -playlist playlist.m3u

Ceci implique que vous ne pouvez pas lancer la liste de lecture dans Mplayer en double-cliquant dessus, contrairement aux autres lecteurs vidéo. Tout au plus vous pourrez ajouter une commande d'ouverture de la liste dans le menu contextuel, en éditant les propriétés du fichier playlist.m3u et en ajoutant une commande dans l'onglet Ouvrir avec.

Méthode ultra rapide

En fait une liste de lecture peut aussi être simplement une liste de noms de fichiers sans informations complémentaires. Du coup on peut créer la liste aussi rapidement que cela :

$ ls *.mov > playlist.m3u

De plus on peut aussi récupérer toutes les vidéos de l'arborescence à partir d'un répertoire donné plutôt que seulement celles du répertoire :

$ find videos/ -name *.mov | sort > playlist.m3u

Ici on a rassemblé dans la liste de lecture tous les fichiers vidéos contenus dans le répertoire videos/ et ses sous-répertoires. La commande find recherche les fichiers d'extension mov alors que sort les remet dans l'ordre numérique qui est le plus souvent aussi l'ordre des dates d'enregistrement avec les appareils photos numériques.

Créer la liste depuis Nautilus

Il est alors intéressant de coupler la méthode basée sur le menu contextuel de Nautilus avec la dernière ligne de commande. Ceci permet de créer la liste de lecture d'un répertoire et ses répertoires enfants par simple clic droit dans Nautilus. Pour ce faire il faut créer un petit script, par exemple playlist.sh, qui accepte comme argument(s) la liste des répertoires dans le(s)quel(s) rechercher des vidéos :

#!/bin/bash
#
# script pour créer une liste de lecture
# de vidéos *.mov
 
for DIRNAME in "$@"; do
	echo '# genarated with playlist.sh' > $DIRNAME/playlist.m3u
	find $DIRNAME -name *.mov | sort >> $DIRNAME/playlist.m3u
done

La liste playlist.m3u sera créée dans chaque répertoire spécifié en argument de la commande. Il faut ensuite définir une action Nautilus de la même manière qu'au début de ce billet, en spécifiant le chemin du script dans le chemin de la commande, %M comme paramètre de la comande[2] et, dans l'onglet conditions, une sélection qui ne comporte que des dossiers (récupérer le fichier create-playlist.schemas correspondant pour nautilus-actions). Ainsi lorsqu'on clique droit sur des dossiers ou dans le vide on obtient :

menu contextuel 2

Évidemment rien ne vous empêche d'adapter les méthodes exposées à des fichiers audio, MP3 par exemple.

Bonnes séances de visionnage !

Notes

[1] vous noterez bien qu'ici on a choisi des fichiers d'extension mov

[2] c'est la liste du(des) répertoire(s) sélectionné(s)