====== Mes Nautilus-scripts ======
===== Prérequis =====
* Lisez la documentation [[:nautilus_scripts|Les scripts pour Nautilus]]
* Lisez la documentation [[https://help.ubuntu.com/community/NautilusScriptsHowto|NautilusScriptsHowto]]
* Lisez la documentation [[http://www.tldp.org/LDP/Bash-Beginners-Guide/html/Bash-Beginners-Guide.html|Bash : Guide pour debutant]] et notamment sa section 10.3.3
===== Un script pour lire rapidement et lestement audio & video =====
Il s'agit du programme ''gmplayer'' installé par le paquet **[[apt>mplayer-gui]]** :
* Allez dans le dossier des scripts nautilus
* Créez-y le fichier //gmplayerit// ou //mplayerit//, au choix
* Rendez le exécutable, pour ne pas avoir à le faire après
* Éditez-le et copiez-collez-y le code suivant
#!/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 ====
* Installez si besoin le paquet **[[apt>mplayer-skins]]**
* Copiez dans votre dossier personnel 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 :
* supprimer absolument //potmeter = waves, 11, 0, 315, 63, 6, 14, evSetVolume//.
* modifier la valeur ''0'' dans la ligne //hpotmeter = vol, 18, 14, NULL, 100, ''0'', 331, 64, 45, 14, evSetVolume// , c'est une valeur en pourcentage, donnez-lui un incrément de 10, 20, 30 … 100.
* modifier absolument la ligne //window = sub// en ''window = video''
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** [[https://askubuntu.com/a/993241|Default audio volume with gmplayer]]
===== Un script pour renommer en masse avec pyrenamer =====
* Installez le paquet **[[apt>pyrenamer]]**
* Allez dans le dossier des scripts nautilus
* Créez-y le fichier //pyrenamit// ou //pyrenamall//, au choix
* Rendez le exécutable, pour ne pas avoir à le faire après
* Éditez-le et copiez-collez-y le code suivant
#!/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 ====
* le script vérifie le chemin d'execution du script pyrenamit
* le chemin est vide, le script lui assigne le dossier courant d'execution ...
* le chemin n'est pas vide, le script vérifie si c'est un fichier ou un dossier
* si c'est un dossier, le script lancera pyrenamer avec le nom du dossier selectionné et son chemin complet
* si c'est un fichier, le script lancera pyrenamer avec le dossier contenant le fichier selectionné
* le script prend en compte les espaces et les caracteres accentués
__Lire les commentaires du code__