Ion3
De Wiki do Arch Linux Brasil
Introdução
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
O pacote para o Arch pode ser encontrado com o nome ion-3 no AUR.
Instalando o Trayion
Eu recomendo, também, a instalação de um aplicativo externo 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.
Instale o Trayion por meio de seu pacote no AUR.
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.
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 em /etc/ion3. Cada arquivo de configuração é um script em linguagem Lua. Eu sugiro fortemente que você não modifique as configurações diretamente no diretório /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.
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, 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.
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. 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. 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 realizada 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.
O tema do Gtk pode ser modificado utilizando o aplicativo gtk-chtheme, que vem no pacote gtk-chtheme do Arch.
Automatizando conexão em redes e montagem de dispositivos
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.
Links
- Artigo original, com figuras, screenshots, e formatação mais adequada.
- Screencast em um ambiente Ion3.
- 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.