O DWM é um “tiling window manager” minimalista, i. e., é um gerenciador de janelas lado a lado minimalista.

Confesso que sempre achei muito estranho usar todas as janelas maximizadas, mas como gosto de testar, principalmente para melhorar meu uso do PC, resolvi usar os “tiling wm” por um tempo.

O primeiro que testei foi o Awesome com seus arquivos de configuração em Lua, estava interessado em Lua, não necessariamente para me tornar exímio programador nela, mas apenas para ampliar um pouco meus conhecimentos.

Depois testei o xmonad, que é em Haskell, pelo mesmo motivo acima, por causa da linguagem que é feito.

Awesome tinha muitas opções de configuração, particularmente não gosto disso :/, e parei de usar xmonad apenas por que eu parei um tempo de estudar Haskell, mas eu já havia pego o gosto pelos “tiling wm”, procurando um pouco achei o dwm, por seu carater minimalista e por sua leveza logo me agradou muito.

Instalação e Configuração

Primeiro git clone:

$ git clone http://git.suckless.org/dwm

Copie o arquivo config.def.h para config.h:

$ cp config.def.h config.h

Edite-o e faça as suas configurações (falarei delas mais adiante).

Para terminar a instalação, falta apenas:

$ make && make install

Se quiser, pode instalar num PREFIX diferente:

$ make && make PREFIX=/opt/dwm install

O último passo da instalação é criar o arquivo /usr/share/xsessions/dwm.desktop com o seguinte conteúdo:

[Desktop Entry]
Encoding=UTF-8
Name=dwm
Comment=Dynamic window manager
Exec=/usr/local/bin/dwm
Icon=dwm
Type=XSession

Nota: Edite o Exec acima de acordo com seu make install.

Agora o dwm já deve aparecer no seu gerenciador de login gráfico (KDM, GDM, LightDM, …).

Uma dica é você instalar pelo seu gerenciador de pacotes da sua distro o dmenu para chamar os programas, sem precisar abrir um terminal.

Configuração

A configuração é a parte mais chata, pelo único fato de que você:

  • Faz a configuração editando o config.h;
  • Compila e “instala” novamente :/;
  • Reinicia o X;

Pelas minhas pesquisas tem como não precisar reiniciar o X, mas como eu não vou ficar fazendo os processos acima todo os dias da minha vida, resolvi não mudar nada nesse fluxo.

Teclas de atalho básicas (Estou usando um teclado apple, então a tecla abaixo command deve ser o equivalente ao alt para você):

  • command+shit+q, para fechar o dwm;
  • command+shit+c, para fechar a janela atual;
  • command+p, para chamar o dmenu (para executar os programas);
  • command+return, para chamar o terminal (que por padrão é o st, edite o config.h e mude para o que você usa);
  • command+N (onde N é um número de 1-9) para mudar a “tag” (algo como os ambientes de trabalho virtual no gnome/kde/xfce);
  • command+shift+N (onde N é um número de 1-9) para mandar a janela atual para outra tag;
  • command+j (ou command+k) para mudar entre as janelas da tag atual.

Abra o arquivo config.h para ver mais teclas e também para customizar.

Usage

O dwm não trabalha somente com as janelas maximizadas, mas ele pode também colocar uma ao lado da outra (gerenciador de janelas lado a lado, sacou?), ou deixar você livre para escolher o tamanho e disposições delas.

Devo adimitir que nesse ponto o xmonad (não lembro sobre o awesome, pois faz muito tempo que usei) se sai melhor, mas para as minhas necessidade ele faz o que preciso.

As combinações de tecla para isso são:

  • command+t, coloca uma do lado da outra, neste modo pode-se usar o command+i para mudar para vertical ou o command+d para ficar na horizontal;
  • command+f, float mode, modo “flutuante”, aqui as janelas tem o comportamento “normal” dos outros gereciadores de janelas;
  • command+m, modo de janela única, i. e., somente uma janela por vez é mostrada e ela fica maximizada sempre, para mudar entre janelas, use o command+j (ou command+k);