Awesome (window manager)
{{Short description|Window manager for X Window System}}
{{lowercase title}}
{{Infobox software
| name = awesome
| logo = Awesome logo.png
| screenshot = Awesome screenshot.png
| screenshot size = 300px
| caption = awesome with a number of terminals open
| author = Julien Danjou
| released = {{Start date and age|2007|9|18}}[https://github.com/awesomeWM/awesome/releases/tag/v1.0 1.0 release tag]
| latest release version = {{wikidata|property|preferred|references|edit|Q310135|P348|P548=Q2804309}}
| latest release date = {{wikidata|qualifier|preferred|single|Q310135|P348|P548=Q2804309|P577}}
| latest preview version = {{wikidata|property|preferred|references|edit|Q310135|P348|P548=Q51930650}}
| latest preview date = {{wikidata|qualifier|preferred|single|Q310135|P348|P548=Q51930650|P577}}
| genre = Window manager
| license = GPL-2.0-or-later{{Cite web |url=https://github.com/awesomeWM/awesome/ |title=github.com/awesomeWM/awesome|website=GitHub|date=28 April 2022}}
| website = [https://awesomewm.org/ awesomewm.org]
| programming_language = C and Lua
| operating_system = Unix-like}}
awesome is a dynamic window manager for the X Window System developed in the C and Lua programming languages. Lua is also used for configuring and extending the window manager. Its development began as a fork of dwm, though has differed considerably since.{{Cite web |url=http://article.gmane.org/gmane.comp.window-managers.dwm/3285/match=awesome |title=Project announcement from dwm mailing list. |access-date=2008-12-13 |archive-url=https://web.archive.org/web/20090406012657/http://article.gmane.org/gmane.comp.window-managers.dwm/3285/match=awesome |archive-date=2009-04-06|website=Gmane|last=Danjou|first=Julien|date=20 September 2007}} It aims to be extremely small and fast, yet extensively customizable. It makes it possible for the user to manage windows with the use of keyboard.
The fork was initially nicknamed jdwm, where "jd" denoted the principal programmer's initials and dwm denoted the software project it was forked from. The first git repository for what was to become awesome was set up in September 2007. jdwm was renamed to awesome, named after the same phrase used by the How I Met Your Mother character Barney Stinson.{{cite web|url=http://julien.danjou.info/blog/2009/taking-the-other-direction|title=Taking the other direction
|first=Julien|last=Danjou|access-date=14 August 2011| archive-url= https://web.archive.org/web/20110713052507/http://julien.danjou.info/blog/2009.html| archive-date= 13 July 2011 | url-status= live |date= 15 April 2009}} awesome was officially announced on the dwm mailing list on September 20, 2007.
Aim
{{quote |text = A window manager is probably one of the most used software in your day-to-day tasks, with your Web browser, mail reader and text editor. Power users and programmers have a big range of choice between several tools for these day-to-day tasks. Some are heavily extensible and configurable.
awesome tries to complete these tools with what we miss: an extensible, highly configurable window manager.
To achieve this goal, awesome has been designed as a framework window manager. It's extremely fast, small, dynamic and heavily extensible using the Lua programming language.{{cite web|url=https://awesomewm.org/ |title=about - awesome window manager |access-date=2016-09-06 |archive-url=https://web.archive.org/web/20071011225622/http://awesome.naquadah.org/ |archive-date=2007-10-11 |url-status=live }}}}
awesome has emerged as a dwm fork featuring customization through external configuration files (see Configuration and customization below). Although highly extensible, the default setup of the window manager is deliberately simplified. In doing so, the author has created what he calls a framework window manager for users to expand and adapt to their own needs.
Features
- Configured via a Lua configuration file.
- Like dwm and wmii, awesome uses tags instead of workspaces. Windows can be assigned to several tags, and multiple tags can be selected at the same time.
- As a dynamic window manager, awesome can switch between different layouts for each tag, including floating, several dynamic tiling layouts, maximized and magnifier.
- Multiple and per screen status bars, including a variety of widgets (text and icon boxes, graphs, progress bars, and so on).
- Everything can be done with the keyboard, so usage of a mouse is optional.
- Multihead support (XRandR, Xinerama or Zaphod mode).
- Implements freedesktop.org standards including EWMH, XDG Base Directory, XEmbed, Desktop Notification and System Tray.
- Compositing and true transparency support through an external compositor such as xcompmgr.
- Remote control via D-Bus (awesome-client).
- Supports the pango markup language.
Configuration and customization
=Early configuration file formats=
Prior to the third major release, one of awesome's features was what Danjou termed a 'no complicated configuration'.[http://julien.danjou.info/blog/index.php/post/2008/05/20/awesome-3:-Lua-integration awesome 3: Lua integration] {{webarchive|url=https://web.archive.org/web/20090210103410/http://julien.danjou.info/blog/index.php/post/2008/05/20/awesome-3%3A-Lua-integration |date=February 10, 2009 }} First versions of awesome (1.x) were simple modification of dwm with flat file configuration which used [http://www.hyperrealm.com/libconfig/ libconfig]. In 2.x branch, Danjou changed the configuration library from libconfig to [http://www.nongnu.org/confuse/ libconfuse], a different flat file configuration library, somewhat resembling libconfig. During the development of 2.x releases, many customization features were added to awesome, such as titlebars and icon drawing.
=New configuration file=
On May 20, 2008, Danjou announced in an e-mail to the awesome mailing list[http://permalink.gmane.org/gmane.comp.window-managers.awesome/1794 News on awesome-3 and about latest commits (May 20, 2008)] {{webarchive |url=https://web.archive.org/web/20090822201810/http://permalink.gmane.org/gmane.comp.window-managers.awesome/1794 |date=22 August 2009 }} that a new format for the configuration file will be used in 3.0 release. The new format was placed in a file ~/.awesomerc.lua, and was later moved to ~/.config/awesome/rc.lua. As the extension suggests, the configuration file is written in the Lua programming language. Danjou argued that the new format and Lua integration would enable awesome users to customize awesome in ways he previously considered impossible: using a programming language for configuration made it possible to dynamically specify configuration options.
The awesome Lua API is now hosted on awesome's homepage,[http://awesome.naquadah.org/doc/api/ awesome API documentation] {{webarchive |url=https://web.archive.org/web/20090511001214/http://awesome.naquadah.org/doc/api/ |date=11 May 2009 }} and a tutorial-style article about configuring awesome is posted on the awesome Wiki.[http://awesome.naquadah.org/wiki/Awesome_3_configuration Awesome 3 configuration] {{webarchive |url=https://web.archive.org/web/20090601093348/http://awesome.naquadah.org/wiki/Awesome_3_configuration |date=1 June 2009 }}
=Themes and widgets=
It is possible to theme (or skin) awesome by using the window manager's Beautiful library.[http://awesome.naquadah.org/wiki/Beautiful awesome Wiki: Beautiful] {{webarchive |url=https://web.archive.org/web/20090530010149/http://awesome.naquadah.org/wiki/Beautiful |date=30 May 2009 }} In line with rc.lua configuration file, theming is also done in Lua, allowing dynamic themes to be created.
Although the default awesome configuration as of 3.2.1 release does not have any status indicators (like wireless network status, battery indicators, etc.), users can add these items using widgets.[http://awesome.naquadah.org/wiki/Widgets_in_awesome awesome Wiki: Widgets in awesome] {{webarchive |url=https://web.archive.org/web/20090530005607/http://awesome.naquadah.org/wiki/Widgets_in_awesome |date=30 May 2009 }} Data for the widgets is supplied using arbitrary Lua code since widgets are defined in the main configuration file.
Migration to XCB
The 3.0 version, released September 18, 2008, uses the XCB library to communicate with the X server,[http://lists.freedesktop.org/archives/xcb/2008-April/003471.html XCB transition announcement from XCB mailing list] {{webarchive |url=https://web.archive.org/web/20090827044756/http://lists.freedesktop.org/archives/xcb/2008-April/003471.html |date=27 August 2009 }} making awesome the first window manager to use this library instead of Xlib. Work on the XCB port was started by Arnaud Fontaine, one of the current Awesome developers,[http://awesome.naquadah.org/community/ Community page on Awesome homepage: under Developers heading] {{webarchive |url=https://web.archive.org/web/20071123114908/http://awesome.naquadah.org/community/ |date=23 November 2007 }} in January 2008.
Arnaud Fontaine announced the move to XCB on the XCB mailing list on April 9, 2008. In his message to the list, he emphasized the following as main advantages of using XCB: "modular architecture; direct access to the protocols; multithreading; asynchronous requests/replies;". The XCB port was completed the following month and Danjou created a new branch based on XCB.
Lua integration
Because of the perceived problems that limited expanding and customization in pre-3.0 version of awesome, the author decided to integrate Lua-based configuration into awesome. The rc1 of the new Lua-scriptable implementation was announced in August 2008.[http://permalink.gmane.org/gmane.comp.window-managers.awesome/2480 3.0-rc1 announcement on awesome mailing list] {{webarchive |url=https://web.archive.org/web/20090506044217/http://permalink.gmane.org/gmane.comp.window-managers.awesome/2480 |date=6 May 2009 }} In September 2008, the first version of awesome with Lua API completed in parallel with XCB implementation.
Distribution package availability
awesome is distributed on a wide range of Unix-like operating systems, including Arch Linux,{{cite web | url=https://archlinux.org/packages/community/x86_64/awesome/ | title=awesome package in the Arch Linux community repository | access-date=2022-08-31 | archive-date=2010-09-11 | archive-url=https://web.archive.org/web/20100911141142/https://archlinux.org/packages/community/x86_64/awesome/ | url-status=dead }} Debian,[http://packages.debian.org/squeeze/awesome Debian - Details of package awesome in squeeze]. Packages.debian.org. Retrieved on 2013-07-13. Fedora Linux, Gentoo,[http://packages.gentoo.org/package/x11-wm/awesome Gentoo Packages /package/x11-wm/awesome]. Packages.gentoo.org (2013-04-10). Retrieved on 2013-07-13. Ubuntu,{{cite web | url=http://packages.ubuntu.com/natty/awesome | title=Ubuntu – Error }} Source Mage, openSUSE,{{cite web |url=http://software.opensuse.org/package/awesome |title=awesome - software.opensuse.org }} Mageia, NixOS, FreeBSD, NetBSD and OpenBSD.
Named releases
awesome versions 1.0 through 1.3 (September–October 2007) were not named. Starting with the first 2.0 release candidate (November 2007), awesome has used named releases.[http://awesome.naquadah.org/wiki/Releases awesome Wiki: List of awesome releases] {{webarchive |url=https://web.archive.org/web/20090605204417/http://awesome.naquadah.org/wiki/Releases |date=5 June 2009 }} The release names are related to music. awesome v4.x uses song name from Daft Punk.
See also
{{Portal|Free and open-source software}}
References
{{Reflist}}
External links
{{Commons category|Awesome (window manager)}}
- {{Official website}}
- [https://awesomewm.org/wiki/Main_Page Wiki]
- [https://awesomewm.org/apidoc/documentation/07-my-first-awesome.md.html My first awesome] - tutorial
- [http://linux.softpedia.com/progScreenshots/awesome-Screenshot-31060.html Screenshots]
- {{cite journal |title=Herr der Fenster. Schlanker Windowmanager Awesome |url=https://www.linux-user.de/ausgabe/2008/12/039/index.html |language=de |trans-title=Lord of the window. Slim Awesome Window Manager |author=Falko Benthin |date=2008-12-01 |journal=Linux User |issue=12/2008 |issn=1615-4444 |access-date=2010-03-16}}
- [http://www.tychoish.com/cyborg/awesome-article/ Awesome Window Manager: How Can Your Environment Work For You?] - wiki review article (in progress)
- [https://web.archive.org/web/20160303224559/http://blog.corporatism.org/blog/2010/04/20/90/awesome_window_manager Awesome window manager] - brief blog review
- [http://sawfish.wikia.com/wiki/Comparison_of_extensible_window_managers Comparison of extensible window managers] - Comparison of Sawfish, Awesome, Xmonad, StumpWM, and Qtile.
{{X desktop environments and window managers}}
{{DEFAULTSORT:Awesome (Window Manager)}}
Category:Free X window managers
Category:Lua (programming language)-scriptable software
Category:Lua (programming language)-scripted software
Category:Tiling window managers