Awesome

awesome is Article description::a highly configurable, next generation, dynamic [[window manager for X.]] It is primarily targeted at power users, developers and any people dealing with every day computing tasks and who want to have fine-grained control on their graphical environment. It is extended using the Lua programming language.

Services
Choose exactly one of:


 * elogind: Standalone logind package, extracted from the systemd project for use with OpenRC or other init systems.
 * systemd: Uses the session tracker part of systemd. Users of systemd do not need to take any other initiative here.
 * ConsoleKit: Framework for defining and tracking users, login sessions, and seats.

Miscellaneous

 * D-Bus: Enables use of the D-Bus message bus system.
 * polkit: Enables the polkit framework for controlling privileges for system-wide services.
 * udisks: Enables support for some storage related services.

X server
Follow the instructions on Xorg/Guide to set up the X environment.

Starting the X server
One of the following methods can be used to start X:


 * Display manager: Presents the user with a graphical login screen.
 * X without Display Manager: When running a single-user system, one may find display managers an unnecessary waste of resources.

Emerge
Install :

Starting
To start awesome, refer to Starting the X server or use the command.

To use with elogind support, setup elogind and create the following file:

Configuration file
The default configuration file of awesome is located in. If such a directory or file does not exist then it needs to be created. A default, out of the box, configuration is distributed with and can be found at. Copy that configuration file to the user's home directory.

First create the directory:

Next copy the configuration file:

If is not installed, either install it or change the default terminal emulator to the terminal emulator available on the system. Below, the default terminal emulator is set to, part of.

After making changes it is useful to check the configuration file for errors:

Add wallpaper support through the package:

For instance, to use to set the wallpaper, edit :

Or simply set the wallpaper property of the theme:

Tags
In, tags are the name given to virtual desktops under which one or more applications are running. It is possible to assign custom symbols to these tags:

Menu
Below is an example of a custom menu:

Date
Below is an example use of a custom date format. The format syntax used is. The second option,, is the update interval in seconds.

Volume control
can be used to handle volume keys automatically, and to show the volume level through a tray icon.

Autostart from within :

Alternatively, a lightweight method is to add volume keys straight into the configuration:

MPD multimedia keys
Install to add multimedia key bindings for MPD:

Next update the configuration to assign the multimedia keys to the proper command:

Removing window gaps
Gaps between windows can be visible, most noticeably between terminal windows. These can be removed by inserting the  property in the   table like this:

{{FileBox|filename=~/.config/awesome/rc.lua|title=Setting size_hints_honor property|lang=lua|1= awful.rules.rules = { { rule = { }, properties = { size_hints_honor = false, -- Remove gaps border_width = beautiful.border_width, border_color = beautiful.border_normal, ... }}

Debugging the configuration with Xephyr
Xephyr is a useful tool for debugging new configuration files as it creates an instance of an X server within a client window.

This will open an 800x600 window. To run awesome within it open a new terminal and run the following:

This will run awesome within a window.

Keyboard shortcuts
These are the most useful default shortcuts:


 * + = move client with mouse
 * + = resize client with mouse


 * + = open terminal
 * + = run command
 * ++ = kill
 * + = maximize
 * + = minimize
 * ++ = restore minimized clients
 * + = full screen
 * + = switch to previous client
 * ++ = float


 * + = highlight left client
 * + = highlight right client
 * ++ = move client right
 * ++ = move client left


 * + = resize tiled client
 * + = resize tiled client


 * + = change tag
 * + = change tag
 * ++ = send client to tag

Custom key bindings, like +, can be mapped to make the experience even better. For instance, to use + to switch to the previous window:

External resources

 * User Configuration Files at awesome wiki (web.archive.org)
 * Desktop profile switching USE default to elogind