Intro to AwesomeWM

Awesomewm50.png

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.

awesome

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

Related Posts

Comments are closed.