31st May, 2008

Tutorial: Configuração de um desktop com Ion3

Escrevo este tutorial para descrever como configurei meu desktop, para pessoas que estejam interessadas em ter um desktop bonito e funcional com o uso do Ion3.

O Ion3 é um ambiente gráfico com gerenciamento de janelas em tiling. Para quem não conhece, isso significa que ele possui suporte a tiles, que são áreas nas quais podem ser "encaixadas" janelas, de forma que ocupem todo o espaço daquela área.

O Ion3 permite que você divida sua tela em quantas áreas quiser, com a posição e o tamanho que desejar. Sempre que uma área receber mais de uma janela, o Ion3 cria abas (tabs) para as outras janelas. É como se a sua tela tivesse diversas barras de tarefas, que você pode organizar como desejar. Você sempre pode arrastar uma aba (tab) de uma área (tile) para outra, da maneira que preferir.

O Ion3 também permite que você faça janelas flutuarem, ou seja, ficarem por cima sem "encaixar" em nenhuma das áreas. É possível ter também alguns workspaces sem nenhuma área, apenas com janelas flutuantes (floats).

O Ion3 é altamente configurável utilizando a linguagem de script Lua, que é leve, muito fácil de usar e poderosa. O Ion3 já vem com diversos atalhos de teclado para tarefas úteis, como abrir aplicações ou sessões ssh com suporte a tab-completion. O Ion3 é, também, bastante leve, consumindo de 2MB a 4MB de RAM.

Bom, agora que vocês já conhecem as características principais do Ion3, vamos à instalação e configuração do mesmo.

Instalação

Serei bastante breve nesta seção. Verifique se sua distribuição possui um pacote para o Ion3. Verifique também se esse pacote corresponde a uma versão atual, pois praticamente todo mês há novas versões do Ion3.

Os pacotes do Ion3 para o Arch Linux e para o NetBSD são mantidos por mim. O pacote para o Arch pode ser encontrado com o nome ion-3 no AUR. O pacote para o NetBSD pode ser encontrado com o nome ion3 no pkgsrc-wip.

Caso sua distribuição não possua pacotes para o Ion3, basta baixar o código fonte no site do autor. Certifique-se primeiramente de que você tem o interpretador Lua instalado, descompacte o código fonte do Ion3, edite o arquivo system.mk, e em seguida efetue um make && make install.

Instalando o Trayion

Eu recomendo, também, a instalação de um aplicativo externo, desenvolvido por mim, chamado Trayion. O Trayion é uma área de notificação que se integra à barra de status do Ion3.

O Ion3, por padrão, suporta apenas dockapps do Window Maker e tray icons usando o protocolo antigo do KDE. Os tray icons utilizados pelas aplicações mais novas, que seguem o padrão FreeDesktop, não são suportados, pois o autor do Ion3 considera o padrão (desnecessariamente) complicado demais para ser implementado diretamente no Ion3.

Se você usa o Arch Linux, instale o Trayion por meio de seu pacote no AUR. Se você usa o NetBSD, instale-o por meio de seu pacote no pkgsrc-wip. Caso contrário, faça o download do Trayion, descompacte, e execute um make && make install.

Iniciando o Ion3

Para iniciar o Ion3 pela primeira vez, você deve configurar para que o startx ou o seu gerenciador de login iniciem o mesmo. Para isso, basta criar um arquivo ~/.xsession contendo os comandos a serem executados quando o X for levantado. O meu ~/.xsession contém o seguinte:

#!/bin/sh
xrdb ~/.Xresources
display -window root ~/.ion3/wallpaper.jpg
(trayion&)
exec ion3

Esse código já carrega um arquivo ~/.Xresources, que pode ser utilizado para configurar certos programas, como o urxvt. Em seguida, ele busca um papel de parede em ~/.ion3/wallpaper.jpg, carrega o Trayion, e inicia o Ion3.

Para utilizar o comando display, necessário para carregar o papel de parede, você precisa do ImageMagick. No Arch Linux, o nome do pacote é imagemagick. No NetBSD, o nome é ImageMagick.

Note que o startx procura o script de inicialização acima em ~/.xinitrc, portanto é conveniente realizar o seguinte link simbólico:

$ ln -s ~/.xsession ~/.xinitrc

Agora você está pronto para iniciar o Ion3 pela primeira vez. Reinicie o X.

Primeira vez dentro do Ion3

É importante lembrar alguns atalhos de teclado padrão essenciais do Ion3. A tecla F2, por padrão, abre um terminal. A tecla F3, por padrão, abre uma pequena caixinha onde você pode digitar um comando qualquer, com suporte a tab-completion.

Se você instalou o Trayion, vai notar que a barra de status está "gorda demais". Isso ocorre por causa de uma configuração que vem por padrão no Ion3 para acomodar dockapps de Window Maker, que possuem tamanho de 64x64 pixels. O Trayion se comporta como uma dockapp, e portanto é afetado por essa configuração. Entretanto, não se preocupe, pois já vamos modificar essas configurações logo em seguida.

Modificando as configurações padrão do Ion3

Ao longo de diversos meses de uso, modifiquei muito pouco as configurações padrão do Ion3. Descreverei aqui quais configurações eu modifiquei, e como realizar essas modificações.

As configurações do Ion3 ficam geralmente em /etc/ion3. Se você instalou pelo pkgsrc no NetBSD, elas estarão em /usr/pkg/etc/ion3. Se você instalou compilando manualmente o código fonte e não modificou o local de instalação no system.mk, elas estarão em /usr/local/etc/ion3.

Cada arquivo de configuração é um script em linguagem Lua. Eu sugiro fortemente que você não modifique as configurações diretamente nos diretórios /etc/ion3, pois elas poderão ser sobrescritas durante uma atualização do Ion3.

Sempre que for modificar um arquivo de configuração, copie-o para ~/.ion3 e modifique-o no ~/.ion3. O Ion3 sempre vai buscar os arquivos de configuração primeiro em ~/.ion3, e somente depois no /etc/ion3.

Para ter uma configuração semelhante à minha, você deve copiar os seguintes arquivos:

$ cd /etc/ion3
$ cp cfg_kludges.lua cfg_ion.lua \
     cfg_ioncore.lua cfg_statusbar.lua ~/.ion3

Explico as configurações que realizei a seguir, da mais importante para a menos importante.

Modificações no cfg_kludges.lua

Se você estiver utilizando o Trayion, essa modificação é crucial, caso contrário sua barra de status ficará "gorda", ocupando espaço desnecessário da tela, além de ficar horrorosa.

Procure as seguintes linhas no arquivo ~/.ion3/cfg_kludges.lua:

defwinprop{
    is_dockapp = true,
    statusbar = "systray",
    max_size = { w = 64, h = 64},
    min_size = { w = 64, h = 64},
}

E transforme em comentários as linhas que definem o max_size e o min_size. Para fazer isso, basta colocar -- na frente das linhas. Dessa forma, o trecho acima ficará assim:

defwinprop{
    is_dockapp = true,
    statusbar = "systray",
    --max_size = { w = 64, h = 64},
    --min_size = { w = 64, h = 64},
}

Isso desabilitará a configuração que acomoda todas as dockapps por padrão em uma área de 64x64 pixels, que seria adequada para dockapps padrão do Window Maker. Desabilitando essa configuração, você permite que o Trayion possa ajustar suas próprias dimensões, escolhendo o tamanho mais adequado para si mesmo.

Modificações no cfg_ion.lua

O Ion3 usa o xterm como terminal por padrão. Nada mais justo, afinal o xterm é encontrado em praticamente qualquer instalação padrão de X.

Entretanto, eu prefiro o urxvt, que vem no pacote rxvt-unicode (o nome do pacote é o mesmo tanto no Arch Linux quanto no NetBSD).

Para modificar o terminal que é aberto ao pressionar a tecla F2 no Ion3, edite o arquivo ~/.ion3/cfg_ion.lua. Procure pela seguinte linha:

--XTERM="xterm"

Remova o -- para desmarcar como comentário, e modifique para o comando que inicia o terminal de sua preferência, por exemplo:

XTERM="urxvt"

Modificações no cfg_ioncore.lua

O Ion3 define, por padrão, atalhos de teclado para as teclas F5 e F6, respectivamente para editar e para abrir um arquivo para visualização. Por padrão, esse atalhos utilizam o run-mailcap para determinar qual programa deverá editar ou abrir um certo arquivo.

Como eu uso o gerenciador de arquivos Rox, que vem no pacote rox (mesmo nome de pacote tanto no Arch Linux como no NetBSD), e gosto do editor de textos gvim, eu preferi modificar essas configurações para utilizar o gvim para edição de arquivos, e para utilizar o rox para determinar qual programa deve abrir um certo arquivo.

Para realizar essa modificação, procure pelas seguintes linhas no arquivo ~/.ion3/cfg_ioncore.lua:

bdoc("Query for file to edit."),
kpress(ALTMETA.."F5",
       "mod_query.query_editfile(_, 'run-mailcap --action=edit')"),
 
bdoc("Query for file to view."),
kpress(ALTMETA.."F6",
       "mod_query.query_runfile(_, 'run-mailcap --action=view')"),

E modifique os comandos utilizados, fazendo com que esse trecho fique como a seguir.

bdoc("Query for file to edit."),
kpress(ALTMETA.."F5",
       "mod_query.query_editfile(_, 'gvim')"),
 
bdoc("Query for file to view."),
kpress(ALTMETA.."F6",
       "mod_query.query_runfile(_, 'rox')"),

Modificações no cfg_statusbar.lua

Por fim, você pode modificar este arquivo se desejar que informações adicionais sejam exibidas na barra de status. No meu caso, incluí informações sobre velocidade atual e temperatura do processador, e carga da bateria. Por enquanto, experimentei essa modificação apenas no Linux (não a experimentei ainda no NetBSD).

Se você possui um laptop e deseja exibir essas informações na barra de status, faça o download do arquivo statusd_laptopstatus.lua, copiando-o para ~/.ion3. É esse arquivo que implementa a consulta das informações a respeito da CPU e da bateria.

Em seguida, edite o ~/.ion3/cfg_statusbar.lua para indicar em qual local da barra de status você quer que essas informações apareçam. Procure pela linha a seguir:

template="[ %date || load: %load ] %filler%systray",

E modifique-a pela seguinte linha:

template="[ %date || load: %load ||
CPU: %laptopstatus_cpuspeed %laptopstatus_temperature ||
BATT: %laptopstatus_batterypercent %laptopstatus_batterytimeleft
] %filler%systray",

Carregando as modificações dos arquivos de configuração

Sempre que você modificar algum arquivo de configuração do Ion3, você pode recarregar as configurações sem fechar os aplicativos que estão rodando, utilizando a tecla F12 e chamando a opção session/restart no menu que se abre.

Lembre-se que todos os menus do Ion3 suportam navegação tanto por meio da digitação de parte do nome da opção seguida da tecla Tab (tab-completion) quanto por meio das setas do teclado (histórico). Para ativar a opção selecionada, basta teclar Enter.

Mudando o tema do Ion3

Várias pessoas contribuíram com diversos temas para as bordas e barras de título do Ion3. Esses temas estão disponíveis no site da coleção de scripts para o Ion3. São os scripts cujo nome começa com look.

O tema que utilizo atualmente em minha máquina é o look_atme.lua. Faça download dos temas que deseja experimentar, copiando-os, como sempre, para ~/.ion3.

Para atualizar a lista de temas, realize o mesmo procedimento descrito anteriormente para recarregar as configurações do Ion3, ou seja, tecla F12, opção session/restart.

Para trocar de tema, utilize a tecla F12 e chame a opção styles/look_nomedotema no menu que se abrirá.

Atalhos de teclado mais usados com o Ion3

Você sempre pode consultar os atalhos de teclado pressionando F1 e pressionando Enter. Isso abrirá a manpage do Ion3 em um terminal para você. Lá existe a lista de todas as teclas de atalho padrão.

As que eu mais utilizo, tirando F2 e F3, que eu já citei, são:

  • Alt+S: Divide um tile em dois, um em cima e um embaixo.
  • Alt+K S: Divide um tile em dois, um à esquerda, outro à direita.
  • Alt+K número: Alterna entre tabs usando o teclado.
  • Alt+F9: Cria um novo workspace diretamente, sem burocracia. Existe também o F9, que permite dar um nome ao workspace que está sendo criado e outras opções mais avançadas.
  • Alt+número: Alterna entre workspaces.
  • Alt+T com foco em uma janela, depois Alt+K A com foco em outro tile: Transfere uma janela para outro tile usando o teclado. Esse atalho de teclado é especialmente útil para transferir uma janela de um workspace para outro, caso no qual não é possível realizar a transferência simplesmente arrastando a barra de título da janela.

Note que muitas das operações podem ser realizadas com o mouse, clicando com o botão direito na barra de título da janela e escolhendo uma opção no menu, ou arrastando a barra de título da janela. Portanto, não se preocupe em ficar decorando atalhos de teclado. Você vai se acostumar com eles com o tempo, pois muitos deles são realmente práticos e úteis.

É importante lembrar que para redimensionar um tile, basta clicar sobre qualquer ponto do tile e arrastar com a tecla Alt pressionada.

Uma tecla que você talvez utilize pouco, mas que é muito interessante, é a tecla F4. Ela abre uma sessão ssh, mas tem um diferencial interessante. Ela autocompleta qualquer host ao qual você já tenha se conectado utilizando tab-completion.

Se ao pressionar F4 aparecer somente um monte de números na lista de sugestões de autocompletamento, significa que você tem a seguinte opção no seu /etc/ssh/ssh_config:

HashKnownHosts yes

Essa opção vem por padrão no Arch Linux, por exemplo. Se quiser usar o recurso de autocompletar ssh do Ion3, desabilite a linha acima transformando a mesma em um comentário:

#HashKnownHosts yes

Macetes interessantes do Ion3

Existe um macete que eu raramente preciso usar, mas que é tão interessante que vale a pena comentar aqui.

Se você perder uma janela de vista, é possível encontrá-la imediatamente no Ion3, mesmo que ela esteja em outro workspace.

Digamos que você esteja procurando pela janela do Opera. Você não sabe onde ela está, mas sabe que o título dela contém o texto "opera". Digite Alt+K K opera Enter. O Ion3 te levará imediatamente ao workspace e à janela do Opera.

Note que apenas um pedaço do texto da barra de título é necessário, e que esse pedaço de texto pode estar em qualquer parte da barra de título!

Configurando outros programas do desktop

Passarei brevemente outras configurações relevantes para o desktop, mas que não são diretamente relacionadas ao Ion3. As dicas a seguir se aplicariam mesmo que você estivesse utilizando outro gerenciador de janelas.

A primeira é para deixar o urxvt transparente e com a fonte DejaVu. A fonte DejaVu pode ser encontrada no pacote ttf-dejavu no Arch Linux, e no pacote dejavu-ttf no NetBSD. A configuração é realizada no arquivo ~/.Xresources:

URxvt*scrollBar: 0
URxvt*toolBar: 0
URxvt*font: xft:DejaVu Sans Mono:pixelsize=10
URxvt*transparent: True
URxvt*shading: 40
URxvt*tintColor: #000000
URxvt*background: #000000
URxvt*foreground: #fafffa

Outra configuração que realizei aqui foi criar um arquivo ~/.fonts.conf, como a seguir, para forçar antialising nas fontes do Qt3.

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
 <match target="font" >
  <edit mode="assign" name="antialias" >
   <bool>true</bool>
  </edit>
 </match>
</fontconfig>

Outra configuração que necessita ser realizada por meio de arquivo de configuração (a menos que você instale o KDE) é a configuração das fontes nos aplicativos que usem a kdelibs3. Para realizar essa configuração, crie um arquivo ~/.kderc contendo as fontes desejadas, como a seguir:

[General]
StandardFont=Liberation Sans,8,-1,5,50,0,0,0,0,0
activeFont=Liberation Sans,8,-1,5,75,0,0,0,0,0
background=239,239,239
fixed=DejaVu Sans Mono,8,-1,5,50,0,0,0,0,0
font=Liberation Sans,8,-1,5,50,0,0,0,0,0
menuFont=Liberation Sans,8,-1,5,50,0,0,0,0,0
selectBackground=103,141,178
selectForeground=255,255,255
taskbarFont=Liberation Sans,8,-1,5,50,0,0,0,0,0
toolBarFont=Liberation Sans,8,-1,5,50,0,0,0,0,0
windowBackground=255,255,255
windowForeground=0,0,0

O restante das configurações pode ser realizado por meio de aplicativos gráficos.

O tema da Qt pode ser modificado por meio do aplicativo qtconfig, que acompanha a própria biblioteca Qt. Note que existe um qtconfig diferente para cada versão da Qt - um para a Qt4 e outro para a Qt3. No Arch Linux, eles ficam em /usr/bin/qtconfig e /opt/qt/bin/qtconfig, respectivamente. No NetBSD, ficam em /usr/pkg/qt4/bin/qtconfig e /usr/pkg/qt3/bin/qtconfig, respectivamente.

O tema do Gtk pode ser modificado utilizando o aplicativo gtk-chtheme, que vem no pacote gtk-chtheme do Arch, ou gtk2-chtheme do NetBSD.

Automatizando conexão em redes e montagem de dispositivos

Se você utiliza o Arch Linux, recomendo que instale o archassistant. Trata-se de um aplicativo muito interessante que colocará um tray icon no seu Trayion, e que permite que você selecione perfis de rede para conectar-se com um único clique.

O archassistant funciona com o auxílio do netcfg do Arch Linux. Maiores informações podem ser encontradas no artigo Network Profiles, da ArchWiki.

Outra tarefa bastante desejável de se automatizar é a montagem de dispositivos, principalmente pendrives e CDs. Em outros ambientes gráficos, isso costuma ser feito pelo próprio ambiente. Entretanto, é muito mais interessante utilizar o recurso autofs4 do próprio kernel Linux para realizar essa tarefa. Isso permite que a montagem automatica ocorra até mesmo nos programas do console, e permite também a desmontagem automatica dos dispositivos.

Existe um tutorial para a configuração do autofs4 no artigo AutoFS HowTo da ArchWiki.

Conclusão

O Ion3 fornece um desktop leve, confortável, moderno, versátil, ágil e configurável.

Após realizadas as configurações adequadas em seu sistema, um desktop Ion3 não deixará nada a desejar com relação a desktops tradicionais como GNOME e KDE.

Depois de acostumado ao modelo de tiling, um usuário deverá sentir até mesmo certa dificuldade ao utilizar novamente gerenciadores de janela tradicionais (não-tiling).

Tentei passar neste artigo toda a minha experiência em configuração de desktops, esgotando completamente tudo o que eu teria para falar. Espero que o conteúdo aqui apresentado possa auxiliar muitos usuários a ingressar no maravilhoso mundo do tiling, não somente com o Ion3, mas também com outros igualmente excelentes gerenciadores janelas como dwm, wmii e xmonad.

Outras referências

  • Configuring and Extending Ion3 with Lua - Este manual explica o funcionamento interno do Ion3 e como escrever novos scripts em Lua para ele. Muito indicado para usuários que queiram se aprofundar.

Responses

Mto boa iniciativa pancinha…
Ficou bem bonito seu ION3…
Pros adoradores do minimalismo, está aí uma ótima dica… ;)
Em breve testarei…

depois desse tutorial me deu vontade de usar o ion3 \o ja vou instalar imediamente aqui pra testar com o trayion.

[]z, 0xff

Legal. Podia cobrir a instalação/configuração do Awesome também, é bem simples de configurar, e tem o plus de constar nos repositórios. O ion3 também não é mais desenvolvido se nao me engano.

Obrigado a todos pela visita!

Henrique,

O awesome também é uma ótima alternativa, mas não tenho muita experiência com ele. E eu pessoalmente prefiro o modelo de tiling do Ion3.

O Ion3 ainda é desenvolvido sim (inclusive saem novas versões quase todo mês). É que houve toda uma trollagem envolvendo o autor, espalhando diversos boatos.

Quanto a configuração, dá na mesma em ambos, basta editar os arquivos de configuração e mudar o que desejar. Apesar disso, eu usei o Ion3 com as configurações padrão ao longo de muitos meses, pois já considerava as mesmas confortáveis. E mesmo agora, como você pode ver, eu mudei poucas coisas. O texto ficou longo porque eu expliquei detalhadamente o que cada coisa significava.

Parabéns thoty, muito bom o artigo, bem escrito (inveja.com) e desenvolvido… sem falar nas dicas que só se acha em ingles ou fuçando nos .lua

Valeu pelo artigo thoty. Estou pensando em trocar o meu velho fvwm por ion3, seu artigo me será útil :-)

Mas o ion3 continua sendo desenvolvido pelo autor original? Lembro de ter lido algo sobre ele abandonar o ion (e Linux em geral).

Henrique, ele continua desenvolvendo sim. Saiu uma série de boatos uma vez porque ele disse que ficava com vontade de mudar para o FreeBSD ou mesmo para o Windows quando via certas ações da comunidade.

O fato é que ele é um tanto excêntrico, e nem todos entendem direito o que ele diz, e pra piorar a situação ele costuma ser meio rude com as palavras, daí acaba sempre arranjando confusão nas mailing lists…

Muito bom! Uso o ion-3 aqui, me lembra muito o wmii e agora com esse tutorial todo.. Acho que facilitou a vida de muita gente… Esse é o espírito!
Conhecimento deve ser compartilhado, pra não morrer com a gente!
Grande abraço!
Contiue assim =)

[...] de configuração de ambiente desktop Ion3 “Este tutorial apresenta o Ion3, um ambiente gráfico com gerenciamento de janelas em tiling. Isso significa que [...]

Seria interessante usar com uma tela grande, tipo 19 polegadas ou mais, ae sim ia aproveitar todo o espaço.

Abraços.

Olá kakarotoBR,

Minha tela tem 15″. O mais importante é a resolução, que idealmente deve ser 1280×800 (ou mais, mas meu monitor só chega aí) para poder usar confortavelmente os tiles.

Mas mesmo com resoluções pequenas eu já usei o ion3, o que é possível pois dá pra deixar as janelas facilmente em tela cheia.

É possível também dar “zoom” em uma das janelas do tiling, deixando-a em tela cheia temporariamente, usando as teclas Alt+Enter.

Abraços.

Parabéns Paulo por ter dito esse trabalho de escrever o artigo e pelo bom português. Exemplos como esse e que devem ser seguidos. Obrigado

Já sou mais um fã do Ion-3!

Parabéns pelo artigo, foi mutio util.

[...] sobre o Ion3, ou a sua instalação. Para saber mais sobre o Ion3 e sobre como instalá-lo acesse o post do Paulo Matias em seu [...]

Atalhos do Remote Desktop – Terminal Services…

I found your entry interesting thus I’ve added a Trackback to it on my weblog :)…

Leave a response

Your response:

Categories