Awesome (window Manager)
   HOME

TheInfoList



OR:

awesome is a dynamic window manager for the
X Window System The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems. X originated as part of Project Athena at Massachusetts Institute of Technology (MIT) in 1984. The X protocol has been at ...
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. 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 ''How I Met Your Mother'' (often abbreviated as ''HIMYM'') is an American sitcom created by Craig Thomas (screenwriter), Craig Thomas and Carter Bays for CBS. The series, which aired from September 19, 2005, to March 31, 2014, follows main char ...
'' character Barney Stinson. awesome was officially announced on the dwm mailing list on September 20, 2007.


Aim

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 Compositing is the process or technique of combining visual elements from separate sources into single images, often to create the illusion that all those elements are parts of the same scene. Live action, Live-action shooting for 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

From the very beginning, awesome was conceived as a dwm fork with an external configuration file. As such, its configuration file format, and the process of configuration itself, was subject to special attention by the author.


Early configuration file formats

Prior to the third major release, one of awesome's features was what Danjou termed a 'no complicated configuration'.awesome 3: Lua integration
First versions of awesome (1.x) were simple modification of dwm with flat file configuration which use
libconfig
In 2.x branch, Danjou changed the configuration library from libconfig t
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 listNews on awesome-3 and about latest commits (May 20, 2008)
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,awesome API documentation
and a tutorial-style article about configuring awesome is posted on the awesome Wiki.Awesome 3 configuration


Themes and widgets

It is possible to theme (or
skin Skin is the layer of usually soft, flexible outer tissue covering the body of a vertebrate animal, with three main functions: protection, regulation, and sensation. Other animal coverings, such as the arthropod exoskeleton, have different ...
) awesome by using the window manager's Beautiful library. awesome Wiki: Beautiful
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. awesome Wiki: Widgets in awesome
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,XCB transition announcement from XCB mailing list
making awesome the first window manager to use this library instead of
Xlib Xlib (also known as libX11) is an X Window System protocol client library (computer science), library written in the C (programming language), C programming language. It contains subroutine, functions for interacting with an X Server (computi ...
. Work on the XCB port was started by Arnaud Fontaine, one of the current Awesome developers, 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.3.0-rc1 announcement on awesome mailing list
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,
Debian Debian () is a free and open-source software, free and open source Linux distribution, developed by the Debian Project, which was established by Ian Murdock in August 1993. Debian is one of the oldest operating systems based on the Linux kerne ...
, Fedora Linux, Gentoo,
Ubuntu Ubuntu ( ) is a Linux distribution based on Debian and composed primarily of free and open-source software. Developed by the British company Canonical (company), Canonical and a community of contributors under a Meritocracy, meritocratic gover ...
, Source Mage, openSUSE,
Mageia Mageia is a Linux-based operating system, distributed as free and open-source software. It was forked from the Mandriva Linux distribution. The Greek term () means enchantment, fascination, glamour, wizardry. The first release of the software ...
, NixOS,
FreeBSD FreeBSD is a free-software Unix-like operating system descended from the Berkeley Software Distribution (BSD). The first version was released in 1993 developed from 386BSD, one of the first fully functional and free Unix clones on affordable ...
,
NetBSD NetBSD is a free and open-source Unix-like operating system based on the Berkeley Software Distribution (BSD). It was the first open-source BSD descendant officially released after 386BSD was fork (software development), forked. It continues to ...
and
OpenBSD OpenBSD is a security-focused operating system, security-focused, free software, Unix-like operating system based on the Berkeley Software Distribution (BSD). Theo de Raadt created OpenBSD in 1995 by fork (software development), forking NetBSD ...
.


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.awesome Wiki: List of awesome releases
The release names are related to music. awesome v4.x uses song name from
Daft Punk Daft Punk were a French electronic music duo formed in 1993 in Paris by Thomas Bangalter and Guy-Manuel de Homem-Christo. They achieved popularity in the late 1990s as part of the French house movement, combining house music, funk, disco, tech ...
.


See also

* Comparison of X window managers * dwm * wmii * i3 (window manager) * Ion (window manager) * Stacking window manager * StumpWM * Tiling window manager * xmonad


References


External links

*
Wiki


- tutorial

*
Awesome Window Manager: How Can Your Environment Work For You?
- wiki review article (in progress)
Awesome window manager
- brief blog review
Comparison of extensible window managers
- Comparison of Sawfish, Awesome, Xmonad, StumpWM, and Qtile. {{DEFAULTSORT:Awesome (Window Manager) Free X window managers Lua (programming language)-scriptable software Lua (programming language)-scripted software Tiling window managers Unix windowing system-related software X window managers extensible by scripting