segunda-feira, 20 de agosto de 2012

LXDE - Como realizar screenshots

O LXDE, vulgo "Lightweight X11 Desktop Environment", é um ambiente de área de trabalho extremamente rápido, ágil e poupador de energia. Ele é mantido por uma comunidade internacional de desenvolvedores e vem com uma bonita interface com o usuário, suporte a múltiplos idiomas, atalhos de teclado padrões e características adicionais, como um gerenciador de arquivos com navegação em abas.
O LXDE exige menos da CPU e consome menos memória RAM. Ele é desenhado especialmente para computadores em nuvem com especificações de hardware limitadas, como netbooks, dispositivos móveis (ex.: MIDs) ou computadores antigos. O LXDE pode ser instalado em distribuições como Ubuntu ou Debian. 
O código-fonte do LXDE está licenciado parcialmente sob os termos da Licença Pública Geral (GPL) e parcialmente sob a LGPL.

Porém, por ser um X11 feito para ser leve, ele não vem com algumas ferramentas úteis como screenshots. Convenhamos que screenshots não é algo que sempre utilizamos. Especialmente se estamos instalando o LXDE numa máquina antiga só para ressucitá-la. Por isso precisamos instalar nós mesmos uma solução para isso. A wiki do LXDE em inglês mostra duas soluções que vou passar aqui.


Usando o scrot

O scrot é uma ferramenta de linha de comando muito leve para tirar screenshots.
Você pode instalá-lo usando seu gerenciador de pacotes, por exemplo, apt-get install scrot ou yum install scrot.
Quando executar scrot no terminal. Ele vai tirar imediatamente um screenshot da tela. Há alguns parâmetros que ele aceita. Uma forma de uso dele que funciona bem é a seguinte:
sleep 2 && scrot -s -b -t 20 shot.png

O sleep faz ele esperar dois segundos antes de realizar o screenshot. O que dá tempo de mudar para a janela dá qual você quer tirar o screenshot. Pois se você utilizar direto o comando scrot o que você vai conseguir é sempre um screenshot do terminal.
Importante: o scrot salva a imagem gerada por padrão no diretório atual, para salvar em outro local é só especificar no comando (o último parâmetro que indica o nome do arquivo também indica onde salvá-lo).


Usando o imagemagick

O imagemagick é uma coleção de ferramentas e bibliotecas para trabalhar com imagens de diversos formatos. Ele já é pré-instalado na maioria das distribuições. Você pode verificar se ele está disponível por digitar o comando which import. Se estiver instalado a resposta será o caminho para o executável import. Algo como: /usr/bin/import. Ou, você pode utilizar seu gerenciador de pacotes: apt-get install imagemagick. Se ele estiver instalado, você será avisado.

Nota: o import é a ferramenta do imagemagick que possibilita que tiremos screenshots.

Para tirar um screenshot com o import é bem simples:
import -window root screen.png

Ativando a tecla Print-Screen

Bem, temos duas opções para tirar os screenshots via terminal. Agora o que vamos fazer é criar um script com um desses comandos e associá-lo ao pressionar da tecla PrintScreen (PrtSc ou uma infinidade de abreviações que cada teclado diferente apresenta).


Primeiro: crie um bash script para tirar os screenshots

Crie o arquivo /usr/local/bin/screenshot.sh com o seguinte conteúdo para utilizar o import:
#!/bin/bash
DATE=`date +%Y-%m-%d\ %H:%M:%S`
import -window root "$HOME/Desktop/screenshot $DATE.png"

Ou com este conteúdo para utilizar o scrot:
#!/bin/bash
DATE=`date +%Y-%m-%d\ %H:%M:%S`
scrot "$HOME/Desktop/screenshot $DATE.png"

O que esse script faz? Ele recupera a data e horário atual e armazena na variável DATE. Depois ele pega a janela root (não é referente ao usuário root, root aqui se refere a janela ativa. O desktop conta como janela aqui) e e escreve um arquivo com o screenshot em sua área de trabalho com o nome 'YYYY-mm-dd hh:mm:ss.png'.

Qual dos dois é melhor? Pra falar a verdade eu não sei. Pessoalmente, prefiro usar o import pois ele não precisa de que mais nada seja instalado. Uma vez que o imagemagick é nativo em muitas distribuições como Debian/Ubuntu que é a que uso. E quando não é nativo, ele serve para muitas coisas. Eu o utilizo para redimensionamento de imagens em massa eventualmente.

Segundo: faça o script ser executável

Isso é bem simples. É só isto:
sudo chmod a+x /usr/local/bin/screenshot.sh

Terceiro: associar a tecla PrintScreen com a execução desse script

Edite o arquivo ~/.config/openbox/lxde-rc.xml e cole este código dentro da seção <keyboard> (keyboard é teclado em inglês):
<keybind key="Print">
   <action name="Execute">
      <command>screenshot.sh</command>
   </action>
</keybind>

No meu computador eu aproveitei essa idéia e criei atalhos para executar o terminal e outros programas como navegadores. Veja o código para executar o lxterminal quando pressionar Windows+T (ou Command+T):
<keybind key="W-t">
    <action name="Execute">
        <command>lxterminal</command>
    </action>
</keybind>

Veja como ficou o arquivo:


Agora, para que o sistema reconheça imediatamente os atalhos criados execute no terminal:
openbox --reconfigure




Nenhum comentário: