Table des matières

Mes Nautilus-scripts

Prérequis

Un script pour lire rapidement et lestement audio & video

Il s'agit du programme gmplayer installé par le paquet mplayer-gui :

#!/bin/bash
# gmplayer == reglages independants de mplayer et de gnome-player
# gmplayer donne un volume zero par defaut : modifier le fichier skin de configuration pour l'option hpotmeter de 0 à 100
gmplayer "$@"
Comme dit dans le commentaire du script, il faut modifier le fichier skin de configuration en ne laissant aucune ligne desactivée ou commentée

Exemple de configuration avec la skin Clearplayer

cp -R /usr/share/mplayer/skins/clearplayer $HOME/.mplayer/skins/

La skin de configuration Clearplayer se présente ainsi :

section = movieplayer

 window = main

  decoration = enable
  base       = main, 0, 0

  button     = button_prev,      2,  48, 39,  42, evPrev
  button     = button_rewind,   38,  48, 39,  42, evBackward10sec
  button     = button_pause,    74,  48, 39,  42, evPause
  button     = button_play,    110,  48, 39,  42, evPlay
  button     = button_stop,    146,  48, 39,  42, evStop
  button     = button_forward, 182,  48, 39,  42, evForward10sec
  button     = button_next,    218,  48, 39,  42, evNext
  button     = button_load,    254,  48, 39,  42, evLoad

  button     = mute,           304,  62, 10,  17, evMute

  potmeter   = waves, 11,  0,  315,  63,  6,  14, evSetVolume

  hpotmeter  = pos,   27, 15, NULL, 100,  0,  40, 30, 336, 15, evSetMoviePosition
  hpotmeter  = vol,   18, 14, NULL, 100,  0, 331, 64,  45, 14, evSetVolume

  font       = font, font

  dlabel     = 6, 10, 367, 0, font, "$o "
  dlabel     = 6, 31,  40, 0, font, "Time:"
  dlabel     = 6, 98, 152, 0, font, "$1 / $6"

 end

 window      = sub

  base       = sub,  -1,  -1
  background = 246, 246, 246

 end

end

Les lignes à modifier :

La skin de configuration correcte :

section = movieplayer

 window = main

  decoration = enable
  base       = main, 0, 0

  button     = button_prev,      2,  48, 39,  42, evPrev
  button     = button_rewind,   38,  48, 39,  42, evBackward10sec
  button     = button_pause,    74,  48, 39,  42, evPause
  button     = button_play,    110,  48, 39,  42, evPlay
  button     = button_stop,    146,  48, 39,  42, evStop
  button     = button_forward, 182,  48, 39,  42, evForward10sec
  button     = button_next,    218,  48, 39,  42, evNext
  button     = button_load,    254,  48, 39,  42, evLoad

  button     = mute,           304,  62, 10,  17, evMute

  hpotmeter  = pos,   27, 15, NULL, 100,  0,  40, 30, 336, 15, evSetMoviePosition
  hpotmeter  = vol,   18, 14, NULL, 100,  90, 331, 64,  45, 14, evSetVolume

  font       = font, font

  dlabel     = 6, 10, 367, 0, font, "$o "
  dlabel     = 6, 31,  40, 0, font, "Time:"
  dlabel     = 6, 98, 152, 0, font, "$1 / $6"

 end

 window      = video

  base       = sub,  -1,  -1
  background = 246, 246, 246

 end

end
Sélectionnez la skin Clearplayer dans le skin-browser de mplayer si vous ne l'avez pas déja fait.

→ Plus d'infos chez Ask Ubuntu Default audio volume with gmplayer

Un script pour renommer en masse avec pyrenamer

#!/bin/bash
#
# Lance l'application Pyrenamer
# dans le dossier selectionné
# ou dans le dossier du fichier selectionné.
#
# Nautilus Script "Renommer en masse" #
#
# **************************************************************
# NB :
# Il semble qu'il y ait un bug entre bash, gtk, python
# depuis Ubuntu Xenial :
# - si le script lance directement la commande "pyrenamer"
# - le passage de l'argument $wdir ne se fait pas.
# Résolu temporairement avec la commande "bash -c"
#
# # après une certaine mise à jour proche
# #  d'un nouveau noyau, le passage d'argument
# #  à pyrenamer fonctionne de nouveau sans utiliser
# # la commande : bash -c → pyrenamer "$wdir"
# *******************************************************************
#
# Debut de programme
#
# Si l'argument $1 est vide :
# - le clic droit ne sélectionne ni dossier ni fichier
# - comportement plus valide avec xenial
# - pyrenamer s'ouvre par défaut dans $HOME
# - on fait ouvrir pyrenamer dans le dossier courant du clic "vide"
#
if [ "$1" = "" ];then
    wdir=${NAUTILUS_SCRIPT_CURRENT_URI#file://}
    else
#
# L'argument $1 n'est pas vide :
# - le clic droit sélectione un dossier ou un fichier
# - la variable filetype enregistre le type de l'argument
# - avec seulement la note "directory" ou "file"
#
    filetype=$(file "$1")
    filetype=${filetype##*: }
#
# La variable filetype enregistre le type "directory" :
# - le chemin de l'argument sélectionné est reconstitué
# - avec la localisation complète et courante du dossier sélectionné
# - et de son nom, débarrassé de la notation shell "file://"
#
    if [ "$filetype" = "directory" ];then
#  #wdir="${NAUTILUS_SCRIPT_CURRENT_URI#file://}/$1"
## je me suis rendu compte que puisque $1 etait un dossier,
## on pouvait directementl'utiliser comme argument
    wdir="$1"
    else
#
# La variable filetype enregistre le type "file" :
# - le chemin de l'argument sélectionné est reconstitué
# - avec seulement la localisation complète et courante du fichier sélectiionné
# - débarrassé de la notation shell "file://"
#
##  #wdir=${NAUTILUS_SCRIPT_CURRENT_URI#file://}
##
##  je me suis rendu compte que c'était la variable de zenity
##  qui n'encodait pas les caractères accentués.
##  la commande : pwd permet d'associer le chemin directement
    wdir=$(pwd "$1")
    fi
fi
#
# Pour tout contenu de localisation complète
# pour le dossier de travail ou d'exécution (wdir = working directory)
# la variable $wdir est  débarrassée de la notation shell du symbole "espace"
# tous les échappements shell %20 deviennent des espaces " "
#
##wdir=${wdir//%20/ }
## comme le passage d'argument n'utilise plus aucune variable zenity,
## la problematique de non encodage des espaces et des caractères accentués
## disparaît !
#
# Le contenu de la variable $wdir
# avec ses espaces et ses caractères accentués
# est protégé par des guillemets
#
# Pour parer au bug de passage des arguments,
# le script lance "pyrenamer" en console avec bash :
# bash est lancé et exécute pyrenamer avec l'argument $wdir
# entre guillemets.
#
# Insérer cette ligne de code zenity,
# pour montrer que l'argument $wdir
# sera utilisé correctement avec espaces
# et caractères accentués.
# zenity --info --text="pyrenamer '$wdir'"
##bash -c "pyrenamer '$wdir'"
## comme rajouté dans les commentaires
## du début de script, le passage d'argument
## fonctionne en appelant directement le
## programme.
pyrenamer "$wdir"

Explications de code

Lire les commentaires du code