Hace meses, por razones que desconozco me aburrí de usar openbox + tint2 (que por cierto es una buena combinación también) después de ver un hilo en los foros de arch quedé maravillada por awesome.
Esta guía esta pensada para aquellos usuarios que quieran instalar Awesome y no sepan por donde empezar, y mas puntualmente, guiar con la configuración que actualmente tengo en mi laptop, no creo que yo sea una luminaria en cuanto el tema pero pongámoslo de esta manera, si al final de la entrada has logrado entender algo de awesome significa que eres genial y yo también xD.
Advertencia: Awesome esta pensado para usuarios algo experimentados interesados en entornos de escritorio tipo mosaico, para entusiastas y curiosos que quieran aumentar su conocimiento y para todo aquel que se crea capaz de lograrlo (*mirada desafiante*).
NOTA!: esta guía esta hecha en base a Arch Linux, pero salvo la instalación de paquetes , todos los pasos son exactamente los mismos es cualquier distro.
estos son los componentes que básicos que necesitaremos, veamos las funciones de los paquetes que instalamos:
awesome: gestor de ventanas
vicious: libreria modular para los widgets de awesome
xcompmgr: para usar la composición
nitrogen: se encarga de los wallpaper
lxappearance: selector de temas gtk
xorg-setxkbmap: (opcional) para ejecutar el cambiador de localización de teclado
para iniciar awesome agregamos a nuestro ~/.xinitrc:
exec awesome
Después de instalar awesome, creamos una carpeta donde guardar el rc.lua, seguidamente copiamos dicho archivo de configuración que se incluye por defecto con el siguiente comando:
rc.lua guarda toda la configuración de awesome, pero no así los temas, estos son creador aparte y se almacenan en /usr/share/awesome/themes , los veremos mas adelante.
El archivo principal de configuración, rc.lua, los archivos de temas y algunos widgets estan escritos en lua, un lenguaje de programación imperativo, estructurado y muy ligero, basado en C y Perl…… pero no te espantes por eso, es mas sencillo de lo que parece, ademas usas Linux, hay peores cosas como compilar jajaja.
Lo que si debes tener claro es una cosa En Lua: El Orden Es Importante! . Así que si abres una llave { debes cerrar esa llave } . una vez mas, El Orden Es Fundamental!.
También debemos entender algunos conceptos básicos que tal vez te puedan parecer inusuales:
Cliente
Una ventana cualquiera.
Tag
Un tag vendría a ser un espacio de trabajo. Difiere de este en algunos aspectos, como poder mostrar un cliente en varios tags, o mostrar el contenido de mas de un tag a la vez.
Master window (Ventana maestra o principal)
La ventana maestra (o principal) es la que usualmente requiere mas atención. Este concepto fue tomado de dwm, las otras ventanas simplemente se llaman no-maestras o no principales xD.
Floating window (Ventana Flotante)
usualmente las ventanas no se sobreponen unas sobre otras, pero algunas aplicaciones no funcionan bien bajo el paradigma de mosaico, por lo que es posible hacerlas flotantes.
los clientes flotantes pueden ser movidos y ser redimensionas libremente al igual que las ventanas no flotantes.
Wibox
Es lo que podríamos llamar como «panel» , se pueden agregar tantos wibox como deseemos, estos contienen los widgets.
Widget
Los widgets son los objetos que proveen varias funciones desde menús, barra de tags, lista de ventanas, información del sistema, reloj, área de notificación y muchas mas, son simples y de gran flexibilidad.
Screen (pantalla)
Indica en que pantalla se desplegará la o las ventanas. Útil solo si tenemos mas de un monitor.
Layout (Disposición)
Un layout es la manera en que se organizan las ventanas. Awesome ofrece los siguientes layouts (unos mas útiles que otros), estos se representan como el icono en la parte derecha de nuestra barra de widgets:
colums (columnas) – La ventana maestra es mostrada en la columna izquierda (o derecha, hay 2 layouts de este) y las de mas ventanas en la columna contraria.
rows (filas) – igual que el anterior pero filas en vez de columnas.
magnificado – La ventana principal se posiciona en el centro de la pantalla y the master window (only one in this layout) is drawn in the middle of the screen, the other ones are stacked under it in columns.
maximizado – la ventana principal usa todo el espacio de la ventana, dejando a las otras detrás.
espiral – la ventana principal a la izquierda, en la derecha superior 2 ventanas en la derecha inferior 4 ventanas y así….. (a ver quien utiliza ese :P).
zig-zag – igual que el anterior pero en sentido inverso (madre mia xD).
floating (flotante) – las ventanas pueden ser movidas y redimensionadas libremente, también se pueden superponer y así…
Awesome Esta pensado para utilizar de manera mas activa el teclado, por lo cual se utilizan una serie de combinaciones con la tecla Mod4 (o tecla windows) aqui una util tabla de combinaciones:
Estas combinaciones pueden ser personalizadas en rc.lua.
Modificando el archivo rc.lua
Todo claro hasta aquí? bien, ahora si! a por el rc.lua, podemos usar cualquier editor de texto, aunque recomiendo alguno que remarque la sintaxis, así te será mas fácil guiarte dentro del código.
A primera vista es desconcertante, el fichero de configuración esta escrito en Lua, que por decir de alguna manera….. no es amigable de buenas a primeras. Pero verás que es mas funcional y claro de lo que parece, si has configurado alguna vez conky, pues es parecido pero mas complejo xD. ojo!, para comentar se utiliza el doble guión (- -)
para activar la composición (p. ej. transparencia en ventanas), colocamos al principio del archivo, justo debajo de require(«naughty») esta linea, añadimos también vicious para usar los widgets que aparecerán mas adelante:
Si vamos mas abajo nos encontramos con las siguientes lineas, aquí podemos declarar algunos parámetros como el tema, alias y la terminal predeterminada :
.....
terminal = "xterm"
indicaré sakura como terminal, de aquí en adelante , cada vez que se invoque la variable terminal se ejecutará sakura.
....
terminal = "sakura"
podemos indicar que layouts queremos , para deshabilitar comentamos la linea con doble guión:
Awesome consta de un widget tipo menú, donde podemos ordenar todas las aplicaciones instaladas en diferentes secciones, configurarlo es sencillo, pero requiere orden. Primero declaramos el nombre del menú y luego su contenido. p.ej., para crear el menú «gráficos» lo he hecho de esta manera:
Noten que la primera parte es el nombre que aparecerá (GIMP), lo segundo es el comando de ejecución (gimp), para dejarlo más claro, aquí esta el menú «editores» en donde he colocado editores de texto como vi y nano:
en esta ultima linea se puede especificar el icono que deberá estar declarado previamente como beautiful.awesome_icon en el tema utilizado.
El resultado de todo lo anterior sería algo así:
Tema y wallpaper
Ahora vamos con el tema, este se define en un archivo llamado theme.lua, y se almacena en /usr/share/awesome/themes , donde se encuentra en un directorio con el nombre del tema, junto a los iconos y demás imágenes que podemos utilizar.
El tema de mi configuración se llama dot (creado por mi :D) no es la gran cosa, pero es simple y limpio a la vista, minimalismo puro! puedes tomarlo como base para crear tu propio tema si lo deseas, (porque puede resultar un poco femenino para los caballeros), hecha un vistazo al código aqui o puedes descargarlo aquí junto a los iconos. Una vez bajado, copia la carpeta «dot» a /usr/share/awesome/themes , luego busca beautiful.init en el rc.lua y cambias la ruta del tema:
-- el tema define colores, iconos y wallpaper
beautiful.init("/usr/share/awesome/themes/dot/theme.lua")
Una recomendación, siempre revisa los temas que bajes , pues la mayor parte del tiempo requiere configuración personalizada en cuanto a rutas de archivos y mas….
En cuanto al wallpaper usaremos nitrogen, una liviana aplicación para gestionar los wallpapers, le indicamos a awesome con la siguiente linea en nuestro theme.lua:
Como dije antes, los widgets son simples objetos que cumplen diversas funciones, por defecto, awesome provee un wibox en la parte superior con un lanzador de menú, una barra de tags, una lista de ventanas, una bandeja del sistema, un reloj y un selector de layouts. Pero claro que existen muchos mas widgets que podemos usar y quizás esta es la parte mas interesante de awesome.
Al igual que los menus, primero declaramos el widget y luego lo agregamos al wibox, no se preocupen por esto, yo les proveeré algunos widgets geniales y muy utiles! simplemente copien y peguen el código de cada widget justo debajo de la sesión de tags.
En mi configuración tengo dos wibox, el de la parte superior lo dejaremos tal como esta,quitando el reloj nada mas , en el wibox de abajo ubicaremos los widgets de información del sistema, y un calendario escrito en lua.
Tengo como unico sistema operativo Arch Linux, y 4 particiones (/boot, /, swap, /home), ustedes pueden agregar las particiones correspondientes a su sistema.
Este ingenioso widget te permite cambiar la localización de tu teclado al darle click sobre el, utiliza setxkbmap, y deben especificar las localizaciones deseadas, p. ej. yo tengo us = teclado USA, es = teclado español, gb = teclado UK, latam =teclado latinoamericano
Este calendario al pasar el puntero sobre el reloj se nos mostrará un calendario, al dar click izquierdo retrocede un mes y click derecho avanza un mes.
guardamos el código en un archivo llamado calendar2.lua en ~/.config/awesome y agregamos en nuestro rc.luarequire(‘calendar2’) debajo de nuestros agregados.
NOTA: deberán configurar los espacios y separadores para un aspecto acorde al tamaño de su pantalla.
Reglas
podemos indicar que algunos programas se abran en determinados tags, p. ej., que firefox aparezca sólo en el tag #3, que GIMP aparezca en el tag #4, etc…. nos dirigimos al apartado rules de nuestro rc.lua y modificamos los programas y sus reglas, el primer número indica la pantalla y el segundo indica el tag, aquí un ejemplo:
........
{ rule = { class = "Spacefm" }, properties = { tag = tags[1][2] } },
{ rule = { class = "Gimp" }, properties = { tag = tags[1][4] } },
{ rule = { class = "Firefox" }, properties = { tag = tags[1][3] } },
.......
Según estas reglas, spacefm aparecerá en el tag #2, Gimp en el #4 y firefox en el #3 de la pantalla 1, sencillo no?
posibles problemas
resolución de pantalla
no tuve problemas al indicar la resolución de pantalla (por el «magnifico» driver SiS solo tengo 1280×800 en mi laptop) pero en mi desktop no pude mantener la resolución 1280×1024 , asi que lo solucioné agregando estas lineas al ~/.xinitrc:
xrandr --output DVI-0 --mode 1280x1024
donde DVI-0 es la salida de video y –-mode es la resolución deseada.
Aplicaciones Qt
si se desconfigurara la aparencia de aplicaciones Qt al cambiar a awesome prueben a modificar el perfil tecleando en la consola qtconfig y seleccionan gtk, en practicamente todos los casos esto lo soluciona.
woooow si has llegado hasta aquí… Felicidades!!! (T▽T*)(*T▽T), jajaja, este artículo salio mas extenso de lo que pensé, pero creo que es el artículo en español mas completo sobre la configuración de awesome. Espero que se animen a usar awesome, que realmente es magnifico. un saludo! ((o>ω<))o