Intro to AwesomeWM
awesome is a highly configurable, next generation framework window manager for X. It is very fast, extensible and licensed under the GNU GPLv2 license.
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 its graphical environment.
First step: don’t forget about that Windows(r) key
When you open awesome for the first time, all you get is a dark theme, with a gray wallpaper. You will have a statusbar on the top with a clock on the right, a weird icon next to it and some numbers on the left (1..9).
First thing first, the magic key here is the “Windows Key” that almost all the PC keyboards have, and the behavior is based on Vi, the text editor. From now on the “Windows key” will be just modkey.
Open your apps
To create a new terminal window all you need to do is press modkey+Enter. To open a different app you could create your own shortcut or press modkey+F1. That will create a prompt on the statusbar where you can insert your command (e.g. “firefox”).
Moving
Now, if you have several windows open you can circle them using modkey+j and modkey+k. If you want to move between “tags” use modkey+left or modkey+right (arrow keys). This should break it down better: (note: client refers too application)
| Mod4 + j* | Focus next client |
| Mod4 + k* | Focus previous client |
| Mod4 + u* | Focus first urgent client |
| Mod4 + Left* | View previous tag |
| Mod4 + Right* | View next tag |
| Mod4 + 1-9* | Switch to tag 1-9 |
| Mod4 + Control + j* | Focus next screen |
| Mod4 + Control + k* | Focus previous screen |
| Mod4 + Escape* | Focus previously selected tag set |
Changing window sizes
Using the default layout, there will be a “main window” on the left that will take half of the screen and all the other windows will be confined to the right. With modkey+h and modkey+l you can change how much space is dedicated for each of this “groups”.
What if you want a single window to take the whole screen temporarily? Use modkey+m :)
More Shortcuts
Switching “Clients”
A “client” is the term for basically an application window
| Windows + 1 | Go to Tag 1 |
| Windows + Enter | Start terminal in current tag (I’ll find the correct term later and fix this ) |
| Windows + Space | Switch to next layout (like clicking the icon in the upper-right corner) |
| TODO: need to find out how to ‘maximize’ current window | |
| Windows + Shift + C | Close current window |
Utility Shortcuts
| Key | Purpose |
|---|---|
| Windows + F1 | Run a program. Opens a new window in the current tag thingy |
| Windows + H / L | Increase current “client” or decrease current client width |
| Windows Shift K / J | Rotate clients around in a tag. 1 becomes 2, 2 becomes 3, etc |
| Windows + Ctrl + Space | “maximize” current client. |
Navigation
| Button1* on tag name | View tag |
| Button4*, *Button5* on tag name | Switch to previous or next tag |
| Button4*, *Button5* on root window | Switch to previous or next tag |
| Button1*, *Button3*, *Button4*, *Button5* on layout symbol | Switch to previous or next layout |
Layout modification
| Mod4 + Button1* on tag name | Tag current client with this tag only |
| Mod4 + Button3* on tag name | Toggle this tag for client |
| Button3* on tag name | Add this tag to current view |
| Mod4 + Button1* on client window | Move window |
| Mod4 + Button3* on client window | Resize window |
Window manager control
| Mod4 + Control + r* | Restart *awesome* |
| Mod4 + Shift + q* | Quit *awesome* |
| Mod4 + F1* | Run prompt |
| Mod4 + F4* | Run Lua code prompt |
| Mod4 + Return* | Spawn terminal emulator |
Clients
| Mod4 + Control + i* | Print the client class and instance |
| Mod4 + Shift + r* | Redraw the focused window |
| Mod4 + m* | Maximize client |
| Mod4 + f* | Set client fullscreen |
| Mod4 + Shift + c* | Kill focused client |
| Mod4 + t* | Mark a client |
Layout modification
| Mod4 + Shift + j* | Switch client with next client |
| Mod4 + Shift + k* | Switch client with previous client |
| Mod4 + h* | Decrease master width factor by 5% |
| Mod4 + l* | Increase master width factor by 5% |
| Mod4 + Shift + h* | Increase number of master windows by 1 |
| Mod4 + Shift + l* | Decrease number of master windows by 1 |
| Mod4 + Control + h* | Increase number of columns for non-master windows by 1 |
| Mod4 + Control + l* | Decrease number of columns for non-master windows by 1 |
| Mod4 + space* | Switch to next layout |
| Mod4 + Shift + space* | Switch to previous layout |
| Mod4 + Control + space* | Toggle client floating status |
| Mod4 + Control + Return* | Swap focused client with master |
| Mod4 + Control + 1-9* | Toggle tag view |
| Mod4 + Shift + 1-9* | Tag client with tag |
| Mod4 + Shift + Control + 1-9* | Toggle tag on client |
| Mod4 + Shift + F1-9* | Tag marked clients with tag |
Creating the configuration file
Whenever compiled, awesome will attempt to use whatever custom settings are contained in ~/.config/awesome/rc.lua. This file is not created by default, so we must copy the template file first:
$ cp /etc/xdg/awesome/rc.lua ~/.config/awesome/rc.lua
For more information about configuring awesome, check out the configuration page at awesome wiki
Themes
Beautiful is a lua library that allows you to theme awesome using an external file, it becomes very easy to dynamically change your whole awesome colours and wallpaper without changing your rc.lua.
The default theme is at /usr/share/awesome/themes/default. Copy it to ~/.awesome/themes/default and change theme_path in rc.lua.
More details here
A few sample themes








