Com certeza todos iriam me crucificar se não postasse alguns exemplos
práticos de scripts para serem usados com esse recurso. Claro que vou dar
uma palhinha, mas o intuito do artigo não é ensinar a criar scripts, mas
informar como esse recurso pode ser usado para melhorar a interação com
usuários e facilitar a sua vida.
# Open file
for uri in "$NAUTILUS_SCRIPT_SELECTED_URIS"; do
gnome-open "$uri" &
done
O objetivo é abrir o arquivo no programa padrão, coisa que o próprio
duplo clique com o mouse pode fazer :-) Mas é um ótimo exemplo de como o laço funciona.
# Open as root
for uri in "$NAUTILUS_SCRIPT_SELECTED_URIS"; do
gnome-sudo "gnome-open $uri" &
done
Abre o arquivo no programa padrão com permissões de root, claro, perguntando a senha através do gnome-sudo.
# Convert MP3 to WAV
for file in "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"; do
out_file=`echo "${file%mp3}wav"`
gdialog --title "CONVERTER MP3 PARA WAV" --yesno "Vou converter o arquivo:
$file
para:
$out_file
no formato WAV.
Você quer continuar?" 0 0
[ "$?" -ne "0" ] && exit 1
resultado=`lame --decode "$file" "$out_file" 2>&1`
if [ "$?" -ne 0 ]; then
gdialog --title "RESULTADO" --msgbox "$resultado" 0 0
else
gdialog --title "RESULTADO" --msgbox "CONVERTIDO COM SUCESSO!" 0 0
fi
done
Esse é mais complexo, usa Xdialog e lame, ele abre uma caixa de
confirmação, se apertar cancel ou esc ele aborta a operação. O
arquivo é criado na mesma pasta do arquivo mp3, com extensão wav.
# Convert OGG to WAV
for file in "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"; do
out_file=`echo "${file%ogg}wav"`
gdialog --title "CONVERTER OGG PARA WAV" --yesno "Vou converter o arquivo:
$file
para:
$out_file
no formato WAV.
Você quer continuar?" 0 0
[ "$?" -ne 0 ] && exit 1
resultado=`ogg123 --device=wav "$file" -f "$out_file" 2>&1`
if [ "$?" -ne 0 ]; then
gdialog --title "RESULTADO" --msgbox "$resultado" 0 0
else
gdialog --title "RESULTADO" --msgbox "CONVERTIDO COM SUCESSO!" 0 0
fi
done
Aqui é o mesmo do exemplo acima, mas para converter arquivos Ogg vorbis.
# Convert to JPEG
for file in "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"; do
out_file=`echo "$file" | sed 's/\.\w*$/.jpg/'`
gdialog --title "CONVERTER PARA JPEG" --yesno "Vou converter o arquivo:
$file
para:
$jpg_file
no formato JPEG.
Você quer continuar?" 0 0
[ "$?" -ne 0 ] && exit 1
resultado=`convert "$file" jpeg:"$out_file" 2>&1`
if [ "$?" -ne 0 ]; then
gdialog --title "RESULTADO" --msgbox "$resultado" 0 0
else
gdialog --title "RESULTADO" --msgbox "CONVERTIDO COM SUCESSO!" 0 0
fi
done
Aqui temos o uso o ImageMagick para converter imagens para jpeg. Pode
ser alterado para qualquer formato e até mesmo ser criado um menu, onde
o usuário seleciona o formato que quiser.
Aqui não estou disposto a discutir sobre como criar scripts, esses são
exemplos apenas, use sua imaginação e poste suas contribuições na área
de scripts do VOL.
Nessa página você encontra muitos outros scripts:
O problema é que a grande maioria aparentemente não funciona diretamente,
pois, como disse anteriormente, o nautilus não reconhece mais o cabeçalho,
esperando então que os comandos funcionem em um terminal. Posso estar
errado, mas aqui na minha máquina não foi possível rodar esses scripts, como
não sei muito de Perl ou Python, não posso testar seu funcionamento. Pode ser
que os desenvolvedores do Gnome venham a alterar esse comportamento ou que
eu esteja errado, afinal, encontrei muito pouca ou quase informação alguma.
Só uma dica, para que seu script processe vários arquivos selecionados, não
esqueça de usar o laço for, como usado no primeiro exemplo, já que os arquivos
são separados por quebra de linha, fica fácil processar arquivos em seqüência.
Um detalhe curioso, é que aqui, o nautilus está processando os arquivos em ordem alfabética inversa.