Awesome es un administrador de ventanas dinámico para el sistema X Window desarrollado en los lenguajes de programación C y Lua . Lua también se utiliza para configurar y ampliar el administrador de ventanas. Su desarrollo comenzó como una bifurcación de dwm , aunque desde entonces ha variado considerablemente. [4] Su objetivo es ser extremadamente pequeño y rápido, pero ampliamente personalizable. Hace posible que el usuario administre ventanas con el uso del teclado.
Inicialmente, la bifurcación recibió el sobrenombre de jdwm , donde "jd" denotaba las iniciales del programador principal y dwm denotaba el proyecto de software del que se bifurcó. El primer repositorio Git para lo que se convertiría en Awesome se creó en septiembre de 2007. Se cambió el nombre de jdwm a Awesome, que lleva el nombre de la misma frase utilizada por el personaje de Cómo conocí a vuestra madre, Barney Stinson . [5] Awesome se anunció oficialmente en la lista de correo de dwm el 20 de septiembre de 2007. [4]
Un administrador de ventanas es probablemente uno de los software más utilizados en tus tareas del día a día, junto con tu navegador web, lector de correo y editor de texto. Los usuarios avanzados y programadores tienen una gran variedad de opciones entre varias herramientas para estas tareas diarias. Algunos son muy extensibles y configurables.
Awesome intenta completar estas herramientas con lo que echamos de menos: un administrador de ventanas extensible y altamente configurable.
Para lograr este objetivo, Awesome ha sido diseñado como un administrador de ventanas de marco. Es extremadamente rápido, pequeño, dinámico y muy extensible utilizando el lenguaje de programación Lua . [6]
Awesome ha surgido como una bifurcación dwm que ofrece personalización a través de archivos de configuración externos (consulte Configuración y personalización a continuación). Aunque es altamente extensible, la configuración predeterminada del administrador de ventanas se simplifica deliberadamente. Al hacerlo, el autor ha creado lo que él llama un administrador de ventanas marco [5] para que los usuarios lo expandan y lo adapten a sus propias necesidades.
Desde el principio, Awesome fue concebido como una bifurcación dwm con un archivo de configuración externo. [5] Como tal, el formato del archivo de configuración y el proceso de configuración en sí fueron objeto de especial atención por parte del autor.
Antes del tercer lanzamiento importante, una de las características de Awesome era lo que Danjou denominó una "configuración sencilla". [7] Las primeras versiones de Awesome (1.x) fueron una simple modificación de dwm con una configuración de archivo plano que usaba libconfig. En la rama 2.x, Danjou cambió la biblioteca de configuración de libconfig a libconfuse, una biblioteca de configuración de archivos planos diferente, algo parecida a libconfig. Durante el desarrollo de las versiones 2.x, se agregaron muchas funciones de personalización a Awesome, como barras de título y dibujo de íconos. [5]
El 20 de mayo de 2008, Danjou anunció en un correo electrónico a la impresionante lista de correo [8] que se utilizaría un nuevo formato para el archivo de configuración en la versión 3.0. El nuevo formato se colocó en un archivo ~/.awesomerc.lua y luego se movió a ~/.config/awesome/rc.lua. Como sugiere la extensión, el archivo de configuración está escrito en el lenguaje de programación Lua . Danjou argumentó que el nuevo formato y la integración de Lua permitirían a los usuarios personalizar Awesome de maneras que antes consideraba imposibles: el uso de un lenguaje de programación para la configuración hizo posible especificar dinámicamente las opciones de configuración. [8]
La impresionante API de Lua ahora está alojada en la página de inicio de Awesome, [9] y en la Wiki de Awesome se ha publicado un artículo estilo tutorial sobre cómo configurar Awesome. [10]
Es posible crear un tema (o un diseño ) increíble utilizando la biblioteca Beautiful del administrador de ventanas. [11] De acuerdo con el archivo de configuración rc.lua, la temática también se realiza en Lua , lo que permite crear temas dinámicos.
Aunque la increíble configuración predeterminada a partir de la versión 3.2.1 no tiene indicadores de estado (como estado de la red inalámbrica, indicadores de batería, etc.), los usuarios pueden agregar estos elementos mediante widgets. [12] Los datos para los widgets se proporcionan utilizando código Lua arbitrario , ya que los widgets se definen en el archivo de configuración principal.
La versión 3.0, lanzada el 18 de septiembre de 2008, utiliza la biblioteca XCB para comunicarse con el servidor X, [13] lo que lo convierte en el primer administrador de ventanas que utiliza esta biblioteca en lugar de Xlib . El trabajo en el puerto XCB fue iniciado por Arnaud Fontaine, uno de los desarrolladores actuales de Awesome, [14] en enero de 2008. [5]
Arnaud Fontaine anunció el cambio a XCB en la lista de correo de XCB el 9 de abril de 2008. [13] En su mensaje a la lista, destacó las siguientes como principales ventajas del uso de XCB: "arquitectura modular; acceso directo a los protocolos; subprocesos múltiples ; solicitudes/respuestas asincrónicas;". El puerto XCB se completó el mes siguiente y Danjou creó una nueva sucursal basada en XCB. [5]
Debido a los problemas percibidos que limitaban la expansión y personalización en la versión anterior a la 3.0 de Awesome, el autor decidió integrar la configuración basada en Lua en Awesome. [7] El rc1 de la nueva implementación Lua-scriptable se anunció en agosto de 2008. [15] En septiembre de 2008, la primera versión de Awesome con Lua API se completó en paralelo con la implementación de XCB. [7]
Awesome se distribuye en una amplia gama de sistemas operativos tipo Unix, incluidos Arch Linux , [16] Debian , [17] Fedora Linux , Gentoo , [18] Ubuntu , [19] Source Mage , openSUSE , [20] Mageia , NixOS. , FreeBSD , NetBSD y OpenBSD .
Las impresionantes versiones 1.0 a 1.3 (septiembre-octubre de 2007) no fueron nombradas. A partir de la primera versión candidata 2.0 (noviembre de 2007), Awesome ha utilizado versiones con nombre. [21] Los nombres de los lanzamientos están relacionados con la música. Awesome v4.x usa el nombre de la canción de Daft Punk .