Arquivo de junho \26\UTC 2008

Re-especificando pastas especiais do GNOME

Um comportamento do GNOME/Ubuntu para mim é estranho. Nas versões anteriores, os nomes de pastas importantes eram traduzidas, cada qual em seu próprio idioma, por exemplo, a pasta ‘Templates’ chamava-se ‘Modelos’, a pasta ‘Documents’ chamava-se ‘Documentos’ e assim por diante. Mas, vou repetir, mas…a pasta ‘Desktop’ sempre chamou-se ‘Desktop’, a razão disso era óbvia para mim, a área de trabalho dum usuário é mui acessada e demasiadamente comprida sua tradução em diversos idiomas, mas enfim, traduziram ‘Desktop’ para ‘Área de Trabalho’, efeito colateral ? Sim, especialmente para quem usa o terminal :

cd Área\ de\ Trabalho

Toda referencia a ela, dá mais trabalho, seja por causa da acentuação ou seja por causa da barra invertida precedendo os espaços. Além disso, pessoalmente, misturar a acentuação em nome de pastas é algo que me irrita. Podemos corrigir ?
Sim, podemos. Há duas alternativas, você pode modificar o sistema para todas as novas contas a serem criadas ou apenas para uma conta específica.

Modificando as pastas GNOME para todas as novas contas

Dê um ALT+F2 e execute : gksu gedit /etc/xdg/user-dirs.defaults
Neste arquivo tem a relação de como se chamará as pastas do seu sistema, altere-o conforme sua necessidade. Eu por exemplo, alterei todas deixando-as em minúsculo e sem acentuação, veja :

# Default settings for user directories
#
# The values are relative pathnames from the home directory and
# will be translated on a per-path-element basis into the users locale
DESKTOP=desktop
DOWNLOAD=downloads
TEMPLATES=modelos
PUBLICSHARE=publico
DOCUMENTS=documentos
MUSIC=musicas
PICTURES=imagens
VIDEOS=videos
# Another alternative is:
#MUSIC=Documents/Music
#PICTURES=Documents/Pictures
#VIDEOS=Documents/Videos

Vê ? Essa solução é mamão com açúcar de tanto fácil.
Porém, só vale para os novos usuários que forem criados no sistema. Vamos a próxima solução que fará a mesma correção, porém com um usuário já criado.

Modificando as pastas GNOME para uma conta já existente

A solução é praticamente a mesma, só muda mesmo o nome do arquivo. Edite o arquivo ~/.config/user-dirs.dirs, se ele não existir, crie-o. Dê um ALT+F2 e execute : gedit /home/suaconta/.config/user-dirs.dirs e recrie-o com o seguinte exemplo :

XDG_PUBLICSHARE_DIR="$HOME/publico"
XDG_DOWNLOAD_DIR="$HOME/downloads"
XDG_MUSIC_DIR="$HOME/musicas"
XDG_VIDEOS_DIR="$HOME/videos"
XDG_DESKTOP_DIR="$HOME/desktop"
XDG_DOCUMENTS_DIR="$HOME/documentos"
XDG_TEMPLATES_DIR="$HOME/modelos"
XDG_PICTURES_DIR="$HOME/imagens"

Depois disso, você deve criar as pastas acima, caso contrário a solução não funcionará. No exemplo acima, basta executar :

cd
mkdir downloads musicas videos desktop documentos modelos imagens

Obs: o comando ‘cd’ sem nenhum parametro corresponde ir a pasta $HOME.

Se você tiver uma pasta comum entre todas as contas poderá usar o endereço na relação acima.

Vai recriar um novo LiveCDDVD ?

Eu tenho o costume de recompilar minha instalação e recriar um novo LiveCD e aplicando as duas modificações acima é essencial para que o novo liveCD/DVD já responda pós-instalação com esses diretórios. Mas para me certificar mesmo que funcione também acrescendo a seguinte estrutura no /etc/skel :

cd /etc/skel
sudo mkdir downloads musicas videos desktop documentos modelos imagens

Depois basta recompilar com o programa remastersts e todas suas próximas instalações vão seguir suas novas orientações de pastas do GNOME.

Observações importantes

As alterações só começam a valer quando você reiniciar seu login.
As alterações não removem as pastas antigas.
O gnome continuará a usar o nome ‘Área de Trabalho’, porém irá se referir a pasta que você especificou e não ~/Área\ de\ Trabalho.

Conclusão

Esse problema me lembra uma tradução que encontrei num livro, na época estava aprendendo a programar em Delphi e o livro fazia referencias a um componente chamado ‘Chanfradura’ e eu nunca achava este componente. Mais tarde fui descobrir que o livro estava se referindo ao componente chamado ‘Bevel’.
Aqui ocorre o mesmo, quem fez a tradução da palavra ‘Desktop’ certamente não imaginou que sua tradução iria também ser usada como nome de pasta. Eu gosto muito da língua portuguesa, mas tecnólogos tem que saber lidar com nomes estrangeiros o tempo todo, assim seria melhor não tentar traduzir nomes de pastas importantes cujo efeito colateral é pior que o benefício. Será que teremos uma correção disso na próxima versão do Ubuntu ou teremos de engolir ‘Área\ de\ Trabalho’ pelo resto da vida ?

22 Comentários

Os robôs da Mozilla…"eles tem um plano" :)

Os robôs da Mozilla, eles tem um plano.

Vai no seu Firefox e digita na barra de url :

about:robots

Nunca ví tanto conteúdo de ficção cientifica por cm2. :)
Algumas eu já sabia, mas outras tive que pesquisar (o google é seu amigo), vamos lá ao resultado da pesquisa :

klaatu barada nikto

Uma incógnita para mim, mas esta frase faz alusão ao Filme O dia em que a Terra parou. Klaatu era um personagem representado por Michael Rennie.

Robôs não podem ferir um ser humano ou, por omissão, permitir que um ser humano sofra algum mal.

É uma das três leis de robótica do escritor de ficção cientifica Isaac Asimov

Robôs viram certas coisas que a sua gente não acreditaria

Esta frase foi retirada do filme Blade Runner

Robôs são seus amigões de plastico

Esta frase vem dum livro O Guia do Mochileiro das Galáxias de Douglas Adam que mais tarde se tornaria um filme, essa frase faz referencia a Sirius Cybernetics Corporation que segundo a wikipedia é responsável pela criação de robôs e serviços cibernéticos.

Robôs possuem traseiros brilhantes de metal que não devem ser mordidos.

Esta frase foi retirada do desenho animado Futurama e refere-se ao personagem Bender, que no desenho animado é um robô está sempre violando as três leis de robótica.

E eles têm um plano.

É a celebre frase de BattleStar Galactica, um seriado de ficção cientifica que é marcado pelo conflito de humanos e robôs-humanóids conhecidos como Cylons. Nesse seriado, os humanos são atacados de forma devastadora e seus 12 planetas não suportam mais vidas humanas e os pouco mais de 300.000 sobreviventes são obrigados a procurar um planeta lendário chamado Terra.

Conclusão

Será que preciso de uma conclusão ?
Ahh, sim. Se você clicar no botão Tentar de novo, os robôs da Mozilla pregam-lhe uma brincadeira.

10 Comentários

Você já usou as fontes "Liberation" ?

As fontes Liberation na realidade não é apenas uma única fonte, o mais sensato é dizer que é um nome para a família composta pelas fontes Liberation Sans, Liberation Serif e Liberation Mono, todas elas fontes True-Type. O que há de espetacular nessas fontes ? Bem, essas fontes são milimetricamente compatíveis com outras fontes muito usadas : Arial Monotype, Times New Roman e Courier New. Além disso, as fontes Liberation possuem licença GPL e com exceção para documentos, isto é, pode ser usado por aplicativos compatíveis com a GPL e no caso de documentos criados com essa família de fonte a licença GPL não é aplicável, daí a exceção GPL.

Para instalar essas fontes, instale via Synaptic o pacote ttf-liberation ou se preferir a linha de comando :

sudo apt-get -y install ttf-liberation

Se você quer ter uma idéia de uso dessas fontes poderá simplesmente mudar a aparência do seu desktop trocando as habituais fontes Serif pelas Liberation, vá no menu principal do GNOME->Preferencias->Aparencia, selecione a guia “Fontes” e veja suas fontes em uso :

Forma ou renderização das fontes

Essas fontes tem uma boa reputação, mas que tal troca-las para Liberation :

Use por alguns dias, se gostar permaneça com elas e faça uso delas em seus documentos e afins.
Um detalhe importante, selecione a renderização apropriada para seu tipo de monitor senão a exibição das fontes poderão ser prejudicadas.

9 Comentários

Cadê meu p7zip que funcionava aqui ?

Essas atualizações constantes do Ubuntu que são quase diárias começam a dar nos nervos.A bola da vez é o fileroller, um frontend para vários compactadores, dentre eles o p7zip. Com o fileroller voce compacta pastas/arquivos diretamente no menu de contexto do nautilus. Durante várias gerações o fileroller tem funcionado bem, e é um aplicativo indispensável no ambiente GNOME. Mas, hoje o fileroller resolveu aprontar comigo, veja :

7-Zip agora com erro usando o file-roller

Como eu preciso de usar o formato ‘7z’, então tenho que voltar as raízes e executar na linha de comando :

7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on nome-arquivo-compactado.7z /localizacao/da/pasta/a/compactar

Sim, funciona. Mas olha o tamanho da sentença, ninguém merece, né ? Mesmo com um alias para isso, é muito inconveniente usar a linha de comando num desktop gráfico, portanto, lá vai meu apelo :

Por favor, fileroller… volta para mim nas atualizações de amanhã :)

14 Comentários

Erros de transcrição no WordPress

Sim, existem erros tipográficos e de transcrição nos meus artigos postados no WordPress.

O engine do WordPress faz algumas modificações nos meus artigos, ele “transcreve” meus caracteres ASCII para caracteres de mesma aparência, porém incompatíveis com caracteres ascii.
Isso é um problema real quando peço ao leitor fazer uma modificação num arquivo de configuração do sistema, e ele pega um trecho do artigo e copia/cola para onde é importante.

Quer um exemplo? Muitas vezes sugerí que você executasse algo assim :

sudo apt-get -y --purge pacote-lixo

Mas se eu não interví na transcrição talvez você tenha visto/copia/colado e executado isso :

sudo apt-get -y –purge pacote-lixo

No exemplo acima, ele trocou -- por –, que quando foi executado no seu sistema provavelmente deu erro de sintaxe. Mas e quando essas alterações se dão em arquivos textos de configuração do sistema ? Aí a coisa fica muito pior porque erros dessa natureza tem como consequencia desde a não-funcionalidade pretendida como também deixar seu sistema instável ou inoperante. Num certo artigo, eu postei a seguinte alteração no /etc/init.d/mountdevsubfs.sh :

Encontre essas linhas e descomente-as retirando o “#” do inicio delas ficando assim :

#
# Magic to make /proc/bus/usb work
#
mkdir -p /dev/bus/usb/.usbfs
domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
ln -s .usbfs/devices /dev/bus/usb/devices
mount --rbind /dev/bus/usb /proc/bus/usb

Mas no artigo apareceria assim :

Encontre essas linhas e descomente-as retirando o “#” do inicio delas ficando assim :

#
# Magic to make /proc/bus/usb work
#
mkdir -p /dev/bus/usb/.usbfs
domount usbfs “”; /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
ln -s .usbfs/devices /dev/bus/usb/devices
mount –rbind /dev/bus/usb /proc/bus/usb

Se você não notou a diferença, eu explico, as "aspas" se tornam “aspas comerciais”, dois traços seguidos -- se torna isso –. No exemplo acima, se você copiou o texto publicado e colou por cima no seu arquivo de configuração, a funcionalidade das suas portas USB podem ter perdido sua funcionalidade.

Para evitar esse tipo de erro de transcrição de caracteres ASCII importantes no wordpress, eu sempre edito os artigos usando HTML puro e ando com essa tabela HEXADECIMAL de caracteres ASCII em HTML :

http://www.ime.usp.br/~glauber/html/acentos.htm

E os utilizo assim que for usar algum caractere importante. Imagina o trabalho que isso dá !
E toda vez que tenho que reeditar um artigo porque algum erro foi encontrado, o próprio WordPress em muitas oportunidades “corrige” minhas referencias hexadecimal HTML para “caracteres normais” e começa tudo de novo. Não é apenas uma questão de Search/Replace porque no caso das aspas eu as utilizo também em TAGs HTML e essas não podem ser convertidas para ASCII-HEXA-HTML de forma automática.

Por essa razão, toda vez que você encontrar “aspas” dentro dum artigo, esteja atento que provavelmente estou me referindo a essa "aspas" . Em programação e administração de servidores, aspas, traços, maior/menor que, crase, pipe, etc… são muito utilizados e dá um trabalhão refazê-los usando ASCII-HEXA-HTML. Por isso, peço a sua compreensão para quando houver erros dessa natureza então aponta-los.

Antigamente as tags [PRE] sempre mantinham o aspecto ASCII, mas depois de alguma atualização do WordPress isso se perdeu e todos os artigos anteriores tiveram a transcrição dos códigos ascii para ascii-ala-wordpress. Os artigos com maiores potenciais de erros eu simplesmente excluí porque não dava para prejudicar alguém deliberadamente depois que soube do problema. Já apontei esse problema para os desenvolvedores do WordPress e a solução que me deram foi usar a tabela ASCII-HEXA-HTML e editar em puro HTML, e isso eu venho fazendo desde então. Um dia talvez a tag [PRE] volte a funcionar conforme era antes (ou já voltou, mas nunca conferí), mas eu não posso arriscar usa-la porque se ela retornar a fazer a transcrição ascii ala-wordpress terei de excluir muito mais artigos do que foi da última vez.

Concluindo, não use o copiar/colar de modo desenfreado. Esteja atento ao uso de tipografias não-ASCII que talvez esteja colando dentro de arquivos importantes.

Um abraço a todos,

H.

5 Comentários

VirtualBox Personal Edition para Ubuntu Hardy Heron

Não faz muito tempo que postei o artigo “VirtualBox no Ubuntu 8.04”, o qual fiz referencia a instalação do VirtualBox Open Source Edition (virtualbox-ose). Mas a versão OSE tem algumas limitações que podem atrapalhar pela falta de recursos que a versão Personal ou Comercial possui :

  • Possui um servidor RDP completo integrado, permitindo assim que usuários se conectarem com qualquer cliente RDP e rodar apenas um único aplicativo ou uma sessão inteira.
  • Suporte a USB (mesmo numa sessão interativa usando o RDP)
  • USB over RDP
  • iSCSI initiator
  • Sempre mais atualizada do que a versão OSE

VirtualBox Personal Edition é uma licença comercial que lhe é permitido usa-lo sem pagar nada desde que seja para uso Pessoal ou para Avaliação. Se você gostar e quiser instalar na sua empresa, então terá de pagar por ele. Se você nem sabe do que se trata os recursos acima, então provavelmente a versão OSE é suficiente para você e neste caso siga as orientações no artigo VirtualBox no Ubuntu 8.04.

1) Ferramentas de compilação

É necessário num dos passos compilar o módulo vboxdrv e sem os programas corretos instalados você não será capaz disso. Por essa razão execute no terminal :

sudo apt-get -y install module-assistant debhelper dpkg-dev gettext \
html2text intltool-debian patch po-debconf dh-make debian-keyring \
build-essential subversion git-core

2) Descarregue o arquivo para a instalação

Visite a página :

http://www.virtualbox.org/wiki/Downloads

Clique no link :

Binaries (all platforms)

Descarregue a versão apropriada para Ubuntu Hardy Heron 8.04.

3) Removendo versão virtualbox-ose (se estiver instalado)

Não é possível instalar a versão comercial do VirtualBox se houver a versão OSE instalada, por isso necessitamos de remove-la antes :

sudo apt-get remove -y --purge virtualbox-ose*

Com a versão OSE removida poderemos prosseguir com a instalação.

4) Iniciando a instalação

Dê um duplo clique no arquivo que foi descarregado, a saber, o arquivo virtualbox_[versao]_Ubuntu_hardy_i386.deb, ou se preferir o terminal :

sudo dpkg -i /onde/descarreguei/o/arquivo/virtualbox_[versao]_Ubuntu_hardy_i386.deb
sudo apt-get install -f

A instalação é bastante intuitiva, mas faz parte do processo de instalação fazer a seguinte pergunta ao operador :

Should the vboxdrv kernel module be compiled now?

Traduzindo para o bom português :

Gostaria que fosse compilado o modulo para o kernel vboxdrv agora?

Vamos responder “Não”, porque faremos isso no próximo passo.

5) Compilando o módulo vboxdrv

Se você não compilar um módulo chamado de ‘vboxdrv’, ao tentar rodar alguma VM vai tomar a seguinte mensagem de erro :

The vboxdrv kernel module is not loaded.

para resolver essa questão, execute no terminal :

sudo /etc/init.d/vboxdrv setup

Apesar dos módulos serem carregados dinamicamente, eu recomendo reiniciar o computador a cada atualização.
Preste atenção : O comando acima terá de ser executado toda a vez que você atualizar o kernel de seu sistema.

6)Acrescente os usuários do VirtualBox ao grupo ‘vboxusers’

Voce deverá acrescentar você e todos os usuários do VirtualBox ao grupo ‘vboxusers’, sem isso o VirtualBox simplesmente não funcionará. Execute no terminal a seguinte sentença para cada usuário do VirtualBox :

sudo adduser [login] vboxusers

Parece simples, mas muita gente esquece de adicionar a sí mesmo, e colhe problemas ao executar o VirtualBox.

7) Detecção e funcionamento de dispositivos USB

O acesso a dispositivos USB não é público, isto é, nem todos os programas tem acesso a dispositivos USB que foram plugados. Você tem que dar essa permissão também ao VirtualBox. Dê um ALT+F2 e execute :

gksu gedit /etc/init.d/mountdevsubfs.sh

Encontre essas linhas e descomente-as retirando o “#” do inicio delas ficando assim :

#
# Magic to make /proc/bus/usb work
#
mkdir -p /dev/bus/usb/.usbfs
domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
ln -s .usbfs/devices /dev/bus/usb/devices
mount --rbind /dev/bus/usb /proc/bus/usb

Salve o arquivo e depois saia do editor. Agora execute no terminal :

sudo /etc/init.d/mountdevsubfs.sh start

A partir daí, os dispositivos USB estarão visiveis as “Virtual Machines”.

8) Permissões para mass-storage e devices USB

Permitir o VirtualBox detectar dispositivos USBs é interessante, mas insuficiente para ele conseguir montar dispositivos USB ou acessar o que há dentro deles. Não é culpa do VirtualBox porque somos nós que temos de definir quem pode ou não acessar tais dispositivos e por padrão o grupo ‘vboxusers’ não tem acesso a nada que diz respeito ao sistema de arquivos do hospedeiro. Para mudar essa situação dê um ALT+F2 e execute :

gksu gedit /etc/udev/rules.d/40-permissions.rules

E procure pelas linhas :

# USB serial converters
SUBSYSTEM=="usb_device", GOTO="usb_serial_start"
SUBSYSTEM==”usb”, ENV{DEVTYPE}==”usb_device”, GOTO=”usb_serial_start”
GOTO="usb_serial_end"
LABEL="usb_serial_start"
ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", \
MODE="0660", GROUP="dialout"

LABEL="usb_serial_end"

Note a linha em negrito, será alí que você precisará acrescentar um GROUP="vboxusers" ficando assim :

ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", \
GROUP="vboxusers", MODE="0660", GROUP="dialout"
LABEL="usb_serial_end"

Salve o arquivo e saia do editor.
Apenas as alterações acima são suficientes no meu caso, mas para algumas pessoas mesmo com as modificações sugeridas ainda não conseguem acesso e/ou permissões aos dispositivos USBs, se voce é um deles então vai ter que sair do método Rocky (que não cansa de apanhar dos inimigos) e partir para a ignorância e usar o método Chuck Norris e dar um roundhouse kick, vá até o terminal e descubra qual é o ID do grupo ‘vboxusers’, execute :

$cat /etc/group |grep vboxusers
vboxusers:x:124:fulano

Anote o ID acima, no meu exemplo ID “124”.
Agora dê um ALT+F2 e execute :

gksu gedit /etc/fstab

Acrescente as linhas :

# vboxusers com acesso a usbfs
none /proc/bus/usb usbfs devgid=124,devmode=664 0 0

Troque o ID 124 pelo ID usado pelo grupo ‘vboxusers’.
ou se estiver despreocupado com permissões as estes dispositivos USB :

none /proc/bus/usb usbfs defaults,devmode=0666 0 0

Salve o arquivo e saia do editor.
Dê um ALT+F2 e execute :

gksu gedit /etc/init.d/mountkernfs.sh

Procure pela linha onde houver o comentário :

# Mount spufs, if Cell Broadband processor is detected

Acima dessa linha (portanto fora do laço IF), acrescente :

# Montar usbfs para uso do VirtualBox
domount usbfs usbdevfs /proc/bus/usb -onoexec,nosuid,nodev,devgid=124,devmode=664

Salve o arquivo e saia do editor.
Para testar as modificações, execute no terminal :

sudo /etc/init.d/mountkernfs.sh start

As dicas acima foram retiradas deste outro artigo em inglês. Se sua USB ainda não estiver funcionando então reveja os passos, porque o roundhouse kick nunca falha :)

Reinicie o computador e desfrute do VirtualBox

Para executar o VirtualBox basta ir no menu do GNOME->Ferramentas do Sistema->Sun xVM VirtualBox :
Tela de carregamento do VirtualBox

Manual do VirtualBox

O manual pode ser obtido no seguinte endereço :

http://www.virtualbox.org/wiki/Downloads

Criando um máquina virtual Windows

Instruções detalhadas de como criar uma máquina virtual Windows estão no artigo :
https://hamacker.wordpress.com/2008/04/30/virtualbox-no-ubuntu-804/

Criando uma bridge para o VirtualBox

Instruções detalhadas de como criar uma bridge com uma máquina virtual Windows estão no artigo :
https://hamacker.wordpress.com/2008/04/30/virtualbox-no-ubuntu-804/

Compartilhando pastas entre máquina virtual e linux

Instruções detalhadas de como compartilhar pastas entre máquina virtual windows e linux estão no artigo :
https://hamacker.wordpress.com/2008/04/30/virtualbox-no-ubuntu-804/

Conclusão

O VirtualBox é muito bom e rápido, uma instalação típica do Windows 2000 professional levou apenas 12 minutos, incluindo o boot pelo CD. O uso da versão Personal ou OSE depende muito do que se pretende fazer, na maioria das vezes a OSE atende plenamente.

22 Comentários

Como compartilhar pastas no virtualbox

Quando fiz o artigo “VirtualBox no Ubuntu 8.04”, muita gente perguntou (inclusive em PVT) como se compartilha pastas entre a máquina virtual (VM) Windows e as pastas no Linux, eu não abordei esse assunto no artigo porque se você fuçar você descobre facilmente como fazer isso. Mas enfim, essa pergunta ainda me persegue em PVT e também em lista de discussão, e para ter um link para responder a pergunta criei esse pequeno post.

Compartilhando pastas entre VM e anfitrião

O Virtualbox permite a VM acessar pastas do seu sistema Linux, com isso você pode compartilhar arquivos entre ambos. Faça assim :
a) Carregue sua Virtual Machine
b) Depois de sua VM completamente carregada acesse o menu do VirtualBox em Dispositivos->Pastas compartilhadas :
compartilhando pastas no virtualbox
c) Agora clique no ícone de adicionar compartilhamento e informe as pastas do seu sistema Linux que estarão sendo compartilhadas e o nome de compartilhamento que você irá dar para cada uma dessas pastas :
acrescentando pastas compartilhadas
d) Dentro da sua VM, é fácil acessa-las, basta mapear \\VBOXSRV\nome-do-compartilhamento ou diretamente do ícone no Windows Meus Locais de Rede->Toda a Rede->VirtualBox Shared Folders :
acessando pastas compartilhadas pela VM
Se você vai fazer acesso constante, recomendo mapeá-la :
mapeando uma pasta compartilhada

Conclusão

Pronto ! Com isso concluímos o “como instalar o virtualbox”, “como criar uma virtual machine” e “como compartilhar uma pasta”, isto é, barba, cabelo e bigode. Esse mini-post foi acrescentado ao artigo “VirtualBox no Ubuntu 8.04”.

6 Comentários

Integrando o nautilus a scripts

Um recurso bastante utilizado por quem faz uso constante de scripts e também usa o gnome é integrar scripts de uso diário ao nautilus. Por exemplo, voce tem um script que converte vários formatos para dvix e/ou aplica em forma de merge as legendas mas tem de ir todas as vezes ir até o terminal e navegar até o caminho do arquivo e depois executar um determinado comando – um comando para cada aquivo-, meu amigo, simplifica a tua vida, crie um script-nautilus e depois é só dar um clique com o botão direito sobre o(s) arquivo(s) e invocar o seu script :
Usando o Nautilus-Script

Um artigo já antigo, mas ainda atual com a explicação de como criar tais scripts pode ser lido aqui :

http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=2561

Para tornar qualquer script integrado ao nautilus, basta coloca-lo na pasta :

~/.gnome2/nautilus-scripts

Neste caso o nautilus cria algumas váriaveis de ambientes que seu script poderá aproveitar, como por exemplo, qual a URI ou nome de arquivo que está selecionado no nautilus ? a variável $NAUTILUS_SCRIPT_SELECTED_URIS ou $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS poderá proporcionar isso ao seu script. Todas as váriaveis que podem ser usadas no seu script estão bem documentadas e fartas na internet.

Para dar um exemplo, eu criei um script que lê de forma audível arquivos textos ou PDFs, isso é uma inutilidade para muita gente porque codigo de programação ou páginas de internet não foram feitos para serem literalmente lidos, mas há tipos de arquivos que a leitura literal é aplicavel e neste caso voce pode ouvir a leitura enquanto mexe com os seus afazeres. Vamos ao exemplo :

– Dê um ALT+F2 e execute :
gedit ~/.gnome2/nautilus-scripts/nautilus-falar.sh

– Copie o seguinte conteúdo para dentro do arquivo a ser editado :

#!/bin/sh
# Este é um script-nautilus e como tal deverá ser gravado ou
# em forma de link simbolico (simlink) em :
# ~/gnome2/nautilus-scripts
FALAR="/usr/bin/espeak -v brazil -f "
CONVERSAO_PARA_TXT="/tmp/falar_este_arquivo-pid-$$.txt"
for arquivo in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS; do
    # pegar a extensao do arquivo depois do ultimo '.'
    ext=${arquivo##*.}
    # quando a extensao do arquivo nao é texto (.txt) verifico se há como
    # fazer alguma conversao
    if [ "$ext" != "txt" ] ; then
      # PDF para Texto
      if [ "$ext" = "pdf" ] ; then
          zenity --title="Observação :" \
                 --info --text "Vou converter o arquivo PDF para Texto para poder ler."
        ! [ -f "/usr/bin/pdftotext" ] && zenity --title="Voce não tem o aplicativo :" \
                                                --info --text "[pdftotext] para converter um PDF num texto que possa ser lido."
        /usr/bin/pdftotext "$arquivo" "$CONVERSAO_PARA_TXT" && arquivo="$CONVERSAO_PARA_TXT"
      fi
    fi
    # pegar a extensao do arquivo depois do ultimo '.'
    ext=${arquivo##*.}
    if [ "$ext" != "txt" ] ; then
      zenity --title="Este arquivo não pode ser literalmente lido :" \
         --info --text "$FALAR \"$arquivo\""
      exit 2;
    fi
    zenity --title="Estou lendo e falando o arquivo :" \
       --info --text "$FALAR \"$arquivo\""&
    $FALAR "$arquivo"
    # removendo arquivo temporario, se este foi criado
    [ -f "$CONVERSAO_PARA_TXT" ] && rm -f "$CONVERSAO_PARA_TXT"
done 


Observação : Se estiver vendo linhas em branco duma para outra, por gentileza retire as linhas em branco, eu não sei porque o WordPress faz isso.
– Dê permissão de execução ao script, vá ao terminal e execute :
chmod a+x ~/.gnome2/nautilus-scripts/nautilus-falar.sh

O script acima faz uso de três aplicativos ‘zenity’, ‘espeak’ e ‘pdftotext’. O ‘zenity’ é uma forma de exibir telas de dialogo usando os controles e janelas do próprio gnome. O ‘espeak’ é utilizado para literalmente ler uma frase ou arquivo. O aplicativo ‘pdftotext’ converte o formato PDF para texto para que o ‘espeak’ possa lê-lo. Voce pode acrescentar outros formatos que deseja que seja lido se souber como converte-lo para texto, ainda não fui atrás, mas minha próxima inclusão será ler o formato ODF. Pode também mudar a pronuncia do ‘espeak’ para feminino ou mudar o idioma da voz para inglês quando a documentação a ser lida é em inglês. A propósito, qualquer dica para melhorar a pronuncia emm português-brasil do ‘espeak’ será benvinda.

Conclusão
Utilizar scripts de forma integrada ao nautilus é muito bom, eu faço isso para renomear meus arquivos para minusculos, converter avi’s, integrar legendas, criar thumbnais e um monte de outras coisas. Se é bom para mim, acho que é bom para voce também.

9 Comentários