Awesome (window Manager)
   HOME

TheInfoList



OR:

AwesomeWM is a
dynamic window manager In computing, a dynamic window manager is a tiling window manager where windows are tiled based on preset layouts between which the user can switch. Layouts typically have a main area and a secondary area. The main area usually shows one window, b ...
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 provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting wit ...
developed in the C and
Lua Lua or LUA may refer to: Science and technology * Lua (programming language) * Latvia University of Agriculture * Last universal ancestor, in evolution Ethnicity and language * Lua people, of Laos * Lawa people, of Thailand sometimes referred t ...
programming languages. Lua is also used for configuring and extending the window manager. Its development began as a fork of
dwm dwm is a minimalist dynamic window manager for the X Window System developed by Suckless that has influenced the development of several other X window managers, including xmonad and awesome. It is externally similar to wmii, but internally mu ...
. 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 dwm is a minimalist dynamic window manager for the X Window System developed by Suckless that has influenced the development of several other X window managers, including xmonad and awesome. It is externally similar to wmii, but internally mu ...
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 and Carter Bays for CBS. The series, which aired from September 19, 2005 to March 31, 2014, follows the main character, Ted Mosby, and his ...
'' character
Barney Stinson Barnabus Stinson is a fictional character portrayed by Neil Patrick Harris and created by Carter Bays and Craig Thomas for the CBS television series ''How I Met Your Mother'' (2005–2014). One of the show's main characters, Barney is known f ...
. awesome was officially announced on the dwm mailing list on September 20, 2007.


Aim

Awesome has emerged as a
dwm dwm is a minimalist dynamic window manager for the X Window System developed by Suckless that has influenced the development of several other X window managers, including xmonad and awesome. It is externally similar to wmii, but internally mu ...
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 Lua or LUA may refer to: Science and technology * Lua (programming language) * Latvia University of Agriculture * Last universal ancestor, in evolution Ethnicity and language * Lua people, of Laos * Lawa people, of Thailand sometimes referred t ...
configuration file. * Like
dwm dwm is a minimalist dynamic window manager for the X Window System developed by Suckless that has influenced the development of several other X window managers, including xmonad and awesome. It is externally similar to wmii, but internally mu ...
and
wmii In computing, a tiling window manager is a window manager with an organization of the screen into mutually non-overlapping frames, as opposed to the more common approach (used by stacking window managers) of coordinate-based stacking of overla ...
, awesome uses tags instead of
workspaces Workspace is a term used in various branches of engineering and economic development. Business development Workspace refers to small premises provided, often by local authorities or economic development agencies, to help new businesses to estab ...
. Windows can be assigned to several tags, and multiple tags can be selected at the same time. * As a
dynamic window manager In computing, a dynamic window manager is a tiling window manager where windows are tiled based on preset layouts between which the user can switch. Layouts typically have a main area and a secondary area. The main area usually shows one window, b ...
, awesome can switch between different layouts for each tag, including floating, several dynamic
tiling Tiling may refer to: *The physical act of laying tiles *Tessellations Computing *The compiler optimization of loop tiling *Tiled rendering, the process of subdividing an image by regular grid *Tiling window manager People *Heinrich Sylvester The ...
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 X.Org Server is the free and open-source implementation of the X Window System display server stewarded by the X.Org Foundation. Implementations of the client-side X Window System protocol exist in the form of ''X11 libraries'', which serve ...
,
Xinerama Xinerama is an extension to the X Window System that enables X applications and window managers to use two or more physical displays as one large virtual display. Developed under the name ''PanoramiX'' by Madeline T. Asmus of the Digital Equipme ...
or Zaphod mode). * Implements
freedesktop.org freedesktop.org (fd.o) is a project to work on interoperability and shared base technology for free-software desktop environments for the X Window System (X11) and Wayland on Linux and other Unix-like operating systems. It was founded by Hav ...
standards including
EWMH Extended Window Manager Hints, a.k.a. NetWM, is an X Window System standard for the communication between X window manager, window managers and Application software, applications. It builds on the functionality of the Inter-Client Communication Conv ...
, 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 shooting for compositing is variously ca ...
and true transparency support through an external compositor such as xcompmgr. * Remote control via
D-Bus In computing, D-Bus (short for "Desktop Bus") is a message-oriented middleware mechanism that allows communication between multiple processes running concurrently on the same machine. D-Bus was developed as part of the freedesktop.org project, ...
(awesome-client). * Supports the
pango Pango (stylized as Παν語) is a text (i.e. glyph) layout engine library which works with the HarfBuzz shaping engine for displaying multi-language text. Full-function rendering of text and cross-platform support is achieved when Pango is us ...
markup language.


Configuration and customization

From the very beginning, awesome was conceived as a
dwm dwm is a minimalist dynamic window manager for the X Window System developed by Suckless that has influenced the development of several other X window managers, including xmonad and awesome. It is externally similar to wmii, but internally mu ...
fork In cutlery or kitchenware, a fork (from la, furca 'pitchfork') is a utensil, now usually made of metal, whose long handle terminates in a head that branches into several narrow and often slightly curved tines with which one can spear foods ei ...
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 dwm is a minimalist dynamic window manager for the X Window System developed by Suckless that has influenced the development of several other X window managers, including xmonad and awesome. It is externally similar to wmii, but internally mu ...
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 Lua or LUA may refer to: Science and technology * Lua (programming language) * Latvia University of Agriculture * Last universal ancestor, in evolution Ethnicity and language * Lua people, of Laos * Lawa people, of Thailand sometimes referred t ...
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 Theme or themes may refer to: * Theme (arts), the unifying subject or idea of the type of visual work * Theme (Byzantine district), an administrative district in the Byzantine Empire governed by a Strategos * Theme (computing), a custom graphical ...
(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 cuticle, animal coverings, such as the arthropod exoskeleton, have diffe ...
) 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 Lua or LUA may refer to: Science and technology * Lua (programming language) * Latvia University of Agriculture * Last universal ancestor, in evolution Ethnicity and language * Lua people, of Laos * Lawa people, of Thailand sometimes referred t ...
, 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 Lua or LUA may refer to: Science and technology * Lua (programming language) * Latvia University of Agriculture * Last universal ancestor, in evolution Ethnicity and language * Lua people, of Laos * Lawa people, of Thailand sometimes referred t ...
code since widgets are defined in the main configuration file.


Migration to XCB

The 3.0 version, released September 18, 2008, uses the
XCB XCB (''X protocol C-language Binding'') is a library implementing the client-side of the X11 display server protocol. XCB is written in the C programming language and distributed under the MIT License. The project was started in 2001 by B ...
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 written in the C programming language. It contains functions for interacting with an X server. These functions allow programmers to write programs without knowing the ...
. 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 Arch Linux () is an independently developed, x86-64 general-purpose Linux distribution that strives to provide the latest stable versions of most software by following a Rolling release, rolling-release model. The default installation is a minim ...
,
Debian Debian (), also known as Debian GNU/Linux, is a Linux distribution composed of free and open-source software, developed by the community-supported Debian Project, which was established by Ian Murdock on August 16, 1993. The first version of D ...
,
Fedora Linux Fedora Linux is a Linux distribution developed by the Fedora Project. Fedora contains software distributed under various free and open-source licenses and aims to be on the leading edge of open-source technologies. Fedora is the upstream sourc ...
, Gentoo,
Ubuntu Ubuntu ( ) is a Linux distribution based on Debian and composed mostly of free and open-source software. Ubuntu is officially released in three editions: ''Desktop'', ''Server'', and ''Core'' for Internet of things devices and robots. All the ...
,
Source Mage Source Mage is a Linux distribution. As a package is being installed, its source code is automatically downloaded, compiled, and installed. Source Mage is descended from Sorcerer. Notable features Source Mage is, as its name suggests, a sourc ...
,
openSUSE openSUSE () is a free and open-source software, free and open source RPM Package Manager, RPM-based Linux distribution developed by the openSUSE project. The initial release of the community project was a beta version of SUSE Linux 10.0. Addi ...
,
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 NixOS is a Linux distribution built on top of the Nix package manager. It uses declarative configuration and allows reliable system upgrades. Several official package "channels" are offered, including the current Stable release and the Unstable ...
,
FreeBSD FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ...
,
NetBSD NetBSD is a free and open-source Unix operating system based on the Berkeley Software Distribution (BSD). It was the first open-source BSD descendant officially released after 386BSD was forked. It continues to be actively developed and is a ...
and
OpenBSD OpenBSD is a security-focused, free and open-source, Unix-like operating system based on the Berkeley Software Distribution (BSD). Theo de Raadt created OpenBSD in 1995 by forking NetBSD 1.0. According to the website, the OpenBSD project em ...
.


Named releases

AwesomeWM 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. AwesomeWM 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. Widely regarded as one of the most influential acts in dance music history, they achieved popularity in the late 1990s as p ...
.


See also

*
Comparison of X window managers This article compares variety of different X window managers. For an introduction to the topic, see X Window System. General information Features See also * Comparison of X Window System desktop environments * Window manager * ...
*
dwm dwm is a minimalist dynamic window manager for the X Window System developed by Suckless that has influenced the development of several other X window managers, including xmonad and awesome. It is externally similar to wmii, but internally mu ...
*
wmii In computing, a tiling window manager is a window manager with an organization of the screen into mutually non-overlapping frames, as opposed to the more common approach (used by stacking window managers) of coordinate-based stacking of overla ...
*
i3 (window manager) i3 is a tiling window manager designed for X11, inspired by wmii and written in C. It supports tiling, stacking, and tabbing layouts, which it handles dynamically. Its configuration is achieved via a plain text file and extending i3 is pos ...
* Ion (window manager) *
Stacking window manager A stacking window manager (also called floating window manager) is a window manager that draws and allows windows to overlap, without using a compositing algorithm. All window managers that allow the overlapping of windows but are not compositing ...
*
StumpWM StumpWM is a tiling window manager that was created when developer Shawn Betts found ratpoison growing increasingly large and " lispy". Intended as a successor to ratpoison, StumpWM is released under the terms of the GPL-2.0-or-later license. ...
*
Tiling window manager In computing, a tiling window manager is a window manager with an organization of the screen into mutually non-overlapping frames, as opposed to the more common approach (used by stacking window managers) of coordinate-based stacking of overlap ...
*
xmonad xmonad is a dynamic window manager (tiling) for the X Window System, noted for being written in the functional programming language Haskell. Window manager Begun in March 2007, version 0.1 was announced in April 2007 as 500 lines of Haskell ...


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 Sawfish, also known as carpenter sharks, are a family of rays characterized by a long, narrow, flattened rostrum, or nose extension, lined with sharp transverse teeth, arranged in a way that resembles a saw. They are among the largest fish wi ...
, Awesome,
Xmonad xmonad is a dynamic window manager (tiling) for the X Window System, noted for being written in the functional programming language Haskell. Window manager Begun in March 2007, version 0.1 was announced in April 2007 as 500 lines of Haskell ...
,
StumpWM StumpWM is a tiling window manager that was created when developer Shawn Betts found ratpoison growing increasingly large and " lispy". Intended as a successor to ratpoison, StumpWM is released under the terms of the GPL-2.0-or-later license. ...
, and
Qtile In computing, a tiling window manager is a window manager with an organization of the screen into mutually non-overlapping frames, as opposed to the more common approach (used by stacking window managers) of coordinate-based stacking of overlap ...
. {{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