Hace tiempo que hablé de Xmonad, y hasta hace poco ha sido mi gestor de ventanas, durante varios años. Pero semanas atrás descubrí el proyecto original en el que se basaba xmonad, DWM. Xmonad es un clon de DWM escrito en Haskell, lo cual lo hace un poco más pesado y lento debido a las dependencias que tiene y la necesidad de instalar su compilador. Tras probar DWM, no puedo estar más contento con el resultado, está escrito en C, y todas las modificaciones en la configuración se hacen sobre el propio código, lo cual lo hace muy eficiente y rápido. En este artículo veremos cómo instalar y configurar DWM.



Qué es DWM

DWM es un gestor de ventanas dinámico que permite organizar las ventanas de varias formas (tiled, monocle y floating). Cada ventana se asigna a una etiqueta, esto podría considerarse como escritorios en otros gestores de ventanas. Por defecto hay 9 etiquetas.

Cómo instalar DWM

La mejor forma es clonar el repositorio git:

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

Una vez clonado y dentro del directorio, compilamos e instalamos:

$ sudo make clean install

Ya está listo para usar, pero hay que hacer una última cosa para poder ejecutarlo tras introducir nuestro usuario y contraseña del ordenador. Si usas Ubuntu o Debian, probablemente lightdm sea el gestor de login. De ser así, añadiremos una entrada a la lista de sesiones de lightdm para poder acceder a DWM. Para ello creamos el fichero dwm-personalized.desktop y lo copiamos a /usr/share/xsessions/

[Desktop Entry]
Encoding=UTF-8
Name=Dwm-personalized
Comment=Dynamic window manager
Exec=dwm-personalized
Icon=dwm.png
Type=XSession

En éste archivo estamos definiendo la información necesaria para que lightdm sea capaz de ejecutar DWM cuando entremos en el pc. Exec=dwm-personalized indica qué script debe ejecutarse, pero aún no lo hemos creado. Éste archivo debe contener todos los programas que queramos iniciar y, en la última línea, se debe ejecutar DWM. Mi script es así:

#!/bin/bash

# setting keuboard layout /usr/share/X11/xkb/rules/base.lst
setxkbmap us intl

xset +fp /usr/share/fonts/local
xset fp rehash

nm-applet &
insync start &
transmission-gtk &
.dropbox-dist/dropboxd &
parcellite &
xfce4-volumed &

#Set status bar & start DWM
dwmstatus &

exec dwm

Creado el script, hay que darle permisos de ejecución y copiarlo a /usr/bin

$ chmo +x dwm-personalized
$ sudo cp dwm-personalized /usr/bin

Primera ejecución

Ejecutados los pasos anteriores, ahora basta con salir de la sesión actual y entrar con DWM. Algunas cosas que probablemente sean adecuadas cambiar antes de ejecutar dwm es qué terminal usar. Para ello hay que modificar la variable termcmd en config.def.h, que por defecto es:

static const char *termcmd[]  = { "st", NULL };

Por el terminal preferido de cada uno, el mio por ejemplo es Terminator:

static const char *termcmd[]  = { "terminator", NULL };

Recompilamos y listo.

Instalar Dmenu

Un programa muy útil es dmenu, permite lanzar cualquier programa abriendo una ventanita en la que podemos escribir el nombre del programa a ejecutar:

Para instalarlo:

$ sudo apt-get install suckless-tools

Debemos modificar una línea en config.def.h ya que parece ser que la versión que instala Ubuntu no concuerda con la que supone dwm y hay un parámetro que no existe. Para ello eliminamos , "-m", dmenumon de ésta línea:

static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", font, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL };

Quedando así:

static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL };

Probando DWM

Ahora que está todo al entrar podremos ejecutar un terminal pulsando ALT+Shift+Enter, ejecutar dmenu pulsando ALT+p etc. Los atajos de teclado se definen en el array static Key keys[].

Cambiar la tecla ALT por la de Windows

Para los usuarios de Linux, la tecla de Windows no se usa prácticamente para nada, lo cual viene muy bien para este tipo de programas, y así de paso evitamos interferir con cualquier otro atajo que haya definido otro programa. Para cambiar el modificador ALT por la tecla de Windows basta con cambiar

#define MODKEY Mod1Mask

por

#define MODKEY Mod4Mask

en el fichero config.def.h

Aplicar parches

Existen multitud de modificaciones hechas por los usuarios de DWM para añadirle funcionalidad. Pueden encontrarse en este repositorio de github.

Comentarios finales

Espero que esta pequeña introducción haya servido al lector. Desde que entré en el mundo de éste tipo de gestores de ventanas no he querido volver a ver a los gestores clásicos. Una vez te acostumbras a usar el teclado, la velocidad al trabajar en el pc aumenta considerablemente.

Aquí dejo una captura de pantalla de mi escritorio actual. En unos días explicaré cómo desarrollé la posibilidad de colorear la barra de estado (Ya está disponible aquí), ya que por defecto la versión 6.1 de DWM no lo permite.

Referencias

Web Oficial de DWM »» dwm.suckless.org

Índice