Nautilus Scripts
Já ouvi falar muito sobre o services menu do KDE, mas pelo que vejo ninguém realmente explora/sabe todos os recursos que o Gnome tem. Por isso venho aqui explicar esse maravilhoso recurso, que vai revolucionar a forma como é usado o mouse no nautilus.
Parte 5: Exemplos de scripts
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
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
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
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
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
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.
Agora com o lance do nautilus scripts, vou diminuir ainda mais o uso do terminal no X. Já estou com umas idéias por aqui.
Parabéns pelo artigo Lordello, sempre com assuntos inéditos no VOL!
[]'s,
Fábio