4 mins

DWM

DWM é um tiling window manager, um tipo de gerenciador de janelas, responsável por dispor as aplicações na tela.

Como conheci DWM

Quando vi o vídeo do youtuber Luke Smith conheci o I3wm (outro gerenciador) e, em seguida, o algoritmo do youtube me recomendou o vídeo do Derek Taylor. Gostei da proposta desafiadora de tentar não usar mouse - a pouco tempo tinha começado a utilizar vim - e também a diminuição de consumo de memória RAM. Fui experimentando no meu Ubuntu 18.04. Porém, em outro momento, no canal DistroTube encontrei drogas mais pesadas, DWM. DWM possui a filosofia suckless, tornando seu código fonte o menor possível, normalmente aumentando o desempenho do programa - não vi diferença de tempo de resposta entre o i3wm. Optei ficar com DWM pela simplicidade de configuração.

Por que DWM?

Dmenu

DWM vem com dmenu, que é um lançador de aplicativos. Apertando Super+d por padrão pode pesquisar e executar, por exemplo, firefox. exemplo dmenu

Funcionamento

DWM trabalha com os conceitos de clientes, área master, tags e modos.

Meu uso comum

Instalação

Para instalar basta paixar o código fonte e compilar com o comando sudo make clean install e colocar em seu ~/.xinitrc o trecho exec dwm obs: Dependendo do seu display manager, responsável por iniciar o desktop, talvez seja necessário configurá-lo. Para o lightdm, basta criar um novo arquivo dwm.desktop como abaixo e colocá-lo em /usr/share/xsession.

[Desktop Entry]
Name=DWM
Comment=DWM
Exec=/home/neni/.xinitrc
Type=Application

Ao fazer isso, antes de logar pode ser escolhido o perfil DWM.

Configuração

Escrevendo no config.h

As configurações mais simples como cores, atalhos, numero e simbolos de tags, bordas de janelas e font padrão é no arquivo config.h. A cada modificação é necessário recompilar o código e reiniciar a sessão.

Patches

DWM vem com o mínimo necessário, porém existem diversas outras features implementadas por outros programadores que podem ser implementadas. Elas são através de patches, que são “colagens” de código. Como funciona:

Personalizando status bar

É possível modificar a barra de status através do comando:

xsetroot -name "tudo que for colocado aqui | vai atualizar a barra de status"
xsetroot -name "$(echo 'tabém é possivel usar comandos bash')"

Um exemplo de script que atualiza sozinho a barra (para o relógio) é:

online(){
    curl -w %{http_code} --silent -o /dev/null google.com | awk '{if($0=="000") {print "OFFLINE"} else { print "ONLINE"}}'
}

datetime(){
    echo " $(date +%H:%M)"
}

while true; do
    xsetroot -name "$(online) | $(datetime)"
    sleep 5s
done

Para inicializar o script automaticamente ao entrar numa sessão, basta colocar no arquivo ~/.xinitrc.

pkill -f ~/dev/scripts/dwm/status.sh # mata processo do script se existente

~/dev/scripts/dwm/status.sh& # modifica status

exec dwm # inicia dwm

Atualizações desse post

Pretendo atualizar este post com meu tempo de experiência do DWM. Na primeira versão (08/06/2019) possuo por volta de 1 mês de uso com o gerenciador.

Observações

Criado em June 10, 2019