i3 - Tilling Window Manager
Um Tilling Window Manager é um gerenciador de janelas com uma organização da tela em quadros mutuamente não sobrepostos. O i3 é um gerenciador de janelas baseado no Wmii. Extremamente simples e minimalista, ajusta automaticamente o tamanho e a posição das janelas, não permitindo sobreposição e nem espaço perdido entre as janelas.
Parte 4: Editando as configurações
Primeiro, abra o seu arquivo "~/.i3/config" com seu editor de textos favoritos.
Todas as configurações estão neste arquivo, aqui vou descrever as minhas configurações e comentá-las, pra dar uma ideia sobre como proceder:
Se vale a pena ou não utilizá-lo, vai do gosto e da necessidade de cada um. É um Window Manager para os fuçadores em potencial.
Abraços.
Referências:
Todas as configurações estão neste arquivo, aqui vou descrever as minhas configurações e comentá-las, pra dar uma ideia sobre como proceder:
# Aqui estou utilizando o Alt como tecla modificadora, que é o default.
set $mod Mod1
# Fonte básica para o título das janelas.
# font for window titles. ISO 10646 = Unicode
font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
# Com essa opção você pode mover as janelas com Alt + botão esquerdo do mouse e redimensionar com Alt + botão direito do mouse.
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# Alt + Enter abre o Xterm, eu prefiro com fundo preto e letra branca...
# start a terminal
bindsym $mod+Return exec i3-sensible-terminal -bg Black -fg White
# Alt + Shift + Q fecha a janela em foco. Você usa isso pra fechar os programas, já que não há um botão de minimizar ou fechar.
# kill focused window
bindsym $mod+Shift+Q kill
# Alt + D abre o dmenu, que é onde você pode executar os programas mais complexos. Enquanto você vai digitando ele procura no PATH os arquivos e te mostra as opções. Você usa isto porque não tem botão de iniciar onde selecionar os aplicativos.
# start dmenu (a program launcher)
bindsym $mod+d exec dmenu_run
# Aqui é o default, pra sair ou recarregar o i3.
# reload/restart/exit
bindsym $mod+Shift+C reload
bindsym $mod+Shift+R restart
bindsym $mod+Shift+E exit
# Atalhos para mudar de janelas.
# change focus
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+semicolon focus right
#bindsym $mod+uring focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# Se quiser mudar as janelas de lugar só adicione o Shift.
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# Alt + H ou V para dividir de forma horizontal ou vertical quando for iniciar uma nova janela.
# split in horizontal orientation
bindsym $mod+h split h
# split in vertical orientation
bindsym $mod+v split v
# Essa aqui é bastante útil. Quando, por exemplo, o Firefox estiver pequeno você clica Alt + F e ele fica fullscreen você navega e quando quiser Alt + F volta ele pro seu lugar de novo.
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen
# Muda o layout do contêiner. Veja a foto para entender: http://i3wm.org/docs/userguide.html#_changing_the_container_layout
# change container layout (stacked, tabbed, default)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout default
# Serve para tirar a janela do seu lugar lado a lado e fazer ser possível arrastá-la como nos window-managers habituais.
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# focus the child container
#bindcode $mod+d focus child
# Cria novas áreas de trabalho virtuais com Alt + <numero>. Alt + Shift + <numeo> desloca a janela para a respectiva área de trabalho
# switch to workspace
bindsym $mod+1 workspace 1
bindsym $mod+2 workspace 2
bindsym $mod+3 workspace 3
bindsym $mod+4 workspace 4
bindsym $mod+5 workspace 5
bindsym $mod+6 workspace 6
bindsym $mod+7 workspace 7
bindsym $mod+8 workspace 8
bindsym $mod+9 workspace 9
bindsym $mod+0 workspace 10
# move focused container to workspace
bindsym $mod+Shift+exclam move container to workspace 1
bindsym $mod+Shift+at move container to workspace 2
bindsym $mod+Shift+numbersign move container to workspace 3
bindsym $mod+Shift+dollar move container to workspace 4
bindsym $mod+Shift+percent move container to workspace 5
bindsym $mod+Shift+dead_diaeresis move container to workspace 6
bindsym $mod+Shift+ampersand move container to workspace 7
bindsym $mod+Shift+asterisk move container to workspace 8
bindsym $mod+Shift+parenleft move container to workspace 9
bindsym $mod+Shift+parenright move container to workspace 10
# reload the configuration file
bindsym $mod+Shift+C reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+R restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+E exit
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
# Pressing left will shrink the windowâ^À^Ùs width.
# Pressing right will grow the windowâ^À^Ùs width.
# Pressing up will shrink the windowâ^À^Ùs height.
# Pressing down will grow the windowâ^À^Ùs height.
bindsym j resize shrink width 10 px or 10 ppt
bindsym k resize grow height 10 px or 10 ppt
bindsym l resize shrink height 10 px or 10 ppt
bindsym ccedilla resize grow width 10 px or 10 ppt
# same bindings, but for the arrow keys
bindsym 113 resize shrink width 10 px or 10 ppt
bindsym 116 resize grow height 10 px or 10 ppt
bindsym 111 resize shrink height 10 px or 10 ppt
bindsym 114 resize grow width 10 px or 10 ppt
# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
# Alt + R para redimensionar as janelas
bindsym $mod+r mode "resize"
# Inicia o terminal ao iniciar a sessão
# Execute the terminal emulator urxvt, which is not yet startup-notification aware.
exec --no-startup-id urxvt
# Executa barra de status na tela
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
status_command i3status
}
# O i3 trabalha muito bem com vários monitores. Você pode redirecionar a saída de cada área de trabalho virtual a um monitor diferente, por exemplo:
# workspace screens
workspace 1 output HDMI1
workspace 2 output HDMI1
workspace 3 output HDMI1
workspace 4 output HDMI1
workspace 5 output LVDS1
workspace 6 output LVDS1
workspace 7 output LVDS1
workspace 8 output LVDS1
set $mod Mod1
# Fonte básica para o título das janelas.
# font for window titles. ISO 10646 = Unicode
font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
# Com essa opção você pode mover as janelas com Alt + botão esquerdo do mouse e redimensionar com Alt + botão direito do mouse.
# Use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod
# Alt + Enter abre o Xterm, eu prefiro com fundo preto e letra branca...
# start a terminal
bindsym $mod+Return exec i3-sensible-terminal -bg Black -fg White
# Alt + Shift + Q fecha a janela em foco. Você usa isso pra fechar os programas, já que não há um botão de minimizar ou fechar.
# kill focused window
bindsym $mod+Shift+Q kill
# Alt + D abre o dmenu, que é onde você pode executar os programas mais complexos. Enquanto você vai digitando ele procura no PATH os arquivos e te mostra as opções. Você usa isto porque não tem botão de iniciar onde selecionar os aplicativos.
# start dmenu (a program launcher)
bindsym $mod+d exec dmenu_run
# Aqui é o default, pra sair ou recarregar o i3.
# reload/restart/exit
bindsym $mod+Shift+C reload
bindsym $mod+Shift+R restart
bindsym $mod+Shift+E exit
# Atalhos para mudar de janelas.
# change focus
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+semicolon focus right
#bindsym $mod+uring focus right
# alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
# Se quiser mudar as janelas de lugar só adicione o Shift.
# alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
# Alt + H ou V para dividir de forma horizontal ou vertical quando for iniciar uma nova janela.
# split in horizontal orientation
bindsym $mod+h split h
# split in vertical orientation
bindsym $mod+v split v
# Essa aqui é bastante útil. Quando, por exemplo, o Firefox estiver pequeno você clica Alt + F e ele fica fullscreen você navega e quando quiser Alt + F volta ele pro seu lugar de novo.
# enter fullscreen mode for the focused container
bindsym $mod+f fullscreen
# Muda o layout do contêiner. Veja a foto para entender: http://i3wm.org/docs/userguide.html#_changing_the_container_layout
# change container layout (stacked, tabbed, default)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout default
# Serve para tirar a janela do seu lugar lado a lado e fazer ser possível arrastá-la como nos window-managers habituais.
# toggle tiling / floating
bindsym $mod+Shift+space floating toggle
# change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle
# focus the parent container
bindsym $mod+a focus parent
# focus the child container
#bindcode $mod+d focus child
# Cria novas áreas de trabalho virtuais com Alt + <numero>. Alt + Shift + <numeo> desloca a janela para a respectiva área de trabalho
# switch to workspace
bindsym $mod+1 workspace 1
bindsym $mod+2 workspace 2
bindsym $mod+3 workspace 3
bindsym $mod+4 workspace 4
bindsym $mod+5 workspace 5
bindsym $mod+6 workspace 6
bindsym $mod+7 workspace 7
bindsym $mod+8 workspace 8
bindsym $mod+9 workspace 9
bindsym $mod+0 workspace 10
# move focused container to workspace
bindsym $mod+Shift+exclam move container to workspace 1
bindsym $mod+Shift+at move container to workspace 2
bindsym $mod+Shift+numbersign move container to workspace 3
bindsym $mod+Shift+dollar move container to workspace 4
bindsym $mod+Shift+percent move container to workspace 5
bindsym $mod+Shift+dead_diaeresis move container to workspace 6
bindsym $mod+Shift+ampersand move container to workspace 7
bindsym $mod+Shift+asterisk move container to workspace 8
bindsym $mod+Shift+parenleft move container to workspace 9
bindsym $mod+Shift+parenright move container to workspace 10
# reload the configuration file
bindsym $mod+Shift+C reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+R restart
# exit i3 (logs you out of your X session)
bindsym $mod+Shift+E exit
# resize window (you can also use the mouse for that)
mode "resize" {
# These bindings trigger as soon as you enter the resize mode
# Pressing left will shrink the windowâ^À^Ùs width.
# Pressing right will grow the windowâ^À^Ùs width.
# Pressing up will shrink the windowâ^À^Ùs height.
# Pressing down will grow the windowâ^À^Ùs height.
bindsym j resize shrink width 10 px or 10 ppt
bindsym k resize grow height 10 px or 10 ppt
bindsym l resize shrink height 10 px or 10 ppt
bindsym ccedilla resize grow width 10 px or 10 ppt
# same bindings, but for the arrow keys
bindsym 113 resize shrink width 10 px or 10 ppt
bindsym 116 resize grow height 10 px or 10 ppt
bindsym 111 resize shrink height 10 px or 10 ppt
bindsym 114 resize grow width 10 px or 10 ppt
# back to normal: Enter or Escape
bindsym Return mode "default"
bindsym Escape mode "default"
}
# Alt + R para redimensionar as janelas
bindsym $mod+r mode "resize"
# Inicia o terminal ao iniciar a sessão
# Execute the terminal emulator urxvt, which is not yet startup-notification aware.
exec --no-startup-id urxvt
# Executa barra de status na tela
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
status_command i3status
}
# O i3 trabalha muito bem com vários monitores. Você pode redirecionar a saída de cada área de trabalho virtual a um monitor diferente, por exemplo:
# workspace screens
workspace 1 output HDMI1
workspace 2 output HDMI1
workspace 3 output HDMI1
workspace 4 output HDMI1
workspace 5 output LVDS1
workspace 6 output LVDS1
workspace 7 output LVDS1
workspace 8 output LVDS1
Conclusão
Espero com este artigo, ter conseguido pelo menos apresentar o i3 Tilling Window Manager, que é extremamente leve e rápido, trabalha muito bem com múltiplos monitores, porém, apresenta uma curva de aprendizado um pouco maior para a sua utilização plena.Se vale a pena ou não utilizá-lo, vai do gosto e da necessidade de cada um. É um Window Manager para os fuçadores em potencial.
Abraços.
Referências:
Muito interessante!