Mis experimentos con Awesome (Actualizado)

Fue nuestro cofrade Lázaro Armando, conociendo mi inclinación hacia el minimalismo y en este caso los administradores de ventanas, el primero en hablarme de «awesome». Por aquella época usaba (no hace mucho que digamos), Debian 6, ahora Debian 8; pero, estaba inmerso en el aprendizaje de entornos más fáciles de configurar (IceWM, PekWM, JWM, etc), mientras el «imponente, pasmoso, impresionante, tremendo, sensacional, fabuloso» -esos son los significados del adjetivo «awesome» en inglés-, no me lucía tanto como declaraba su gracia, ahora tampoco. No obstante, como es preferible ser aprendiz de todo antes que maestro de nada, hace cuestión de quince días me dediqué a explorar este WM que cosas buenas también tiene y que, en la plataforma marítima nacional (Intranet), no cuenta con manuales o guías para su uso, al menos yo no los encontré.

¿Qué características tiene awesome?:

Este administrador de ventanas es uno de los primeros en combinar la disposición de las ventanas entre el modo mosaico (tiled), fórmula en la que las aplicaciones se adaptan a las ventanas y no a la inversa y el modo tradicional de ventanas flotantes a libre disposición del usuario; no obstante, como dice José Luis Lara Carrascal en su magnífico sitio manualinux (http//manualinux.eu) y en lo tocante al wm que ahora nos ocupa, no todos los programas están concebidos para trabajar bajo estas características y ello es un punto flaco; sin embargo, la versión 4 (en Debian 8 viene la versión 3.4.15-1) ya trae en las ventanas -como es costumbre-, las opciones de cerrar, maximizar y minimizar, haciendo más amigable este wm.

Awesome es el primer administrador de ventanas en usar las librerías XCB, en lugar de la antigua síncrona XLib que, según noticias, consume más memoria.  El wm de marras puede ser manejado únicamente a través del teclado; no obstante, el ratón también se emplea y a mi, mortal entre los mortales, me hace las cosas más fáciles.

Una de las características principales de awesome es que, en vez de usar escritorios, emplea etiquetas (tag), y como para no economizar, por defecto nos muestra 9 de ellas; pero eso no es todo, permite poner a los clientes (ventanas) en varias etiquetas y desplegarlas al mismo tiempo; o sea, en la etiqueta uno (1) tengo abierto, como sucede ahora: «goldendict», «firefox», «gedit» y «pcmanfm» y en la etiqueta dos (2) «lxterminal», pues bien, doy clic derecho sobre alguno de los clientes de la etiqueta 1 y, me muestra también «lxterminal» que está  en la etiqueta contigua y, al instante de seleccionarla, me lleva a esta etiqueta y al cliente en cuestión.

Cuando instalamos el wm, el panel -donde se visualizan los clientes (programas minimizados), las etiquetas, la fecha, la hora y el menú-, en la parte superior derecha vamos a encontrar, a golpe de ratón, las opciones para cambiar la disposición de las ventanas entre la opción de mosaico, «[…] compuesto por una zona maestra y una zona apilable. La zona maestra contiene las ventanas que requieren más atención por parte del usuario y la zona apilable, las otras ventanas. La zona maestra puede dividirse en columnas y filas.  Y el diseño flotante, en el que el administrador de ventanas, gestiona éstas al modo tradicional permitiendo al usuario la libre disposición de las mismas en la pantalla.»(1)

Otra de las características es el manejo del diseño de ventanas para cada etiqueta; o sea, en la etiqueta 1 las ventanas son flotantes; en la etiqueta 2 son de tipo mosaico y la ventana maestra está a la izquierda; en la etiqueta 3, también de tipo mosaico, la ventana maestra puede estar a la derecha o abajo y en la etiqueta 4 puede tener cualquier otro orden. El wm ofrece trece formas de disponer las ventanas. También brinda la característica de transparencia real mediante el uso de xcomprmgr y la extensión Composite de Xorg y como si no fuera poco, permite igualmente configurar que aplicaciones abrir en cada etiqueta.

¿Cómo configurarlo?:

Tan pronto se instale el programa localice en /etc/xdg el directorio «awesome» y cópielo para /home/usuario/.config; pues, dentro del mismo está el cerebro y el corazón de awesome: el fichero «rc.lua», sobre el que se realizarán todas las configuraciones sin necesidad de actuar con  permisos de root o dañar el original. Ahora bien, cuando se modifica «rc.lua», los cambios no se verifican hasta después de «recargar» awesome mediante la opción «restart»; pero, si la modificación no es correcta, se bloqueará la sesión; por ello, resulta conveniente después de una transformación en «rc.lua» y antes de recargar, comprobar la sintasix en la terminal con el comando:

$ awesome -k

Si todo está bien, entonces el sistema nos devolverá el mensaje:

$ Configuration file syntax OK

No obstante, que la sintasix esté correctamente escrita no garantiza el funcionamiento de lo que hemos pretendido; puede ser entonces que nos salga un mensaje en fondo rojo señalando: «Oops, there were errors during startup!» y a continuación una breve explicación en inglés sobre la pifia, por lo que será preciso volver a reconfigurar, chequear la sintasix y así hasta dar «pie con bola» o desistir… momentáneamente 🙂

El  menú en awesome:

Como la mayoría de los administradores de ventanas, al dar clic derecho sobre el escritorio o clic izquierdo en el  ícono de inicio, se despliega un menú que consiste en:

awesome —> manual / edit config / restart / exit
Debian —> Aquí se despliega el menú de Debian.
open terminal

Sin embargo, este puede modificarse o configurarse según los gustos o necesidades. El menú de awesome en «rc.lua» está en la sección «mymainmenu». Aquí les dejo el mio como muestra:

mymainmenu = awful.menu({ items = { { «awesome», myawesomemenu, beautiful.awesome_icon },
{ «Debian», debian.menu.Debian_menu.Debian },
{ «PCmanFM», «pcmanfm» },
{ «Firefox», «firefox-esr» },
{ «Gedit», «gedit» },
{ «LOffice», «libreoffice» } ,
{ «Goldendict», «goldendict» },
{ «HandyMenu»,  «handymenu» }
}
})

Por su parte, el menú Debian, construido en el fichero «menu.lua», está en la carpeta Debian dentro del directorio awesome copiado hacia /home/usuario/.config

Este menú puede ejecutarse también por encima de cualquier cliente o programa con la combinación Mod4 (tecla Windows) + w y saldrá en el lugar donde se encuentre el cursor del ratón; para cerrarlo, de clic derecho sobre el ícono del menú.

Puede ser que al pasar el  puntero del ratón por encima de una entrada del menú de Debian el sistema lance el mensaje  «Oops, there were errors during startup!»; ello se debe a que no está instalado o no encuentra la aplicación. La solución es borrar la entrada o darle el camino adecuado.

La tecla Mod4 o tecla Windows:

Los textos consultados y las páginas del man del wm sugieren no cambiar esta tecla para evitar conflictos; empero, si Ud. es de los que gusta correr riesgos, puede hacerlo, tiene toda la libertad para ello, no por gusto awesome es SWL.

Los atajos de teclado:

A pesar de usar el ratón, los atajos del teclado suelen ser más rápidos y este wm permite ejecutar nuestros programas preferidos auxiliándonos de dicho periférico. A continuación mis atajos de teclado.

— Standard program
awful.key({ modkey,           }, «2», function () awful.util.spawn(«lxterminal») end),
awful.key({ modkey,           }, «3», function () awful.util.spawn(«sudo synaptic») end),
awful.key({ modkey,           }, «4», function () awful.util.spawn(«goldendict») end),
awful.key({ modkey,           }, «5», function () awful.util.spawn(«lxappearance») end),
awful.key({ modkey,           }, «8», function () awful.util.spawn(«sudo killall -u delio») end),
awful.key({ modkey,           }, «9», function () awful.util.spawn(«sudo reboot») end),
awful.key({ modkey,           }, «0», function () awful.util.spawn(«sudo poweroff») end),
awful.key({ modkey, «Control» }, «r», awesome.restart),
awful.key({ modkey, «Shift»   }, «q», awesome.quit),

Las últimas dos entradas vienen por defecto, las siete primeras han resultado configuradas por mi. Nótese que comentar una línea en este wm se verifica con dos guiones (–).  Esta configuración hace que «lxterminal» se abra en la etiqueta 2, «synaptic» en la 3, «goldendict» en la 4 y «lxappearance» en la 5. Por cierto, siempre reservo el número 1 para el gestor de archivos -empleo PCManFM-, pero desconozco el motivo por el cual, al crear un atajo para dicho programa y moverme entre las etiquetas, me deshabilita la conexión de dispositivos externos y me dice que no tengo permiso para ello, incluso si cierro «awesome» y me muevo para «IceWM», el comportamiento es idéntico obligándome a reiniciar el sistema. Como solución alternativa lo añadí al menú pero no me satisface; si alguien descubre la causa y el remedio, por favor, compártalo.

No comento aquí los atajos por defecto; pues, al ejecutar en el menú la opción «manual», este nos detalla el uso de las teclas y su acción.

Etiquetas o Tags:

Como se dijo al principio, awesome trae nueve (9) por defecto; yo las reduje a 5 porque con ese guarismo me basta y sobra.

— {{{ Tags
— Define a tag table which hold all screen tags.
tags = {}
for s = 1, screen.count() do
— Each screen has its own tag table.
tags[s] = awful.tag({ 1, 2, 3, 4, 5 }, s, layouts[1])
end
— }}}

La apariencia:

Awesome se instala con tres temas por defecto: «default», «sky» y «zenburn» y en el «rc.lua» aparecen configurados de la siguiente forma:

— Themes define colours, icons, and wallpapers
beautiful.init(«/usr/share/awesome/themes/default/theme.lua»)

Ahora bien, si queremos usar otros temas o personalizar alguno, es aconsejable copiar la carpeta «themes» para nuestro /home/usuario/.config/awesome, de modo que la ruta en el «rc.lua» quedaría ahora de la siguiente forma:

— Themes define colours, icons, and wallpapers
beautiful.init(«/home/usuario/.config/awesome/themes/default/theme.lua»)

Ahora, si queremos cambiar de tema será solo entrar al «rc.lua» y donde está «default» ponerle «sky» o «zenburn»; sin embargo, para que ello funcione será preciso -por lo menos esa fue la forma que encontré-, editar el fichero «theme.lua» que está dentro de la carpeta de cada tema y con nuestro editor favorito hacer un renombrado masivo para, donde quiera que aparezca /usr/share/, sustituirlo por /home/usuario/.config/

Si escojo disfrutar un fondo de pantalla personalizado, solo será preciso copiar en la carpeta del tema activo la imagen deseada y ponerle el nombre que tenía el wallpaper anterior o editar el archivo «theme.lua» y sustituir el nombre del la imagen:

theme.wallpaper_cmd         = { «awsetbg /home/delio/.config/awesome/themes/sky/azul.jpg» }

Así se ve mi awesome con el tema «sky» y un tapiz personalizado.

Para aumentar el ancho y el alto del menú, en el  fichero «theme lua», modificar las variables que se encuentran en estas líneas por un valor que se adecue a nuestro monitor.

theme.menu_height           = «15»
theme.menu_width            = «100»

También, el tamaño de la letra puede modificarse para -como en el lobo de caperucita-, ver mejor. En mi caso le añadí la condición de negrita.

theme.font          = «DejaVu Sans 6 bold»

Los Widget y los Wibox:

Según la usuaria «helena_ryuu» del blog DesdeLinux, un widget es un objeto que puede proveer varias funciones como un menú, barra de tags, lista de ventanas, información del sitema, reloj, área de notificación, etc; mientras un Wibox es lo que podríamos llamar un panel, se pueden añadir cuantos querramos -o cuantos quepan en nuestro escritorio diría yo- y contienen los widget.

De hecho, awesome trae por defecto varios widget: el menú, las etiquetas, la lista de ventanas, el área de notificación del sistema y el reloj; pero son insuficientes. En Internet hay un gran número de ellos, a pesar de esto, resulta un contrasentido (para qué entonces escribo estas líneas) y hasta una burla, enviarlos a buscar wigdets o configuraciones personalizadas del «rc.lua» a los predios de Alta Mar cuando muchos no tenemos la posibilidad, el tiempo o el dinero para hacerlo. La fémina antedicha recomienda varios widget y ofrece la dirección de descarga, si alguien puede descargarlos y también algunas configuraciones de «rc.lua» (estos ficheros son realmente escuálidos; por ejemplo, mi «rc.lua» pesa 15,9 Kbytes), podría compartirlos y confirmar la máxima de la colaboración.  Y si algún voluntario, con mayor ancha de banda y tiempo puede darse una vuelta por GiHut; también podría descargar unos temas y configuraciones que están al alcance de quienes lleguen hasta allí.

Pero sigamos con lo que tenemos a mano; aquí les dejo los dos widget que descargué y la modificación que hice a uno de ellos.

Cuando se instala el wm, en el extremo derecho del wibox se muestra un reloj en formato de 24 horas que no visualiza los segundos; con el objeto de modificarlo, o sea, lograr devuelva el tiempo en formato de 12 horas, nos refiera am o pm y muestre los segundos, sustituyan su línea por esta:

— Textclock widget
mytextclock = awful.widget.textclock({ align = «right» }, «%d %b %r», 1)

Ahora bien, para que al pasar el puntero del ratón por encima del reloj nos muestre un calendario, añadí esta línea inmediatamente después de la  dedicada al reloj:

— Show calendar
calendar2.addCalendarToWidget(mytextclock)

Sin embargo, esto no basta, es preciso colocar al inicio, después del último «require»:

require(«calendar2»)

Y luego de descomprimir, copiar en el directorio de awesome ubicado en /home/usuario/.config el fichero siguiente:

calendar2

Asi se ve mi reloj con el calendario y como beneficio adicional, si doy clic derecho sobre el mismo, muestra el mes siguiente y si clic izquierdo, el  anterior; también refleja la semana del año.

Hasta aquí mis indagaciones, menos placenteras que el gozo de socializarlas toda vez que, al no consumirse en uno mismo, no causan aburrimiento, ni  desdén, ni cansancio, tal como sucede cuando se persigue el placer; el cual, depués de satisfecho en el templo de los deseos, empalaga como el dulce azucarado.

Referencias:

1.-José Luis Lara Carrascal. «Administradores de Ventanas – Awesome», en: http://manualinux.eu

Bibliografía mínima:

1.-helena_ryuu. «Awesome WM [Instalación + configuración] en: DesdeLinux
2.-Lara Carrascal, José Luis. «Administradores de Ventanas – Awesome», en: http://manualinux.eu


Actualización (4 de mayo de 2017):

1.-La agitación e inquietud intelectual rubrica la condición humana y, sintiéndome humano, he continuado hurgando en awesome. Como resultado descubrí que esta versión tiene barra de título y botones que maximan y cierran las ventana o clientes; solo que en el «rc.lua» viene desactivado por defecto. Véase:

— {{{ Signals
— Signal function to execute when a new client appears.
client.add_signal(«manage», function (c, startup)
–Add a titlebar
–awful.titlebar.add(c, { modkey = modkey })

De modo que si retiramos los dos guiones que anteceden la línea inmediata anterior, podrán disfrutar de varias opciones, entre ellas las precitadas de maximizar y cerrar.

2.-El manual del wm señala en tono lapidario: «Por supuesto, awesome no tiene fallos.»; empero, comprendiendo que toda teoría es gris, solo es verde y dorado el árbol de la vida, agrega morigerando:  «Pero es posible que tenga comportamientos inesperados.»; quizás, el comportamiento «inesperado» que se produce al pedir permisos de administrador para usar los dispositivos extraíbles en algunas ocasiones, se debe a que, después de modificar el «rc.lua», el sistema asume ha sido modificado por un usuario con categoría de root y por tanto, se deben tener autorizaciones superiores para manejar dispositvos. No obstante, en mi modesta e inexperta opinión, tal comportamiento no se me antoja «inesperado»; sino más bien un error del sistema y arribo a tal conclusión porque en ninguno de los otros WM por los cuales he desandado tal comportamiento se manifiesta.

3.-A través de un tercero, en este caso mi primogénito, llegué hasta GitHub y ya en mis manos varios temas para awesome; sin embargo, están estructurados para la rama 4.x y no para la 3.4.15-1 que viene en Debian 8; por otro lado, mi poca experticia ha imposibilitado, hasta el momento, pueda emplearlos como se debe, aunque, cuando lo óptimo no es viable, lo bueno posible es deseable; por tanto, he reusado los fondos de pantalla.

¿Te resultó interesante? Compártelo ...



Delio Orozco González

Publicado por Delio Orozco González

Forma parte de GUTL desde el 6 diciembre, 2011.

Este artículo tiene 20 comentarios

  1. MI viejo amigo Delio, no sabia de tu interes por los entornos minimalistas, pero bueno el post, otra variante mas a la hora de tener en cuenta ese camino del minimalismo, aunque ahora no es mi interes, pero es bueno saber que estamos enfocandonos muchos en ese camino. seguire aun por mis GUI tradicionales y mis escritorios con cinnamon que es el que uso hace ya caso dos años. gracias por este post tan interesante…

  2. Yo no diría que son entornos minimalistas, para mí son otra filosofía que no forma parte de los entornos de escritorios.

    • Coincido contigo… tener un WM como tu escritorio no clasificaría exactamente como un DE pero los que los hemos usado una vez no dejamos de tener nuestros momentos de nostalgia…

  3. Siempre es bueno leer a personas pensantes, la curiosidad por aprender es contagiosa.
    Hace tiempo no uso Wm’s, pero un blackbox con transparencia y un buen fondo no tiene comparación con NADA =)

    • Yo me decanto mas por los hijos de Blackbox (Openbox y Fluxbox) los cuales he tenido como mi escritorio por un buen tiempo, a pesar de que actualmente este con Lubuntu que no es precisamente un WM me siento contento sabiendo que tengo la sesion de OB 😉

      • No se por qué será que no hay manera que me gusten estos pseudoescritorios. respeto gustos y necesidades y es hasta loable y creo que hasta da caché personal hacer entrar en cintura uno de esos, pero que va, prefiero pasarme una noche pasando parámetros a la compilación de un Kernel a la medida antes que pasarme un ratico configurando un WM. Debe ser cuestión de personalidad 🙁

        • Es lo hermoso del mundo SWL… cada cual sabe que es lo que le gusta y que es lo que quiere. Los «Pseudoescritorios» tienen esa especie de filosofía que muchos que los que los utilizan comparten. Por ejemplo en un foro sobre Fluxbox alguien una vez dijo algo como «usa tu WM para ti, no intentes evangelizar a todos con tu WM porque los WM no son para todo el mundo«

          • Técnicamente los WM son para todo el mundo (o sea, todo el que no use solo TTY). Conoces algún entorno de escritorio que no tenga WM? XD

          • Yo estoy de acuerdo contigo solo que tambien creo que el usuario del foro lo debio decir en lenguaje figurado…

            PD: My Lubuntu de Xenial tiene su OpenBox por debajo…. y no me quejo 😉

          • Exacto… ¿Que sería de KDE sin Kwin? Y por cierto, en KDE se puede usar otros WM diferente a Kwin. Yo he probado Plasma + Openbox y que va, no puedo, no lo soporto… Es que cuando he usado LXQt en vez de usar Openbox como WM he usado Kwin

          • Si… LXDE es capaz de usar Fluxbox y no el OpenBox que trae… imagino que cada DE deba tener una lista de WM compatibles con ellos.

  4. Hi, llevo algún tiempo ya usando awesome, siempre surfeaba entre entornos de escritorios hasta que conocí los tilings, probé varios y me decanté por este, llevo como un par de años con awesome; récord para mi. No quiero otro.

    El problema que tengo ahora es con systemd en debian 8, antes usaba udisks2 con udisks-glue para montar automáticamente las memorias, pero esa liga ya no funciona con systemd, por favor alguien me da sus experiencias para saber cómo hago que monte las memorias humanamente!?

    Saludos

    • Julio:

      Ese es uno de los errores de Awesome o como eufemísticamente le llaman los desarrolladores un «comportamiento inesperado». En mi caso -como en el tuyo-, empleo Debian 8 con SystemD y, al momento de insertar las memorias me las reconoce en el gestor de archivo (uso PCManFM); sin embargo, si por alguna razón modifico el «rc.lua» o instalo un programa; tan pronto desconecto la memoria e intento enchufarla de nuevo, el sistema me dice que no tengo permiso para ello; incluso, tal comportamiento se extiende al otro wm que tengo instalado: IceWM. De modo que me obliga a reiniciar el sistema o montarla manualmente.

      Lo que tengo instalado es udisks, udisks2, usbutils y la librería libudisk2-0. Revisa a ver si tienes instalados dichos paquetes.

      Por otro lado, comentas algo interesante; o sea, el dichoso SystemD. La próxima vez que entre a mi sistema lo haré por el tradicional «sysvinit» y veré si Awesome se comporta igual de errático en el reconocimiento de las memorias. Mañana te haré saber.

    • Julio:

      ¡Albricias! Su aseveración de que en Debian 8 y con el Systemd «awesome» no montaba automáticamente las memorias, alumbró el camino y, para suerte suya, mía y de todos aquellos que padecen el mismo problema, creo haber descubierto la razón del «comportamiento inesperado» que obligaba a poseer permisos de root para montar las memorias después de haber modificado el «rc.lua» o ejecutar alguna acción con permisos de administrador.

      -Primera solución: iniciar por sysvinit;

      -Segunda solución: en /etc/default/grub, descomentar la línea: #GRUB_DISABLE_LINUX_UUID=true
      Ello permitirá seguir iniciando por systemd y… montará las memorias de forma automática, incluso después de haber modificado el «rc.lua y haber ejecutado alguna acción con permisos de administrador como la instalación de programas o paquetes.

      A mi me funcióno, espero que a Ud. también.

      • Muy bien, sobre todo por la segundo opción, es un poco mas «PRO». Esa solución incluso merecería engrosar el contenido de nuestra Wiki, digo yo…

        • Lo mismo digo… irle arriba a nuestra Wiki y cargarla con este tipo de cosas que siempre le salvan el dia a cualquiera. Ahora… hay que ver si ya se resolvieron los problemas de la WIKI con todas las cosas que sabemos tiene nuestro portal y sus servicios

          • Y que cosas tiene nustro Portal y sus servicios??? Explica para poder solucionarlo. Creo que la wiki esta editable (siempre y cuando tengas permisos de edicion)

          • No vamos a crear un flamewar aca sobre poblemas del portal y aruinar así el magnífico artículo del profe pero…
            Hace un tiempito atras cuando sugerí revivir algunos servicios (como la WIKI) algunos usuarios se quejaron de que el sistema de registro en la wiki (para que aunque sea pusieran las cosas en moderación) no estaba disponible, tambien se habló del problema del foro y el portal que tenían contraseñas distintas, base de datos distintas y demas cosas que no creo que merezcan estar en un hilo sobre configuracion de AWESOME 😉

          • el sistema de registro en la wiki (para que aunque sea pusieran las cosas en moderación) no estaba disponible

            Eso nunca ha estado disponible, por seguridad la vía siempre ha sido contactar a Hugo para que de los permisos a cada quien.
            El Foro y Portal seguiran con passwords separados, por seguridad y porque el soporte a phpbb desde WP está medio cojeando y no tengo tiempo para meterle caña yo mismo. En la lista creé un hilo cuando volví a separar el autenticado del Foro y el portal, pero como nadie visita el foro nadie se enteró.
            En fin, sigamos con Awesome, pero que quede claro que para tener permisos en la wiki tiene que contactar a hugo cada quien…

          • Nunca he podido «trolear» el foro por no tener un correo .cu, btw si alguien me vende uno 🙂 tal vez pueda registrarme.

Los comentarios están cerrados.