@All
Pensando em criar uma pequena GUI que fosse acessada através do menu de contexto no Nautilus, comecei a pesquisar em como usar o
zenity com o
nautilus-actions. Lá vi um artigo sobre o
autoglade [
1,
2], achei-o interessante e fui atrás do tutorial (infelizmente o SF apagou o wiki do developer; no entanto, há uma versão PDF disponível no Google Docs - disponível
aqui).
Em um super resumo, o que o autoglade faz é carregar uma GUI criada com o Glade3 (importante - o Glade 2 é bem limitado e 'chato' para desenhar a GUI de interesse) dentro de um script bash, com a vantagem de carregar dentro do script os valores atribuídos a determinados
widgets automagicamente. Dessa forma, se o script necessitar de uma GUI que tenha mais features do que as fornecidas pelo
zenity, vale a pena usar o
autoglade [
1,
2] para carregar a GUI criada no Glade3 e então usá-la no teu script bash. Abaixo eu mostro umas
screenshots de um script bash bem simples que eu uso no terminal, que é para impressão em lote (batch print) de documentos criados no OpenOffice. Eu criei o script porque eu precisava às vezes imprimir uma via em uma impressora (ink jet) e a outra via em outra (laser jet). E a idéia de criar uma ação no nautilus foi porque como o script é bem 'tosco' (i.e. sem as configurações de opções - algo do tipo --print
impressora, --copias
N, como também ter uma rotina com shift para acessar todas as opções, blahblah, sem contar ter que mudar o diretório para a pasta contendo os arquivos, etc), o uso do nautilus-actions tornou-se conveniente para que o próprio aplicativo suprisse essas deficiências, de forma que eu escolho os arquivos, a GUI é então carregada, eu faço as escolhas e pronto, o script processa o desejado (reparem na segunda imagem que as opções dos botões já representam os valores requeridos, que
são carregados pelo autoglade automagicamente (logo eu não preciso fazer testes com if para escolher os valores, eu os uso diretamente!).
1 - Ação tornada visível após a seleção dos arquivos2 - Carregamento da GUI com as opções a serem escolhidasPor fim o processamento ocorre sem maiores problemas (nota - como disse, no presente exemplo eu uso um script 'tosco', sem qualquer tratamento de erro, mas isso pode ser feito e até usado o autoglade para gerar uma GUI contendo a mensagem de erro, há previsão na aplicação
)
Fica aí a dica.
Danpos.