Awesome

awesome is a highly configurable, next generation framework window manager for X. 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.

Keyboard shortcuts
These are the most useful default shortcuts. mod4 + mouse1 = move client with mouse mod4 + mouse2 = resize client with mouse

mod4 + enter = open terminal mod4 + r = run command mod4 + shift + c = kill mod4 + m = maximize mod4 + n = minimize mod4 + ctrl + n = restore minimized clients mod4 + f = fullscreen mod4 + tab = switch to previous client mod4 + ctrl + space = float

mod4 + j = hilight left client mod4 + k = hilight right client mod4 + shift + j = move client right mod4 + shift + k = move client left

mod4 + l = resize tiled client mod4 + h = resize tiled client

mod4 + left / right = change tag mod4 + 1-9 = change tag mod4 + shift + 1-9 = send client to tag

Creating the configuration file
The default configuration file of Awesome is located in ~/.config/awesome/rc.lua. If such a directory or file does not exist we will need to create them. A default, out of the box, configuration is distributed with Awesome and can be found at /etc/xdg/awesome/rc.lua. We would need to copy that configuration file to the users home directory.

First we create the awesome directory with the following command:

Then we copy the lua configuration file with the following command:

After making changes its useful to check the configuration file for errors.

Debugging config with Xephyr
Xephyr is useful tool for debugging new config 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

Launch
If awesome is going to be launched from terminal through startx a configuration similar to the following is needed:

If a Touchpad hardware is present and scrolling does not work .xinitrc should look similar to the following:

Tags
Example of four tags with custom number symbols.

Menu
Example of custom awesome menu.

Date
Example of custom date format. %d.%m %H:%M = the format, 60 is the update interval in seconds. You can get the format options with date --help. {{file|rc.conf|| -- {{{ Wibox -- Create a textclock widget mytextclock = awful.widget.textclock({ align = "right" }," %d.%m %H:%M ", 60) }}

Volume control
With standalone volume trayicon

Handles volume keys automaticly. Shows volume level in tray icon.

Autostart volumeicon from .xinitrc.

With awesome

Lightweight method is to add volume keys straight to awesome config.

MPD multimedia keys
Add multimedia keybindigs for music player daemon.

Custom keybindings
Add Alt+Tab shortcut to switch to previous window.

{{file|rc.conf|Volume keybindings| -- {{{ Key bindings globalkeys = awful.util.table.join( ...   -- alt + tab    awful.key({ "Mod1", }, "Tab", function awful.client.focus.history.previous if client.focus then client.focus:raise end end), }}

External resources

 * Awesome Homepage