cyb3rpunk

Dynamic Window Manager

Posted in Archlinux, GNU/Linux, linux, Tutorial by ramonovski on febrero 26, 2010

dwm es el Window Manager que actualmente uso en Archlinux. Mi experiencia usándolo es apenas de unas cuantas semanas, así que mi conocimiento sobre su manejo es algo limitado pero trataré de explicar detalladamente lo necesario para poder instalarlo y configurarlo.

Quisiera destacar primero que su configuración es ridículamente fácil. Y solo como datos, mencionar que es el papá de otros TWM como Xmonad y Awesome, está orientado al minimalismo; el código fuente está en C y uno de las ‘preocupaciones’ de los desarrolladores es que la longitud del código no sobrepase las 2000 lineas; algo gratificante a la hora de modificar el código fuente y al recompilar.

> Instalación

La instalación en Archlinux se hace con el clásico pacman -S dwm

Ya descargado el paquete, los requisitos previos para la compilación de dwm son los paquetes base-devel y abs

# pacman -S base-devel abs

Y actualizamos los scripts de los repositorios de abs

# abs

Lo siguiente es ubicar el directorio para dwm que está en la ruta /var/abs/community/dwm el cual contiene los archivos necesarios para su compilación y configuración, y después copiar este directorio a algún lugar al cual tengamos acceso como usuario, entonces:

$ cp -r /var/abs/community/dwm ~/dwm

Nos movemos a ~/dwm y…

$ makepkg -i

Ahora ya tendremos dwm compilado e instalado listo para usarlo. La configuración por default es básica y no tiene un buen aspecto, pero funciona.

 

Ahora la parte divertida…

> Configuración

Primero que nada. el archivo que controla todo el asunto de la configuración es config.h (Hay que hacerle un copia como respaldo, si o si… créeme)

Este archivo está bastante bien comentado como para ponerme a explicar cada cosa, pero como dije que esto era para novatos, pues voy a explicar un poco cada parte del archivo.

 

Pasamos a editarlo con nuestro editor de texto.

editor ~/dwm/config.h 

La primer seccción define la apariencia de la barra que viene por default donde hay que establecer en hexadecimal los colores que queramos para la barra, fuente, el borde, así como el tipo y tamaño de fuente.

Luego viene un arreglo cuya variable es *tags[] Aquí se definen los identificadores (separados por comas y con doble comilla) que querramos tener para nuestros ‘workspaces’.

La siguiente parte es otra variable rules[] donde se definen en que workspace y de qué modo se abrirán las aplicaciones que especifiquemos.

En la columna ‘titulada’ tags mask vamos a definir el lugar donde se abrirá la aplicación.

1 << 2

Donde el 2 es el workspace numero 3 (se cuenta a partir del 0) y el 1 es el orden de la ventana.

Más adelante está una linea #define MODKEY Mod1Mask

Aquí definimos la tecla que querramos establecer como modkey, en mi caso yo tengo la famosa tecla ‘win’ así que pongo Mod4Mask.

Luego tenemos una sección comentada como /* commands */ donde establecemos algunos atajos básicos.

Estas lineas establecen los parámetros para ejecutar dmenu y la terminal con sus propios atributos. dmenu permite tambien configurar colores y tipo de fuente entre otras cosas, por default tomará los valores que hayamos asignado para la barra principal.

En la sección siguiente el arreglo con la variable keys[] es donde se definen los atajos que habrá de leer dwm para ejecutar las acciones. Siendo mas específico, la columna ‘key‘ es la que define la segunda (o tercer) tecla a utilizar. Por lo general será modkey + tecla

Como en el caso de la siguiente linea:

/* modifier          key    function     argument */

{MODKEY|ShiftMask,   XK_c,  killclient,    {0} },

Donde XK_c pertenece a la tecla ‘c’, y su función es cerrar una ventana (cliente). ShiftMask es la tecla Shift. El atajo sería entonces «win + shift + c»

o esta linea…

/* modifier     key        function        argument */

TAGKEYS(        XK_4,                       3)

Donde la tecla «XK_4» (la tecla 4) servirá para moverse al workspace número 4. «win + 4»

La última sección son acciones para el mouse, que la verdad uso casi nunca así que no las explicaré. (Tip: ModKey + click derecho = ampliar/reducir ventana)

Después de hacer todas las modificaciones y haber guardado el documento hay que recompilar y reiniciar dwm para que los cambios sean efectivos. El trabajo se hace con:

$ makepkg -g >> PKGBUILD


y

$ makepkg -efi

Cerramos dwm con Modkey + Shift + q y volvemos a iniciarlo. Esto es quizás el único inconveniente que le encuentro a dwm, más si eres nuevo y si tienes que modificar cosa por cosa.

 

> Iniciar dwm

Simplemente habremos de agregar al archivo ~/.xinitrc la linea

exec dwm

Funciona para SLIM y con el comando startx Para GDM se agrega a ~/.Xclients la misma linea y en el menu de sesión de GDM se escoje «Run XClient Script»

 

> Wallpaper

Mediante el paquete feh (pacman -S feh) es fácil hacer esto. En el archivo .xinitrc agregamos

sh ~/.fehbg &

Y en el archivo .fehbg es donde tendremos señalado qué imagen cargará como fondo.

feh --bg-scale /home/usuario/Imagenes/tralala.png

Aquí pongo mis archivos de configuración:

[ config.h | .xinitrc ]

Y mostrándolo en acción aquí.

Y ya, creo que es todo lo básico. Más adelante postearé un manual para tener conky en la barra con ayuda de dzen, y quizás un post dedicado a dmenu, que para mí es la aplicación mas útil que he conocido con dwm.

Links:
Página oficial (Con parches, tutoriales, configuraciones, etc…)
Wiki en Archlinux
dwm en Windorks
dwm en Debian

————————-

E    D    I    T

Me he enterado de un sencillo script para reiniciar dwm sin la necesidad de salirnos de la sesión y perder las aplicaciones abiertas.

[ startdwm | .xinitrc ]

 

:wq

Tagged with: ,

17 respuestas

Subscribe to comments with RSS.

  1. tabris said, on febrero 27, 2010 at 6:51 am

    Excelente post tan pronto tenga tiempo propabaré el dwm haber que tal va

  2. /b/tard said, on febrero 27, 2010 at 9:46 am

    SRSLY?
    But DWM is 4 the elite of BOFHs no 4 stupids lusers.
    HOWTOs are so gay

    • chupy35 said, on febrero 27, 2010 at 9:37 pm

      😦 entonces he aprendido todo lo que se de la manera mas gay 😦

      soy luser y gay 😦

      me odio por no haber nacido con el conocimiento…

  3. chupy35 said, on febrero 27, 2010 at 9:36 pm

    Gracias por el post

    Estoy testeando para aver si me lo quedo 😛

    no se por que ultimamente he tenido una hueva impresionante de no querer hacer nada.

  4. Ulises said, on May 9, 2010 at 2:57 pm

    Hola que tal, trato de instalar el dwm, pero al momento de dar el comando :makepkg -i:, me sale un error el cual dice.,

    mkdir: no se puede crear el directorio /home/ulises/dwm/src = permiso denegado.

    soy relativamente nuevo en Arch, solo he logrado instalarlo con xfce4 y OpenBox, mas sin embargo me gusta mucho la idea de no poder usar mucho el mouse por eso quiero instalar dwm, mas no puedo., alguno de ustedes me puede ayudar?

    saludos

    • Teh said, on May 9, 2010 at 3:56 pm

      Dale permiso a tu usuario sobre el directorio /var/abs/community/dwm

      chown -R usuario /var/abs/community/dwm/

      Y ahora intenta copiar de nuevo todo a tu /home y etc…

      • Ulises said, on May 10, 2010 at 10:57 am

        lo que hago es lo siguiente, en root hago esto:
        – pacman -S dwm
        – pacman -S base-devel abs
        – abs
        – cp -r /var/abs/community/dwm /home/ulises/dwm ///* o tambien estando dentro de mi usuario.
        – sudo cp -r /var/abs/community/dwm dwm
        Ya dentro de mi usuario hago el paso final, en el cual me sigue arrojando el mismo error.
        – makepkg -i

        Hice lo que me comentaste al principio,
        – chown -R usuario /var/abs/community/dwm/
        pero tampoco asi me dio resultado.

        me sigue saliendo el mismo error
        – mkdir: no se puede crear el directorio /home/ulises/dwm/src = permiso denegado.

        es por que no puede crear un directorio llamado src.

        espero alguien me pueda ayudar.

        saludos

  5. Teh said, on May 10, 2010 at 3:40 pm

    @Ulises:

    No hagas como root el asunto de copiar (cp -r /var/abs…)

    Y sobre lo de chown… No sé si preguntar esto pero… ¿Sustituiste «usuario» por tu nombre de usuario?

    Si sigues teniendo problemas te diré otra manera de instalarlo.

    • Ulises said, on May 10, 2010 at 10:27 pm

      lo logre, cierto no era con root., lo que hice de diferente fue esto:

      -abs ****///como root
      -chown -R ulises /var/abs/community/dwm/ ///*** como root
      …. me sali de root y entre a mi usuario

      -cp -r /var/abs/community/dwm/ dwm
      -Entro al directorio dwm
      -makepkg -i

      y ahora si, si funciono.

      Mil gracias…

      saludos

  6. Tengo un Windos « cyb3rpunk said, on septiembre 14, 2010 at 11:16 pm

    […] es horrible; tengo problemas con ese jodido MinGW para compilar dwm […]

  7. Puerto said, on diciembre 1, 2010 at 3:00 pm

    Hola que tal, he instalado el dwm, es maginifico, pero al momento de volver a compilar, hago esto:

    – makepkg -g >> PKGBUILD
    – makepkg -efi

    me sale el siguiente error:
    ERROR: pkgname is not allowed to be empty.

    he buscado informacion al respecto pero no he encontrado nada.

    No me podrias dar una mano, por que no se como salir de este problema ahora.

    Saludos.

    • ramonoid said, on diciembre 1, 2010 at 9:55 pm

      Nunca había visto ese error.

      Me di cuenta que a partir de no-sé-qué-versión no es necesario volver a crear el PKGBUILD, así que sáltate ese paso e inténtalo de nuevo.

      En caso de que siga sin funcionar, suena tonto pero… respalda tu config.h y vuelve a compilar de nuevo.

      Y por cierto…

      ¿Lo estás compilando desde las fuentes en Slackware? Lo digo porque tienes el logo de Slackware como avatar =P
      Si ese es el caso, habría que ver si hay algo extra que se tenga que hacer (altamente probable =P).

  8. Mishu Dark said, on agosto 7, 2011 at 2:00 pm

    Hola, saben como puedo hacer que las aplicaciones que requieren gtk (firefox) se vean con algun tema bonito, porq por default las interfaces parecen sacadas de windows 98

    • ramonovski said, on agosto 7, 2011 at 10:01 pm

      Instalando algún tema gtk en /usr/share/themes (o en $HOME/.themes de manera local) y con lxappearance seleccionarlo.

  9. bl4ck said, on octubre 11, 2011 at 2:28 pm

    habia intentado instalar dwm sin exito, pero este tuto se ve muy bueno 🙂 en cuanto salga del trabajo lo intentaré denuevo.

    Saludos y nos vemos en #archlinux-es

  10. bl4ck said, on octubre 13, 2011 at 5:14 am

    Funcionando perfecto!!!! le bajare algunos parches y a seguir explorando.

    gracias por el how to 😉

  11. […] mejor gia que econtre es esta: https://cyb3rpunk.wordpress.com/2010/02/26/dynamic-window-manager/ AQUI LA COMBINACION DE […]


Replica a Teh Cancelar la respuesta