Introdução ao gerenciador de janelas i3

Introdução

O artigo leva em consideração a distribuição Slackware e Ubuntu, mas as informações servem para qualquer distribuição que tenha o gerenciador de janelas i3 instalado.

Comecei a usar o i3 recentemente, por isso, não tenho muito conhecimento sobre ele, somente o básico. Mesmo assim, creio que posso ajudar usuários que estão querendo começar a usar o i3 e gostariam de orientações iniciais.

Sobre o i3

i3 é um gerenciador de janelas muito leve, que suporta vários monitores (cada área de trabalho fica em um monitor automaticamente), acessível tanto através de teclas de atalho, como por mouse. Também é muito simples de configurar, pois suas configurações são definidas em texto simples.

Página oficial:

Guia do usuário:

Screenshots:

Veja o vídeo de apresentação, sobre o uso básico do i3:

E veja este vídeo mostrando o i3 em ação:

Instalação no Ubuntu

Para usuários da distribuição Ubuntu, existe o meta-package i3, basta executar:

# apt-get install i3

Na tela de login, escolha i3.

Instalação no Slackware

Usuários da distribuição Slackware podem instalar o i3 e suas dependências através de SlackBuilds. Para quem tem o sbotools, que é o gerenciador de pacotes SlackBuilds com gerenciamento de dependências, basta executar:

# sboinstall i3 i3status

Escolha o gerenciador de janelas i3:

$ xwmconfig

Primeira vez no i3

Após inicializar o i3 pela primeira vez, aparecerá uma janelinha perguntando:

You have not configured i3 yet.
Do you want me to generate ~/.i3/config?

<Enter> Yes, generate ~/.i3/config
<Esc>   No, I will use the defaults

Pressione Enter, para que seja criado o arquivo de configuração.

Depois, será apresentado:

Please choose either:

–> <Win>  Win as default modifier
<Alt>  Alt as default modifier

Afterwards, press

<Enter> to write ~/.i3/config
<ESC>   to abort

Nesse caso, se pressionar Enter, a tecla MOD será “Win” (aquela com bandeirinha do Windows). Se quiser que a tecla MOD seja Alt, pressione Alt, para mudar e Enter.

Mas, o que é a tecla MOD? É a tecla que serve de base para ser usada em atalhos para gerenciar as janelas. Por exemplo, para deixar uma janela ocupando toda a tela (FullScreen) o comando é MOD+f.

Configuração básica do i3

Agora, diante dessa tela minimalista, sem menus e exigindo combinações de teclas para gerenciar as janelas, o usuário pode ficar um pouco atordoado ou perdido. É normal, fique tranquilo.

Primeiramente, abra o terminal com a seguinte combinação de teclas: MOD+Enter

Crie um backup do arquivo de configuração original (intocado), para recarregá-lo caso algo dê errado:

$ cp .i3/config .i3/config.ori

Use seu editor de texto preferido e edite o arquivo de configuração do i3:

$ nano .i3/config

Se quiser alterar a tecla MOD, procure por: set $mod

Caso prefira definir a tecla MOD como Alt, deixe assim:

set $mod Mod1

Se quiser a tecla Win como MOD, deixe assim:

set $mod Mod4

Agora, procure por: bindsym $mod+Return exec i3-sensible-terminal
É a definição do terminal executado quando se usa a combinação: MOD+Enter

Troque para seu terminal preferido. Como exemplo, se gosta do xfce4-terminal, deixe assim:

bindsym $mod+Return exec xfce4-terminal  #i3-sensible-terminal

Fique livre para usar o terminal que mais agrada, Outro exemplo: gnome-terminal

Mas calma, não feche o arquivo de configuração ainda. Vamos olhar os atalhos.

Atalhos

Perceba que há atalhos para algumas coisas bem úteis neste arquivo de configuração do i3. Exemplo:

  • Fechar janela: Shift+MOD+q
  • Nova área de trabalho: MOD+2 (ou 3, 4, etc)
  • Reiniciar o gerenciador i3: Shift+MOD+r
  • Fechar o gerenciador i3: Shift+MOD+e (quando aparecer, clique em: yes, exit para sair)

Você pode adicionar seus próprios atalhos. Exemplo:

bindsym $mod+b exec firefox &
bindsym $mod+t exec thunar &

Assim, a combinação MOD+b executará o navegador Firefox e a combinação MOD+t executará o gerenciador de arquivos Thunar.

Você pode usar outros gerenciadores como o Nautilus (usado no GNOME e no Ubuntu) ou Nemo (usado no Linux Mint). O “&” é opcional, serve apenas para executar o comando em background.

Agora sim, se quiser, salve o arquivo e feche.

Saia do terminal com:

$ exit

Mas para fazer as novas configurações entrarem em vigor, reinicie o i3 com a combinação: Shift+MOD+r.

Veremos como incrementar o i3, mais à frente. Mas por enquanto, com essa configuração básica, você pode usar e testar o i3 antes de incrementar.

Usando e testando o i3

Primeiramente, verifique se o terminal que você escolheu está correto, com a combinação MOD+Enter. Sem fechá-lo, abra o navegador através de combinação de teclas. Se configurou o atalho do navegador como mostrado anteriormente, use a combinação MOD+b.

Percebeu que agora as janelas ficaram lado a lado?

Esse é modo padrão do i3, abrir janelas lado a lado. Experimente mudar para o modo com abas laterais: MOD+w. Depois o modo com abas sobrepostas: MOD+s. Para voltar ao modo padrão, use MOD+e.

Talvez você prefira esse modo.

Existe um outro modo, chamado Resize que pode ser acessado com MOD+r. Depois de ativo, use as teclas j, k, l e ç para alterar o tamanho das janelas. Quando terminar, use Esc para sair do modo Resize.

O modo Resize não é muito bom, se você tem mouse, porque o tamanho das janelas pode ser alterado com o mouse.

Mais um modo é a janela flutuante. Use a combinação Shift+MOD+barra de espaço. Assim a janela fica “solta” da grade e você pode movê-la livremente ou alterar suas dimensões com o mouse.

A melhor forma de testar o modo Resize, é combiná-lo com o modo flutuante. Para isso, torne uma janela flutuante e depois ative o modo Resize, e use as teclas: j, k, l e ç.

Tá pegando o jeito!

  • Para abrir janelas verticalmente, use MOD+v antes de abrir uma nova janela.
  • Para abrir janelas horizontalmente, use MOD+h antes de abrir uma janela.
  • Para enviar uma janela para outra área de trabalho, use Shift+MOD+x, onde x é o número da área de trabalho.

Resumo dos atalhos:

O buscador de aplicativos do i3 é o Dmenu. Acessível através do comando MOD+d. Após acessar o Dmenu, digite o parâmetro de busca e selecione uma opção, usando as setas do teclado.

OK. Isso é tudo o que você precisa saber para começar a usar o i3. A seguir, veremos como incrementar o i3 para deixá-lo um pouco mais legal. Mas, na prática, isso não afeta em nada sua usabilidade.

Incrementando

Agora que já foi abordado a uso do i3, será abordado um pouco da sua configuração.

Se procurarmos na Internet, veremos que muitos usuários personalizam o i3 para deixá-lo bem diferente. Veja:

Aqui uma tentativa minha de modificar o i3:

Como eu falei anteriormente, não tenho muito conhecimento sobre o i3, mas se algum usuário experiente quiser dar dicas, por favor, deixe um comentário.

Veremos agora algumas modificações que podemos fazer no i3.

Barra de status (recomendável)

Por padrão, a barra de status do i3 fica na parte inferior. Para colocá-lo na parte superior da tela, edite o arquivo de configuração:

$ nano ~/.i3/config

Vá até o fim do arquivo, onde tem:

bar {
status_command i3status
}

Adicione position top, deixando assim:

bar {
status_command i3status
position top
}

Salve e feche o arquivo.

Reinicie o gerenciador i3: Shift+MOD+r, para ver como ficou.

Agora, veremos os módulos da barra de status.

Antes de começar, faça uma cópia do arquivo i3status.conf, para o diretório do seu usuário:

$ cp /etc/i3status.conf ~/.i3status.conf

Mude o dono do arquivo:

$ cd
$ su
# chown seuusuário .i3status.conf

Agora vamos editar:

$ nano ~/.i3status.conf

O mais importante aqui, antes de editá-lo, é perceber a estrutura do arquivo. Muito simples, veja. Primeiro, há os módulos (order) que vamos usar e em seguida, há as “funções” desses módulos.

Os módulos que você não quer que apareçam na barra de status, podem ser comentados (colocar # na frente).

Exemplo, aqui o padrão:

order += “ipv6”
order += “disk /”
order += “run_watch DHCP”
order += “run_watch VPN”
order += “wireless wlan0”
order += “ethernet eth0”
order += “battery 0”
order += “load”
order += “tztime local

Mas você não precisa o ipv6, nem da bateria, nem do VPN, nem do DHCP. Nesse caso, ficaria assim:

#order += “ipv6”
order += “disk /”
#order += “run_watch DHCP”
#order += “run_watch VPN”
order += “wireless wlan0”
order += “ethernet eth0”
#order += “battery 0”
order += “load”
order += “tztime local

Infelizmente, não tem para onde correr. Se quiser editar a barra de status, será necessário ler a documentação com a descrição de cada módulo e suas possíveis variáveis.

Página sobre a barra de status:

Passe um tempo lendo sobre cada módulo, para fazer as modificações necessárias.

Aqui, como exemplo, compartilho minha configuração atual, que eu acho bem simples e fácil de entender:

# i3status configuration file.
# see “man i3status” for documentation.# It is important that this file is edited as UTF-8.
# The following line should contain a sharp s:
# ß
# If the above line is not correctly displayed, fix your editor first!

general {
colors = true
interval = 5
}

#order += “ipv6”
order += “disk /”
#order += “run_watch DHCP”
#order += “run_watch VPN”
order += “wireless wlan0”
order += “ethernet eth0”
order += “battery 0”
#order += “load”
order += “cpu_temperature 0”
order += “cpu_usage”
order += “tztime local”
order += “volume master”

wireless wlan0 {
format_up = “W: (%quality at %essid) %ip”
format_down = “W: down”
}

ethernet eth0 {
# if you use %speed, i3status requires root privileges
format_up = “E: %ip (%speed)”
format_down = “E: down”
}

battery 0 {
#format = “%status %percentage %remaining”
#format = “Bat: %status %remaining (%emptytime %consumption)”
format = “Bat: %status %percentage”
}

run_watch DHCP {
pidfile = “/var/run/dhclient*.pid”
}

run_watch VPN {
pidfile = “/var/run/vpnc/pid”
}

tztime local {
format = “%a, %d %b – %H:%M”
}

load {
format = “%1min”
}

cpu_usage {
format = “CPU: %usage”
}

disk “/” {
format = “HD: %percentage_used usado, %avail disp”
}

volume master {
format = “♪: %volume”
device = “default”
mixer = “Master”
mixer_idx = 0
}

cpu_temperature 0 {
format = “Temp: %degrees °C”
path = “/sys/devices/platform/coretemp.0/temp2_input”
}

O diferente do padrão, nesta configuração, basicamente, é que há módulos para uso do processador, temperatura do processador e volume do som. E algumas modificações nos módulos preexistentes.

Após editar como deseja, salve e feche o arquivo. Recarregue a barra de status reexecutando o i3: Shift+MOD+r.

Papel de parede (opcional)

Uma das formas de definir um papel de parede, é usando o feh. Para isso, instale-o:

Ubuntu:

$ sudo apt-get install feh

Slackware:

# sboinstall feh

O comando para definir o papel de parede, usando o feh, é:

$ feh –bg-scale /caminho/do/papel/de/parede/imagem.jpg

Se não quiser definir uma imagem, pode definir uma cor, com o seguinte comando:

$ xsetroot -solid #333333″

Onde o #333333, é o valor em hexadecimal da cor no padrão RGB.

Quem já jogou “Castlevania: Symphony of the Night”, pode lembrar da configuração da cor da capa do vampiro.

Se quiser saber que cor determinado código irá gerar, pode fazer o teste em: HEX to RGB Converter

Por fim, é necessário configurar para que o comando seja executado automaticamente ao iniciar o i3.

Para isso, edite o arquivo de configuração:

$ nano ~/.i3/config

E adicione as seguintes linhas (onde achar melhor):

### início automático

#exec –no-startup-id feh –bg-scale /caminho/do/papel/de/parede/imagem.jpg
exec –no-startup-id xsetroot -solid “#333333”

Salve e feche. Reexecute o i3: Shift+MOD+r

Obs.: a primeira linha está comentada, isso significa que não será usada. Se quiser trocar, comente a debaixo e descomente a de cima. Você também pode usar exec_alway ao invés de exec, para que o comando seja executado sempre que reiniciar o i3 (com: Shift+MOD+r), não apenas na primeira vez.

A seguir, veremos mais detalhes como temas e aplicativos úteis.

Finalizando

Papel de parede aleatório (opcional)

Seria legal ter papel de parede que muda aleatoriamente a cada 10 minutos, não é mesmo? Tudo bem que 95% das vezes, o usuário de i3 não vai ficar olhando a área de trabalho, mas é algo legal para fazer.

Primeiro, faça ou baixe um pacote de papéis de parede. Se quiser, pode usar um que fiz com tema de ficção científica. Basta clicar aqui.

Salve e descompacte:

$ cd
$ cd Downloads
$ unzip scifi.zip -d .

Agora, crie um script com um “whilezinho” para efetuar a mudança de papel de parede com intervalo de 10 minutos:

$ nano .random_wallpaper.sh

Conteúdo do script:

#!/bin/bash
while true; do
feh –randomize –bg-fill ~/Downloads/scifi/*
sleep 600
done

Salve e feche. Torne-o executável:

$ chmod +x .random_wallpaper.sh

Execute:

$ sh .random_wallpaper.sh &

Se você colocou tudo certo, o papel de parede será alterado e depois novamente a cada 600 segundos.

Adicione um comando para executar o script automaticamente junto com os outros comandos, nas configurações:

$ nano .i3/config

### início automático

#exec –no-startup-id feh –bg-scale /caminho/do/papel/de/parede/imagem.jpg
#exec –no-startup-id xsetroot -solid “#333333”
exec_always ~/.random_wallpaper.sh

Salve e feche o arquivo. Reexecute o i3: Shift+MOD+r.

Tema GTK e ícones (recomendado)

Para alterar o tema GTK e ícones, você só precisa de um gerenciador de temas. Se você tem o gerenciador de configurações do Xfce, basta usar:

$ xfce4-appearance-settings

Se não tem nenhum, recomendo instalar o lxappearance.

No Ubuntu:

$ sudo apt-get install lxappearance

No Slackware:

# sboinstall lxappearance

Depois, execute:

$ lxappearance

Use os temas e ícones disponíveis no seu sistema.

Cores do i3 (opcional)

As configurações do i3 possibilitam uma grande variedade de combinações de cores, mas sua forma de configurar essas cores impossibilita a criação de pacotes de temas. Normalmente, o que pode ser feito, é copiar arquivos de configuração dos outros.

Aqui, por exemplo, uma configuração do usuário zezaocapoeira, incluindo uma combinação de cor sóbria, com bordas escuras:

Outras forma de obter “temas” de cores, é através de repositórios Git. Como exemplo, vamos usar o i3-style.

Primeiro instale o npm.

No Ubuntu:

$ sudo apt-get install npm

No Slackware:

# sboinstall node

Em seguida, execute:

$ cd
$ su
# npm install -g i3-style
# exit
$ cp ~/.i3/config ~/.i3/config.backup
$ i3-style solarized -o ~/.i3/config
$ i3-msg restart

Perceba que as bordas ficarão mais “alegres”. Se quiser, ao invés de “solarized”, no comando anterior, use outros temas. Os disponíveis são:

  • archlinux
  • debian
  • default
  • lime
  • okraits
  • solarized
  • ubuntu

Alterando o Dmenu (opcional)

Por padrão, o Dmenu aparece na parte superior da tela. Para deixá-lo na parte inferior, acrescente o parâmetro -b (bottom). No arquivo de configuração. Exemplo:

$ nano .i3/config

bindsym $mod+d exec dmenu_run

Deixe assim:

bindsym $mod+d exec dmenu_run -b

Agora, compartilho um alteração do Dmenu fornecida por zezaocapoeira:

#bindsym $mod+d exec dmenu_run

bindsym $mod+d exec dmenu_run -fn ‘xft:Terminus:pixelsize=8’ -nb ‘#191919’ -nf ‘#9ac0cd’ -sb ‘#191919’ -sf ‘#bf3f34’ -p ‘Selecione uma opção >> ‘

#bindsym $mod+d exec dmenu_run -fn -bitstream-*-*-r-*-*-*-120-*-*-*-*-*-* -nb ‘#191919’ -nf ‘#9ac0cd’ -sb ‘#191919’ -sf ‘#bf3f34’ -p ‘Selecione uma opção >>

Ou, se preferir o Dmenu na parte inferior da tela:

bindsym $mod+d exec dmenu_run -b -fn ‘xft:Terminus:pixelsize=8’ -nb ‘#191919’ -nf ‘#9ac0cd’ -sb ‘#191919’ -sf ‘#bf3f34’ -p ‘Selecione uma opção >> ‘

#bindsym $mod+d exec dmenu_run -b -fn -bitstream-*-*-r-*-*-*-120-*-*-*-*-*-* -nb ‘#191919’ -nf ‘#9ac0cd’ -sb ‘#191919’ -sf ‘#bf3f34’ -p ‘Selecione uma opção >> ‘

Outra forma de alterar a fonte do Dmenu e, ao mesmo tempo, a fonte dos títulos das janelas é através do font pango.

Procure por font pango no arquivo de configuração do i3 e altere para a fonte e o tamanho desejado. Exemplo:

$ nano ~/.i3/config

Onde tem:

font pango:DejaVu Sans Mono 8

Deixe assim:

font pango:Monospace 8

Salve e feche. Depois, reinicie com: Shift+MOD+r

Aplicativos úteis (recomendado)

Uma das coisas que fica faltando, para tornar o i3 mais usável é adicionar, na inicialização do gerenciador, alguns aplicativos úteis como um gerenciador de volume do som e Clipboard. Uma boa sugestão, seria instalar o Parcellite e o Volume Icon.

No Ubuntu:

$ sudo apt-get install parcellite volumeicon-alsa

No Slackware:

# sboinstall parcellite volumeicon

Adicione os dois na inicialização do i3, juntamente com os comandos que foram adicionados anteriormente:

$ nano .i3/config

### início automático

exec –no-startup-id parcellite &
exec –no-startup-id volumeicon #para ubuntu use volumeicon-alsa
#exec –no-startup-id feh –bg-scale /caminho/do/papel/de/parede.jpg
#exec –no-startup-id xsetroot -solid “#333333”
exec_always ~/.random_wallpaper.sh

Salve e feche o arquivo. Depois, execute os aplicativos no terminal:

$ parcellite &
$ volumeicon-alsa #Ubuntu
$ volumeicon & # Slackware

Se quiser que eles sejam executados ao reiniciar o i3, use exec_alway, ao invés de exec. Outra opção para o controle de volume, pode ser o volti ao invés do volumeicon.

E o protetor de tela? Bem, o Slackware já vem com o Xscreensaver, bastando adicionar ele ao arquivo de configuração, assim:

exec –no-startup-id parcellite &
exec –no-startup-id volumeicon
#exec –no-startup-id feh –bg-scale /caminho/do/papel/de/parede.jpg
#exec –no-startup-id xsetroot -solid “#333333”
exec_always ~/.random_wallpaper.sh
<strong>exec –no-startup-id xscreensaver -no-splash &</strong>

Se quiser, pode buscar outros como o slock, que é bem simples, não tem texto nem nada, apenas a tela preta. Dentre as opções também há o gnome-screensaver.

Compositor (opcional)

Para que os efeitos de transparência e/ou sombras sejam ativado, é necessário habilitar um compositor. Alguns ambientes gráficos tem seus próprios compositores, como o Xfce, KDE, Unity… No caso de gerenciadores de janelas leves, como Fluxbox, Openbox e i3, é necessário instalar um compositor para ativar alguns “efeitos”.

Dentre as opções mais comuns, existe o xcompmgr e o compton. Para instalar ambos, faça o seguinte:

Para Ubuntu:

$ sudo apt-get install xcompmgr compton

Para Slackware:

# sboinstall compton # O xcompmgr já é instalado por padrão

Para ativar a transparência e sombras, use:

$ xcompmgr -Cc

Ou, se quiser apenas as transparências:

$ xcompmgr -c

Se for usar o compton:

$ compton -c

Para mais informações:

$ xcompmgr –help
$ compton –help

Após determinar como quer os efeitos, adicione o comando ao arquivo de configuração para iniciar automaticamente, juntamente com os outros que foram adicionados antes:

$ nano ~/.i3/config

exec –no-startup-id parcellite &
exec –no-startup-id volumeicon
#exec –no-startup-id feh –bg-scale /caminho/do/papel/de/parede.jpg
#exec –no-startup-id xsetroot -solid “#333333”
exec_always ~/.random_wallpaper.sh
exec –no-startup-id  xcompmgr -C

Salve e feche.

É isso.

Conclusão

Com certeza, ainda resta muito sobre o i3 para ser abordado. Este artigo tratou apenas dos primeiros passos.

Espero que o artigo ajude pessoas interessadas em usar o i3, mas sentem dificuldade em começar. Aos usuários experientes com i3, por favor, contribuam com comentários, mais dicas de configuração, etc.

O uso do i3 pode ser motivado por diversas coisas, como necessidade ou apenas por ser divertido/legal de usar.

Seja qual for o motivo, o usuário GNU/Linux tem muitas opções, essa é apenas uma, e uma das melhores.

Rolar para cima