**awesome** is a highly configurable, next generation framework window manager for X. It is very fast, extensible and licensed under the [GNU GPLv2 license](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html). It is primarly targeted at power users, developers and any people dealing with every day computing tasks and who want to have fine-grained control on theirs graphical environment.
[[!img images/screen.png alt="awesome screenshot" size="320x240"]]
# Concepts 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](http://www.lua.org) programming language. We provide an easily usable and very-well documented API to configure and define the behaviour of your window manager. ## Tag Windows are grouped by tags. Each window can be tagged with one or multiple tags. Selecting certain tags displays all windows with those tags. Each tag can have its own layout. Tags can be compared to virtual desktops, but it's more powerful: you can quickly merge and show several tags at the same time, and go back to only one tag after. ## Layout A layout is a function which organize windows according to the space available on the screen. ### Tiled With tiled layout, windows are managed in a master and a stacking area. The master area contains the windows which currently need most attention, whereas the stacking area contains all other windows. The master area can be splited in several rows and column, as you want. ### Max Each window is resized to take full screen space. ### Magnifier All windows are stacked behind the focused window. This one is centered in your screen and takes most of the available space. ### Floating In floating layout, windows can be resized and moved freely, just like a usual window manager. Dialog windows are always managed floating, regardless of the layout selected. ## Statusbar A statusbar is a bar which is displayed on top, bottom, left or right edge of the screen. It contains one or several widgets. ## Titlebar Like statusbar, but this ones are displayed around a window: top, bottom, left or right edge or also usable. ## Widget The widgets are contained inside statusbars or titlebars and displays various informations in form of text, image, progress bar, graph, etc…
[[!img images/4mon.png alt="awesome running on 4 monitors" size="320x240"]]
# Features and non-features * Very stable, fast, small and simple; * Only window manager using asynchronous [XCB](http://xcb.freedesktop.org) library instead of the old synchronous [Xlib](http://en.wikipedia.org/wiki/Xlib): make **awesome** faster than any other window manager; * Very well documented source code and API; * No mouse needed: everything can be performed with keyboard; * Real multihead support (XRandR, Xinerama or Zaphod mode) with per screen desktops (tags); * Implement many [Freedesktop](http://www.freedesktop.org) standards: [EWMH](http://standards.freedesktop.org/wm-spec/wm-spec-latest.html), [XDG Base Directory](http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html), [XEmbed](http://standards.freedesktop.org/xembed-spec/xembed-spec-latest.html), [Desktop Notification](http://www.galago-project.org/specs/notification/), [System Tray](http://standards.freedesktop.org/systemtray-spec/systemtray-spec-latest.html); * Real transparency support (using Composite extension and *xcompmgr*); * Doesn't distinguish between layers: there is no floating or tiled layer; * Whether or not the clients of currently selected tag(s) are in tiled layout, you can rearrange them on the fly. Popup and fixed-size windows are automatically floating. * Layout handling: automatically manage your windows placement according to the chosen policy for each tag; * Use tags instead of workspaces: allow to place clients on several tags, and display several tags at the same time; * A lot of Lua extensions to add features: dynamic tagging, widget feeding, tabs, …; * [D-Bus](http://dbus.freedesktop.org) support; * And more. This gonna be LEGEN... wait for it... DARY!