====== 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__