Scripts pour thunar/nautilus


#1

Bonjour!
Un récent post m’a fait penser qu’il serait sympa que chacun partage ici ses scripts utilisés dans thunar ou nautilus.
Alors, pour nautilus, il faut placer les scripts dans ~/.gnome2/nautilus-script. Pour thunar, c’est comme vous voulez.

Je commence :

[ul]
[li]Upload sur ftp :
[list]
Suite au commentaire de Limax, j’ai opté pour lftp, plus facile à comprendre, voir le fil :
uploader-simplement-sur-mirorii-t29906.html

[*] Sur mirorii :

[code]#!/bin/bash
#Script pour uploader sur mirorii

nécessice lftp

#Dans Thunar, choisir Edition > Configurer les actions personnalisées >

> Ajoutez une nouvelles entrée

Nom : Up Sur Mirorii

Commande : /chemin/vers/le/script %N

Conditions d’apparition : Tout sauf répertoire

server=“www.mirorii.com
#votre nom d’utilisateur et mot de passe
username="user"
password="motdepasse"
term=urxvt

v_=$IFS
IFS="
"
for i in $@; do
file=$i
$term -e lftp -u $username,$password -e "put “$file” ; quit " $server
done

IFS=$v_
exit
[/code][/li]
[li] Sur dl.free.fr

[code]#!/bin/bash
#Script pour uploader sur dl.free.fr

nécessice lftp

#Dans Thunar, choisir Edition > Configurer les actions personnalisées >

> Ajoutez une nouvelles entrée

Nom : Up Sur dl.free.fr

Commande : /chemin/vers/le/script %N

Conditions d’apparition : Tout sauf répertoire

server="dl.free.fr"
username="uneadressemail@domaine.org"
password="unmotdepassequevousvoulez"
term=urxvt

v_=$IFS
IFS="
"

for i in $@; do
file=$i
$term -e lftp -u $username,$password -e "put “$file” ; quit " $server
done

IFS=$v_
exit
[/code][/li][/ul][/*:m]
[li]Lancer dans mpd

[code]#!/bin/sh
#Script pour charger des musiques dans mpd

#Dans Thunar, choisir Edition > Configurer les actions personnalisées >

> Ajoutez une nouvelles entrée

Nom : Jouer dans mpd

Commande : /chemin/vers/le/script %F

Conditions d’apparition : Fichier Video, Fichier audio, Repertoires

#préciser la bibliothèque pour mpd.
#Afin de lire tous vos fichier audio, il faudra que ce soit votre home la bibliothèque

MUSDIR="/home/xavier/Musique/" # ne pas oublier le dernier /

#Ajustement pour les noms de fichier avec espace
v_=$IFS
IFS=’
'
NUM=$(mpc playlist |wc -l)
for i in $@ ; do
ZIC=$(echo “${i}” |sed “s|”$MUSDIR"||" )
mpc add "$ZIC"
done
mpc play $(( $NUM + 1 ))

IFS=$v_
exit

[/code]
[/li]
[li]Conversion de fichiers
[ul]
[*]ogg -> mp3

[code]#!/bin/bash
#Script pour convertir des fichiers audios ogg en mp3

#Dans Thunar, choisir Edition > Configurer les actions personnalisées >

> Ajoutez une nouvelles entrée

Nom : Convert2mp3

Commande : /chemin/vers/le/script %F

Conditions d’apparition : *.ogg

Cocher “Fichiers video”

#(Thunar reconnaît les ogg comme video)
v_=$IFS
IFS=’
'
for i in $@; do
j="${i%.ogg}"
sox “$j.ogg” “$j.wav” && lame “$j.wav” “$j.mp3” && rm -f “$j.wav” && echo "$i réencodé en MP3."
done
IFS=v_
[/code][/li]
[li] -> ogg

[code]#!/bin/bash
#Script pour convertir des fichiers audios en ogg

#Dans Thunar, choisir Edition > Configurer les actions personnalisées >

> Ajoutez une nouvelles entrée

Nom : Convert2ogg

Commande : /chemin/vers/le/script %F

Conditions d’apparition : *

Cocher “Fichiers audio”

v_=$IFS
IFS=’
'
for i in $@; do
case $i in
*.mp3 )
mp32ogg --quality=10 --rename=%t “$i”
;;
*.wav )
oggenc -b 160 “$i”
;;
*.wma )
j="${i%.wma}"
ffmpeg -i “$j.wma” “$j.ogg”
;;
esac

done
IFS=v_
exit
[/code][/li][/ul][/*:m][/list:u]


#2

Bonjour,
voilà une trés bonne idée, je me lance aussi, tous ces scripts ne sont pas de moi mais c’est ceux que j’utilise…

[size=150]Redimensionnement d’images:[/size]

[code]#!/bin/bash

Script récupéré de Denis sacchet sur http://denis.sacchet.fr/?p=141#comment-781

et modifié par MerMouY mermouy [AT] gmail [DOT] com

Ce script peut être utilisé dans Thunar ou en ligne de commande

pour redimmensionner une liste de photo dans une resolution cible

Il nécessite zenity et ImageMagick pour fonctionner et par conséquent

ne fonctionne que si un serveur X11 est disponible.

Pour rajouter une action personnalisée dans Thunar, aller dans le

menu “Edit->Configure custom actions …” et renseigner les champs

comme suit :

Onglet “Basic” :

Name : Resize image

Description : Allow to resize image

Command : /resize_photo %F

Onglet : “Appearance Conditions”

File Pattern : *

Appears if selection contains : Image files

Les fichiers redimensionnés sont nommés comme suit :

-.

- si le fichier n’avait pas d’extension

SIZE=zenity --entry --title="Redimensionner" --text="Entrer la resolution cible" --entry-text="1024"

if [ “x${SIZE}” = “xok” -o xecho ${SIZE} | sed 's@^[0-9]*$@ok@' != “xok” ]
then
zenity --error --text="$SIZE n’est pas une valeur correcte"
exit 1
fi

NB_PHOTOS=$#

RESULTFILE=mktemp

until [ -z “$1” ]
do
cible=echo "$1" | sed "s@\(.*\)\.\([^\.]*\)@\1-${SIZE}.\2@"
if [ “$cible” = “$1” ]
then
cible="${1}-${SIZE}"
fi
convert “$1” -resize ${SIZE}x${SIZE} "$cible"
if [ $? -eq 0 ]
then
echo “L’image $1 a été redimensionnée avec succès” >> "$RESULTFILE"
echo “Le nouveau fichier est $cible” >> "$RESULTFILE"
else
echo “Une erreur a été rencontrée lors du redimmensionnement de l’image $1” >> "$RESULTFILE"
fi
shift
echo "."
done | zenity --progress --pulsate --text=“Traitement des photos” --auto-close --auto-kill

zenity --info-text --filename="$RESULTFILE" --height=600 --width=440
rm -f “$RESULTFILE”[/code]

[size=150]Recoder en utf8:[/size]

#!/bin/bash
#
# Ce script peut être utilisé dans Thunar ou en ligne de commande
# pour redimmensionner une liste de photo dans une resolution cible
#
# Il nécessite zenity et ImageMagick pour fonctionner et par conséquent
# ne fonctionne que si un serveur X11 est disponible.
#
# Pour rajouter une action personnalisée dans Thunar, aller dans le
# menu "Edit->Configure custom actions ..." et renseigner les champs
# comme suit :
#
# Onglet "Basic" :
# Name : Recoder en utf8
# Description : Transforme le contenu des fichiers d'un dossier en UTF-8 s'il ne le sont pas
# Command : <path to>/recode.sh %F
# Onglet : "Appearance Conditions"
# File Pattern : *
# Appears if selection contains : Directories
#
# Transforme le contenu des fichiers d'un dossier en UTF-8 s'il ne le sont pas

REP=$1
MOI=$0

rm -f /tmp/$MOI.* 2>/dev/null

file $REP/*  | sed 's/: */:/g' | grep text | grep -v "ML document"| grep -v "UTF-8 Unicode text" > /tmp/$MOI.bdd

grep "ISO-8859 text" /tmp/$MOI.bdd > /tmp/$MOI.iso8859
grep -v "ISO-8859 text" /tmp/$MOI.bdd | cut -d":" -f1 > /tmp/$MOI.bdd.tmp

echo "entre dans la boucle1"

cat /tmp/$MOI.bdd.tmp | while read FIC
do
  tail -`expr \`cat $FIC |wc -l\` - 1` $FIC > /tmp/$MOI.tmp
  echo $FIC
  file /tmp/$MOI.tmp
  TYPE=`file  /tmp/$MOI.tmp | sed 's/: */:/g'| cut -d: -f2`
  if [ "$TYPE" = "ISO-8859 text" ]
    then
      echo "$FIC:ISO-8859 text" >> /tmp/$MOI.iso8859
    fi
done

echo "entre dans la boucle2"

cut -d":" -f1 /tmp/$MOI.iso8859  | while read FIC
do
  echo recode $FIC
  recode iso8859-15..utf8 $FIC
done

rm -f /tmp/$MOI.* 2>/dev/null

[size=150]Partage distant avec simple serveur web:[/size]

(ce script est intégré au projet ZinuD je poste ici une modification dûe en grosse partie aux variables de langue, vous aurez également à modifier l’emplacement de l’icône à utiliser Zinicon=/path/to/your/icon)

#!/bin/bash
#
# ------------------------------------------------------------------
#	     Pour Debian ZinuD par MerMouY
#	mermouy <AT> gmail <DOT> com
#	Librement inspiré/adapté des travaux de 
#	sputnick in da FreAkY lApPy lAb (c) 2009
#       gilles.quenot <AT> gmail <DOT> com
#	Idea from smecher.
#
#	Utilisant eux-même des scripts mis à disposition sur 
#	http://stackp.online.fr
# ------------------------------------------------------------------
# ------------------------------------------------------------------
#    This program is free software; you can redistribute it and/or
#    modify it under the terms of version 2 of the GNU General Public
#    License published by the Free Software Foundation.
#       (see http://www.gnu.org/licenses/gpl.html).
# ------------------------------------------------------------------
#
#  Questions et infos : http://zinud.youm.org/forums.html
# 
#  Depends:
#    python
#    zenity
#    webserver.py à récupérer sur http://stackp.online.fr/?p=23 et à placer dans votre PATH
#    par exemple dans /usr/local/bin
#
# Pour thunar:
# Onglet "Basic" :
# Name : Partager
# Description : Allow to share content of a directory
# Command : <path to>/ShareIt %F
# Onglet : "Appearance Conditions"
# File Pattern : *
# Appears if selection contains : Directories
#
###VARIABLES
#icône des fenêtres
Zinicon="/usr/share/pixmaps/zinud/horned-logo.png"

### LANGUE ###
Dirchoice="Choix du dossier"
Dirchoiceuptxt="Veuillez indiquer le dossier récipient:"
Dirchoicetxt="Choisissez un dossier à partager:"
Error="Erreur!"
Eth="Choix de l'interface"
Interf="L'interface"
Interfselect="choisie."
Interfaces="Interfaces:"
On="sur"
Ethtxt="Choisissez l'interface réseau à utiliser pour votre partage:"
Noeth="Aucune interface sélectionnée."
Ethnoavail="Aucune interface active disponible!"
Ethnochoice="Veuillez choisir une interface!"
Port="Port"
Porttxt="Choisissez le port à écouter pour votre partage:"
Portselect="sélectionné."
Portnochoice="Aucun port définit ou le port choisi est invalide!\n\nChoisissez en un autre..."
Portak="Le port"
Portaken="sélectionné est déjà pris par le processus PID:" 
Portaken1="Vous pouvez tuer ce processus en exécutant:"
Portaken2="Choisissez un autre port d'écoute..."
Lastask="Voulez vous risquer d'exposer ce dossier sur la toile?"
Dircontent="Le contenu du dossier:"
Rest="sera accessible depuis n'importe quel navigateur muni des informations suivantes:

Adresse Publique:"
Rest1="Communiquez cette adresse à vos correspondants internet.

Adresse Privée:"
Oldlog="Un ancien fichier de log à été trouvé\!\n\nRenommé en "
Hereclick="Cliquez ici pour arrêter le serveur"
Confirm="Confirmation"
Confirmtxt="Sûr? On arrête tout?

Le serveur écoute actuellement:"
Confirmtxt1="Ceci fermera toutes les connections établies!"
Write="Vous devez avoir le droit d'écrire dans ce dossier\!\n\nAbandon..."
Mesg="Entrez un mot sympa..."
Mesgtxt="Entrez un message à afficher à vos visiteurs:"
Mesgdef="Prêt à recevoir vos fichiers, même pas peur!"
Lastask="Voulez vous vraiment ouvrir ce dossier sur la toile pour y recevoir des fichiers?"
Dirsel="Le dossier"
Lastasktxt="sera réceptacle des fichiers envoyés depuis n'importe quel navigateur muni des informations suivantes:

Adresse Publique:"
Lastask2="|==>Communiquez cette adresse à vos correspondants internet.

Adresse Privée:"
Lastask3="|==>Communiquez cette adresse à vos correspondants sur le réseau local.

On continue?"
Hereclickup="Cliquez ici pour arrêter le serveur d'upload"
### /LANGUE ###

DIR=$1
#Adresse externe
Extadr="\n\nhttp://$(wget http://checkip.dyndns.org/ -O - -o /dev/null | cut -d: -f 2 | cut -d ' ' -f 2 | cut -d\< -f 1):"
#Adresse locale
Intadr="\n\nhttp://$(/sbin/ifconfig $Iface | awk '/inet/{gsub(" *inet add?r:","");print $1;exit}'):"

# User entry verification (not empty or ask again)
while [ -z $DIR ] || [ ! -d $DIR ]
do
DIR=$(zenity --entry --title="$Dirchoice" --text="$Dirchoicetxt" --entry-text=`pwd`) || exit 0
done

# Is there more than one interface? 
Ethlistnb=$(/sbin/ifconfig | grep Link | cut -d" " -f1 | sed -e '/lo/d'| grep -c ".")

function Ethlistzen {
/sbin/ifconfig | grep Link | cut -d" " -f1 | sed -e '/lo/d' > /tmp/.ethlist
sed -e 's/^/. /' /tmp/.ethlist > /tmp/.ethlistzen
}
Ethlist=$(cat /tmp/.ethlistzen)

#Choose interface
function Choixeth (){
Iface=$(zenity --list \
--radiolist \
--title="$Eth" \
--text="$Ethtxt" \
--print-column="2" \
--column="$Select" \
--column="$Interfaces" \
$Ethlist
) || exit 0
}

#No interface
if [ $Ethlistnb = "0" ]
then
	zenity --error --text="$Ethnoavail"
	exit 0
#More than one interface so zenity list them
elif [ $Ethlistnb != "1" ]
then
	Ethlistzen
	Choixeth
	while [ -z $Iface ]
	do
		zenity --error --text="$Ethnochoice"
		Choixeth
	done
else
#If only one interface
	Iface=`/sbin/ifconfig | grep Link | cut -d" " -f1 | sed -e '/lo/d'`
fi

# Port to listen on

PORT=$(zenity --entry --title="$Port" --text="$Porttxt" --entry-text="8000") || exit 0

# Is port already in use?

Servpid=$(lsof -t -i :$PORT)
if [ ! -z $Servpid ]; then
    zenity --error --text="$Portaken $Servpid\n\n$Portaken1 <b>kill $Servpid</b>\n\n$Portaken2"
    exec $0
fi

if [ -z $PORT ] || [ $PORT = "0" ] || [ $PORT -gt 65535 ]
then
	zenity --info --title="Port" --text="$Portnochoice"
	exec $0
fi

# Last confirmation and summary

zenity --question --title="$Lastask" --text="$Dircontent \"$DIR\" $Rest<b>$Extadr$PORT</b> $On <b>$Iface</b>\n\n$Rest1<b>$Intadr$PORT</b> $On <b>$Iface</b>\n\n$Lastask3" || exit 0

# Does the log file already exist? If so rename it

if [ -f ~/.ShareIt.log ]
then
DATE=$(sed -n '1p' ~/.ShareIt.log | cut -d '[' -f2 | cut -d ']' -f1 | sed -e "s/\//./g" | sed -e "s/:/./g" | sed -e "s/ /./g")
mv ~/.ShareIt.log ~/.ShareIt.$DATE.log
zenity --info --text="$Oldlog $DIR/.ShareIt.$DATE.log"
fi

# Let's start the server & create the logfile

python /usr/local/bin/webserver.py $PORT 2>&1 | tee ~/.ShareIt.log &

# Create notification area to stop the server

while true; do
    zenity --notification  --text="$Hereclick"

    if zenity --question --title="$Confirm" --text="$Confirmtxt<b>$Extadr$PORT</b> $On <b>$Iface\n$Intadr$PORT</b> $On <b>$Iface</b>\n\n$Confirmtxt1"; then
        while [ ! -z `lsof -t -i :$PORT` ]
	do
        	kill `lsof -t -i :$PORT`
	done
        exit $?
    fi
done

Son petit frère, qui permet de recevoir des fichiers au lieu d’en envoyer (mini serveur d’upload quoi…)

[size=150]Partage de répertoire avec DropIt:[/size]

#!/bin/bash
#
# ------------------------------------------------------------------
#	     Pour Debian ZinuD par MerMouY
#	Librement inspiré/adapté des travaux de 
#	sputnick in da FreAkY lApPy lAb (c) 2009
#       gilles.quenot <AT> gmail <DOT> com
#	Idea from smecher.
#
#	Utilisant eux-même des scripts mis à disposition sur 
#	http://stackp.online.fr
# ------------------------------------------------------------------
#
# +------------------------------------------------------------+
# | mermouy@gmail.com
# |
# | This program is free software; you can redistribute it and/or
# | modify it under the terms of the GNU General Public License
# | as published by the Free Software Foundation; either version
# | 3 of the License, or (at your option) any later version.
# | 
# | This program is distributed in the hope that it will be useful,
# | but WITHOUT ANY WARRANTY; without even the implied warranty
# | of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
# | See the GNU General Public License for more details.
# |
# | You should have received a copy of the GNU General Public
# | License along with this program; if not, write to the
# | Free Software Foundation, Inc., 51 Franklin St,
# | Fifth Floor, Boston, MA  02110-1301  USA
# +------------------------------------------------------------+
# ------------------------------------------------------------------
#
#  Questions et infos : http://zinud.youm.org/forums.html
# 
#  Depends:
#    zenity
#    droopy.py à récupérer sur http://stackp.online.fr/?p=28 et à mettre dans votre PATH
#    par exemple dans /usr/local/bin
#
#icône des fenêtres
Zinicon="/usr/share/pixmaps/zinud/horned-logo.png"
### LANGUE ###
Dirchoice="Choix du dossier"
Dirchoiceuptxt="Veuillez indiquer le dossier récipient:"
Dirchoicetxt="Choisissez un dossier à partager:"
Error="Erreur!"
Eth="Choix de l'interface"
Interf="L'interface"
Interfselect="choisie."
Interfaces="Interfaces:"
On="sur"
Ethtxt="Choisissez l'interface réseau à utiliser pour votre partage:"
Noeth="Aucune interface sélectionnée."
Ethnoavail="Aucune interface active disponible!"
Ethnochoice="Veuillez choisir une interface!"
Port="Port"
Porttxt="Choisissez le port à écouter pour votre partage:"
Portselect="sélectionné."
Portnochoice="Aucun port définit ou le port choisi est invalide!\n\nChoisissez en un autre..."
Portak="Le port"
Portaken="sélectionné est déjà pris par le processus PID:" 
Portaken1="Vous pouvez tuer ce processus en exécutant:"
Portaken2="Choisissez un autre port d'écoute..."
Lastask="Voulez vous risquer d'exposer ce dossier sur la toile?"
Dircontent="Le contenu du dossier:"
Rest="sera accessible depuis n'importe quel navigateur muni des informations suivantes:

Adresse Publique:"
Rest1="Communiquez cette adresse à vos correspondants internet.

Adresse Privée:"
Oldlog="Un ancien fichier de log à été trouvé\!\n\nRenommé en "
Hereclick="Cliquez ici pour arrêter le serveur"
Confirm="Confirmation"
Confirmtxt="Sûr? On arrête tout?

Le serveur écoute actuellement:"
Confirmtxt1="Ceci fermera toutes les connections établies!"
Write="Vous devez avoir le droit d'écrire dans ce dossier\!\n\nAbandon..."
Mesg="Entrez un mot sympa..."
Mesgtxt="Entrez un message à afficher à vos visiteurs:"
Mesgdef="Prêt à recevoir vos fichiers, même pas peur!"
Lastask="Voulez vous vraiment ouvrir ce dossier sur la toile pour y recevoir des fichiers?"
Dirsel="Le dossier"
Lastasktxt="sera réceptacle des fichiers envoyés depuis n'importe quel navigateur muni des informations suivantes:

Adresse Publique:"
Lastask2="|==>Communiquez cette adresse à vos correspondants internet.

Adresse Privée:"
Lastask3="|==>Communiquez cette adresse à vos correspondants sur le réseau local.

On continue?"
Hereclickup="Cliquez ici pour arrêter le serveur d'upload"
###/LANGUE ###

DIR=$1

# User entry verification (not empty or ask again)

while [ -z $DIR ] || [ ! -d $DIR ]
do
DIR=$(zenity --window-icon="$Zinicon" --entry --title="$Dirchoice" --text="$Dirchoiceuptxt" --entry-text=`pwd` || exit 0)
done

# User entry verification (for being a writable dir or exit)

if [ ! d $DIR ] || [ ! -w $DIR ]
then
zenity --error --window-icon="$Zinicon" --title="$Error" --text="$Write"
exit 0
fi

# Interface to listen on

iface=$(zenity --window-icon="$Zinicon" --entry --title="$Eth" --text="$Ethtxt" --entry-text="eth0")
case $? in
  0)
    zenity --info --window-icon="$Zinicon" --title="$Eth" --text="$Interf \"$iface\" $Interfselect";;
  1)
    zenity --error --window-icon="$Zinicon" --title="$Eth" --text="$Noeth"; exit 0;;
  -1)
    zenity --error --window-icon="$Zinicon" --title="$Eth" --text="$Errorzic"; exit 0;;
esac

# Port to listen on

PORT=$(zenity --window-icon="$Zinicon" --entry --title="$Port" --text="$Porttxt" --entry-text="8000")
case $PORT in
  0)
    zenity --info --window-icon="$Zinicon" --title="$Port" --text="$Port \"$PORT\" $Portselect";;
  1)
    zenity --error --window-icon="$Zinicon" --title="$Port" --text="$Portnochoice"; exec $0 $DIR;;
  -1)
    zenity --error --window-icon="$Zinicon" --title="$Port" --text="$Errorzic"; exit 0;;
esac

# Is port already in use?

servpid=$(lsof -t -i :$PORT)
if [ ! -z $servpid ]; then
    zenity --window-icon="$Zinicon" --error --title="$Error" --text="$Portak $PORT $Portaken\n$servpid\n$Portaken2"
    exec $0
fi

# Personnal message to display (optional)

Mesg=$(zenity --window-icon="$Zinicon" --entry --title="$Mesg" --text="$Mesgtxt" --entry-text="$Mesgdef")

# Last confirmation and summary

zenity --window-icon="$Zinicon" --question --title="ShareItUP" --text="$Lastask\n\n$Dirsel \"$DIR\" $Lastasktxt\n\nhttp://$(wget http://checkip.dyndns.org/ -O - -o /dev/null | cut -d: -f 2 | cut -d ' ' -f 2 | cut -d\< -f 1):$PORT\n\n$Lastask2\n\nhttp://$(/sbin/ifconfig $iface | awk '/inet/{gsub(" *inet add?r:","");print $1;exit}'):$PORT\n\n$Lastask3" || exit 0

# Does log file already exist if so rename it

DATE=$(sed -n '1p' .dropit.log | cut -d '[' -f2 | cut -d ']' -f1 | sed -e "s/\//./g" | sed -e "s/:/./g" | sed -e "s/ /./g")
if [ -f $DIR/.dropit.log ]
then
mv .dropit.log .dropit.$DATE.log
zenity --window-icon="$Zinicon" --info --text="$Oldlog $DIR/.dropit.$DATE.log"
fi

# Let's start the server & create the logfile
if [ ! -z "$Mesg" ]
then python /usr/local/bin/droopy.py -m "$Mesg" -d $DIR $PORT 2>&1 | tee $DIR/.drooper.log &
else python /usr/local/bin/droopy.py -d $DIR $PORT 2>&1 | tee $DIR/.drooper.log &
fi
# Create notification area to stop the server

while true; do
    zenity --notification  --text="$Hereclick"

    if zenity --question --title="$Confirm" --text="$Confirmtxt\n$Interf $iface:$PORT."; then
	while [ ! -z `lsof -t -i :$PORT` ]
	do
        	kill `lsof -t -i :$PORT`
	done
        exit $?
    fi
done

[size=150]Quelques commandes plus simples qui font directement appel à des applications:[/size]

Optimisation des fichiers .png avec optipng

[code]# Onglet “Basic” :

Name : Optimiser

Description : Compresse les fichiers .png

Command : Level=$(zenity --scale --value=0 --min-value=0 --max-value=7 --step=1) optipng -o$Level -out opti_%n %f | zenity --progress --pulsate --auto-close --auto-kill --text=“Compression en cours” --title=Optipng

Onglet : “Appearance Conditions”

File Pattern : *.png

Appears if selection contains : Images

[/code]

Recherche de fichiers avec gnome-search-tool (paquet gnome-utils)

[code]# Onglet “Basic” :

Name : Rechercher

Description : Recherche de fichiers

Command : gnome-search-tool –-path %d

Onglet : “Appearance Conditions”

File Pattern : *

Appears if selection contains : Répertoires

[/code]

Analyse de l’espace occupé avec baobab (paquet gnome-utils)

[code]# Onglet “Basic” :

Name : Analyser

Description : Analyser l’utilisation du disque

Command : baobab %d

Onglet : “Appearance Conditions”

File Pattern : *

Appears if selection contains : Répertoires

[/code]

Convertir une image en png

[code]# Onglet “Basic” :

Name : Convertir en png

Description : Convertir en .png

Command : convert %f %f.png

Onglet : “Appearance Conditions”

File Pattern : .jpg;.gif;*.xcf

Appears if selection contains : Images

[/code]

Utiliser en tant que fond d’écran avec nitrogen

[code]# Onglet “Basic” :

Name : Utiliser en tant que fond d’écran

Description : Utiliser l’image en tant que fond d’écran

Command : nitrogen --set-scaled %f

Onglet : “Appearance Conditions”

File Pattern : .png;.jpg;.jpeg;.gif

Appears if selection contains : Images

[/code]

Copier le chemin d’un fichier ou d’un répertoire avec xclip

[code]# Onglet “Basic” :

Name : Copier le chemin

Description : Copier le chemin complet vers le presse papier

Command : echo -n %f | xclip -i

Onglet : “Appearance Conditions”

File Pattern : *

Appears if selection contains : Images répertoires textes vidéos audio autres (tous quoi)

[/code]

Passer en administrateur

[code]# Onglet “Basic” :

Name : Passer en administrateur

Description : Ouvrir cet emplacement en mode Root

Command : gksu thunar %f

Onglet : “Appearance Conditions”

File Pattern : *

Appears if selection contains : Répertoires

[/code]

Éditer en tant que root

[code]# Onglet “Basic” :

Name : Éditer en tant que root

Description : Éditer le fichier en tant qu’administrateur

Command : gksu gnome-text-editor %f

Onglet : “Appearance Conditions”

File Pattern : *

Appears if selection contains : textes

[/code]

Graver une image avec xfburn

[code]# Onglet “Basic” :

Name : Graver l’image

Description : Graver l’image sur un disque vierge

Command : xfburn -i %f

Onglet : “Appearance Conditions”

File Pattern : *.iso

Appears if selection contains : Autres

[/code]

Graver un CD audio avec xfburn

[code]# Onglet “Basic” :

Name : Graver un cd audio

Description : Graver un cd audio avec les fichiers sélectionnés

Command : xfburn -a %F

Onglet : “Appearance Conditions”

File Pattern : .ogg;.mp3;.wav;.flac

Appears if selection contains : Audio

[/code]

Créer un disque de données avec xfburn

[code]# Onglet “Basic” :

Name : Graver les données

Description : Graver les données sur un CD/DVD

Command : xfburn -d %F

Onglet : “Appearance Conditions”

File Pattern : *

Appears if selection contains : Tous

[/code]

Convertir les fichiers .ovg en .avi

[code]# Onglet “Basic” :

Name : Convertir en avi

Description : Converti les fichiers .ovg en .avi

Command : /path/to/ogv2avi %F | zenity --progress --pulsate --auto-close --auto-kill

Onglet : “Appearance Conditions”

File Pattern : *.ogv

Appears if selection contains : Videos

Contenu de ogv2avi:

N=$#;
for ((i=0; i<=(N-1); i++))
do
filename=${1%.*}
mencoder “$1” -ovc xvid -oac mp3lame -xvidencopts pass=1 -o $filename.avi
shift 1
done
[/code]

Monter une image disque avec fuseiso

[code]# Onglet “Basic” :

Name : Monter l’image

Description : Monter l’image iso dans ~/iso

Command : fuseiso -p %f ~/iso

Onglet : “Appearance Conditions”

File Pattern : .iso;.nrg;*.bin;mdf;.img

Appears if selection contains : Autres[/code]

Son petit frère, pour démonter l’image:
Démonter l’image montée avec fuseiso

[code]# Onglet “Basic” :

Name : Démonter l’image

Description : Démonter l’image montée avec fuseiso

Command : fusermount -u %f

Onglet : “Appearance Conditions”

File Pattern : iso

Appears if selection contains : Répertoires[/code]


#3

J’ai pas tout regardé mais pour le conversion de tout les fichier ISO8859 d’un dossier en unicode pourquoi ne pas utiliser cette commande simplement ?


#4

Wahou, gros gros post! ça m’a donné pleins d’idées, comme la conversion vers ogv pour les videos, utiliser feh pour le fond d’écran, catfish pour la recherche…
Super en tout cas! :slightly_smiling:


#5

Bonjour,

“Copier le chemin d’un fichier ou d’un répertoire avec xclip” ne fonctionne pas sur ma config’…ai-je loupé quelque chose ?

Sinon, avec xsel :

fonctionne…

Dans la série “ça sert à rien” :

joue une vidéo sur le desktop (j’avais prévenu, ça sert à rien :wink:) …

@+


#6

Salut,
je ne connaisais pas xsel, c’est parfait pour cette simple utilisation… Merci!
Pour xclip pitetre un “apt-get install xclip”?
Ciao


#7

Re,

…avait bien sûr été fait… :wink:
(mais la remarque n’est dénuée de bon sens…j’avais une fois donné à ma fille un script pour encoder des vidéos avec Mencoder…sauf que Mencoder n’était pas installé sur son PC !)

J’ai aussi essayé en lançant xclip avant de tester la commande : pas mieux…

Mais bon…ça fonctionne avec xsel, et sans la ligne de commande avec xclip, je n’aurais sûrement pas pensé à faire la même chose.

Merci ! :slightly_smiling:

@+


#8

bonsoir

j’ai copié-collé un de mes DVD vidéo sur mon DD et je voudrais le lire avec mon lecteur VLC, via un clic droit.

Etant sous Xfce, j’ai configuré une action personnalisée avec la commande vlc %f.
en faisant un clic droit sur le rép, le menu “Lire avec gmplayer apparait”, sauf que la lecture ne démarre pas sur le début du DVD (le menu en général) mais en plein milieu du DVD…

En lançant d’abord VLC, puis en faisant Fichier/ouvrir le répertoire, la lecture démarre pourtant bien au début du DVD.
Sur un DVD, y a t-il un fichier précis à lancer ? Je pourrais du coup le mentionner dans ma commande…
J’ai bien essayé avec les différentes options dans la commande %f, %F, etc. mais rien n’y fait.
Avez-vous une idée ?


#9

Bonjour,

Curieux…chez moi vlc %f fonctionne…

Essayes :
vlc --dvdnav-menu %f

:wink:

@+


#10

Et pourquoi il y a un fil spécial pour les scripts ?


#11

salut PyNux

merci pour ta réponse … je vais essayer ça.

Chez toi, la commande vlc%f marche pour tous les répertoires de DVD et la vidéo commence bien toujours au début du DVD ?


#12

super ! la commande vlc --dvdnav-menu %f fonctionne parfaitement :stuck_out_tongue:

encore merci PyNux


#13

Ma maigre contribution :

Splitter un fichier Cue/Flac
Dépendances : cuetools convmv shnsplit

[code]#!/bin/bash

cue+lossless2flacs

if [ ! $# == 1 ]; then
echo "Usage: $(basename “$0”) "
exit
fi

CUE="$1"
TOPDIR=$(dirname “$1”)
LSSLSS="$TOPDIR"/$(ls “$TOPDIR”|egrep ‘[fF][lL][aA][cC]$|[aA][pP][eE]$|[wW][vV]$|[wW][aA][vV]$’)

echo "cue file is "$1""
echo “lossless image file is “$LSSLSS””

mkdir “$TOPDIR”/tmp ;
shnsplit -d “$TOPDIR”/tmp -w -f “$CUE” -t %n_-%t -o flac “$LSSLSS” ;
rm “$TOPDIR”/tmp/00
-_pregap.flac ;
convmv --notest -f utf7 -t utf8 “$TOPDIR”/tmp/.flac ;
cuetag “$CUE” “$TOPDIR”/tmp/
.flac ;
mv “$TOPDIR”/tmp/*.flac “$TOPDIR”/ ;
rm -rf “$TOPDIR”/tmp ;
exit[/code]

Conversion d’un fichier audio en mp3 qualité VBR0
Dépendances : gstreamer0.10-plugins-base gstreamer0.10-plugins-base-apps gstreamer0.10-plugins-good gstreamer0.10-plugins-bad

[code]#!/bin/bash

for TRACK in “$@” ; do

allow filenames containing dots such as “an artist feat. some_other_artist”

MP3OUT=$(ls “$TRACK” |sed ‘s/(.)…/\1/’)

gst-launch filesrc location="$TRACK" ! decodebin! audioconvert !
lame name=enc mode=4 vbr=4 vbr-quality=0 ! xingmux ! id3mux !
filesink location="$MP3OUT.mp3"
done
[/code]

Sources : ici et


#14

J’ai refait le script pour jouer n’importe quelle musique dans mpd. Voir ici :
thuban.toile-libre.org/Programma … s_mpd.html


#15

Ma modeste contribution :

Monter une image iso/img :

Dérawtiser des photos en 800x600 (utile pour jeter un œil rapide avant de retoucher) :

Redimensionner des images en 800x600 ou 600x800 (pour envoyer à la famille c’est largement suffisant) :

Sachant que, je ne sais pas comment c’est chez les autres, mais sous Thunar :
%f = Chemin du premier fichier sélectionné
%F = Chemin de tous les fichiers sélectionnés
%N = Noms des fichiers sélectionnés (sans les chemins)


#16

Salut,

Pour les mettre tous en vrac et être sûr de ne pas les retrouver avec la fonction rechercher.
Où alors pour ne pas avoir la peine de les rédiger pour le wiki :slightly_smiling:


#17

Bonjour à tous!
Sur mon blog http://tuxnotes.blogspot.com/ j’ai mis au point ou parfois copié/modifié des “custom actions” qui pourraient vous intéresser ou donner des idées.
Mon “petit dernier” fait un backup ponctuel d’un fichier ou même d’un dossier. Il fonctionne mais je ne vois pas comment le modifier pour traiter plusieurs fichiers à la fois.
Voici la commande:
cp -a %f %f.bak
J’arrive à en sélectionner plusieurs en mettant %F au lieu de %f mais à part ça, il ne se passe rien d’autre. Any idea?