Installing awesome Window Manager on Ubuntu Intrepid
Posted by Dave | Tags: awesome, awm, tutorial, ubuntu, windowToday I had a go at installing awesome window manager. awesome is a great tiling window manager, useful if you have a large monitor and are fed up with having one window taking up all the space when it doesn’t really need it all. For example, having firefox maximised on a 1920×1200 resolution monitor can mean you end up with very large sentences that spread across the screen, decreasing readability. Unfortunately the version of awesome in the Interpid repos is 2.3.2-1, which is now deprecated, and the current stable release is version 3.1-1.

The website suggests building from source – I attempted this but there are currently a couple of issues with compilation mentioned in the wiki, and even with the fix suggested I couldn’t quite get it to work – although I didn’t try too hard it must be said; instead I found another method which I will walk you through now.
Installing and Trying It Out
The method I ended up using (thanks to my buddy Matt for figuring this out) revolves using binaries from the Debian experimental repository, which seem to work perfectly. First, you can download the awesome 3.1-1 package (N.B. The binaries I’m linking to here from Debian’s website are for i386, for others just search for them on the site), and try and install it with:
wget http://ftp.uk.debian.org/debian/pool/main/a/awesome/awesome_3.1-1_i386.deb sudo dpkg -i awesome_3.1-1_i386.deb
However, it will spit out a list of dependencies it couldn’t manage – these are packages that are also outdated in the current Ubuntu repos. So next, fetch the ones you need which are listed below:
wget http://ftp.uk.debian.org/debian/pool/main/x/xcb-util/libxcb-atom1_0.3.2-1_i386.deb wget http://ftp.uk.debian.org/debian/pool/main/x/xcb-util/libxcb-aux0_0.3.2-1_i386.deb wget http://ftp.uk.debian.org/debian/pool/main/x/xcb-util/libxcb-event1_0.3.2-1_i386.deb wget http://ftp.uk.debian.org/debian/pool/main/x/xcb-util/libxcb-icccm1_0.3.2-1_i386.deb wget http://ftp.uk.debian.org/debian/pool/main/x/xcb-util/libxcb-keysyms0_0.3.2-1_i386.deb wget http://ftp.uk.debian.org/debian/pool/main/x/xcb-util/libxcb-property1_0.3.2-1_i386.deb wget http://ftp.uk.debian.org/debian/pool/main/x/xcb-util/libxcb-render-util0_0.3.2-1_i386.deb
Then try and install them all with dpkg:
sudo dpkg -i awesome_3.1-1_i386.deb libxcb-atom1_0.3.2-1_i386.deb libxcb-aux0_0.3.2-1_i386.deb \ libxcb-event1_0.3.2-1_i386.deb libxcb-icccm1_0.3.2-1_i386.deb libxcb-property1_0.3.2-1_i386.deb \ libxcb-render-util0_0.3.2-1_i386.deb libxcb-keysyms0_0.3.2-1_i386.deb
At this point, it might spit out that it needs some extra packages – these are packages that you should just be able to install normally with synaptic or apt: I had to install menu for example, you may have to install some others as I had a few other dependencies installed from trying to build from source earlier on. Once you have all the packages, run the above command again to install awesome.
Once awesome is installed, we need a configuration file. A default config file is provided, so go ahead and copy it to your home dir:
mkdir ~/.config/awesome cp /etc/xdg/awesome/rc.lua ~/.config/awesome/rc.lua
Now we can see if awesome works – kill your current window manager (in my case compiz), then fire up awesome:
killall compiz.real && awesome&
Hopefully everything has gone to plan, and awesome should now be running! Hooray! Have a little play around with it, mess with the config file a bit and see if you like it. Some useful key-bindings are:
- Win + Enter – launch a terminal
- Win + F1 – run a command
- Win + J/K – switch windows (à la vim)
- Win + H/L – resize major/minor divide
- Win + Shift + J/K – move windows
- Win + Space – change layout
- Win + Ctrl + r – restart awesome, for example to update if you change the config file
There are loads more keybindings that you can find/change in the config file if you wanna know what they all do exactly.
If after using awesome for a while you decide you want to keep it, there are a few loose ends to tie up.
Setting awesome as the Default Window Manager
First, fire up gconf-editor:
gconf-editor
On the list on the left, goto:
desktop > gnome > session
First of all, we’ll get rid of the gnome-panels – awesome already has its own. On the right, there is a name/value pair with name ‘required_components_list’, containing “[windowmanager, panel, filemanager]“. Remove panel, so it becomes “[windowmanager, filemanager]“.
Next we actually tell gnome to load in awesome instead of compiz. On the list on the left, choose the folder required_components. Change the windowmanager field from ”compiz’ to ‘awesome’.
Finally, you’ll probably wan’t to disable nautilus’s desktop (where the desktop icons live etc.) as it can do funny things, and with your magical new tiling windows you will probably never see the desktop. To do this, from the list on the left choose
apps > nautilus > preferences
and when here, uncheck show_desktop.
Now you can kiss sweet goodbye to all the remnants of your old desktop – log out of your system and log back in again to see it take effect. WARNING: If something has gone wrong and awesome doesn’t load (maybe you mispelt it in gconf-editor or something), you should still be able to find a way to edit the gconf preferences, but it took me a while to figure out how to logout when the normal gnome logout button had disappeared. To logout in this situation, type gnome-session-save –kill.
Customising and Configuring
Due to the highly keyboard oriented nature of awesome, you may now want to install a launcher. A couple of good ones are Gnome-Do (if you opt for this, you will have to change the binding from Win+Space in the awesome preferences, or reconfigure awesome’s binding for this combination), an all singing all dancing affair which I used for a while, or dmenu which is quite a lot simpler and I’ve opted for in this case.
To install dmenu:
sudo apt-get install dmenu
Next we setup a keybinding for it to launch in the awesome config file. Underneath the line:
-- {{{ Keybindings
Add (here it is mapped to Win+P – change this if you like):
-- dmenu
keybinding({ modkey }, "p", function () awful.util.spawn("`dmenu_path | dmenu -b`") end):add()
Also, as awesome is aimed at uber geeks the time is displayed by default as…. unix time_t. Unless you’re some kind of magician, hunt down the section in the config file that looks like this, and comment/uncomment accordingly:
-- For unix time_t lovers --mytextbox.text = " " .. os.time() .. " time_t " -- Otherwise use: mytextbox.text = " " .. os.date() .. " "
Finally, I missed my CPU monitor. There is however a set of widgets you can get that adds functionality like this called wicked.
Install wicked:
git clone git://git.glacicle.com/awesome/wicked.git sudo cp wicked/wicked.lua /usr/share/awesome/lib/ sudo cp wicked/wicked.7.gz /usr/share/man/man7/
in config file, underneath:
-- {{{ Wicked Widgets
Add in:
-- {{{ Wicked Widgets
-- CPU Usage Graph
cpugraphwidget = widget({
type = 'graph',
name = 'cpugraphwidget',
align = 'left'
})
cpugraphwidget.height = 0.85
cpugraphwidget.width = 45
cpugraphwidget.bg = '#333333'
cpugraphwidget.border_color = '#0a0a0a'
cpugraphwidget.grow = 'right'
cpugraphwidget:plot_properties_set('cpu', {
fg = '#AEC6D8',
fg_center = '#285577',
fg_end = '#285577',
vertical_gradient = false
})
wicked.register(cpugraphwidget, wicked.widgets.cpu, '$1', 1, 'cpu')
Then add in the cpugraphwidget into the mywibox[s].widgets line:
mywibox[s].widgets = { mylauncher,
mytaglist[s],
mytasklist[s],
mypromptbox[s],
cpugraphwidget,
mytextbox,
mylayoutbox[s],
For full instructions on how to use wicked, and configure awesome, check out the awesome wiki. Have fun!
Yet it’s (almost) not possible to install the most recent awesome from its git repository. Just tried a bit, and found it’s not very possible, or safe, to replace the official ubuntu xcb libraries with the ones built manually with sources fetched from freedesktop.org. Have to stick to a 3.1x branch awesome
Thanks for that, mate.
It seems that the initial link to the i386 3.1-1 .deb is not functional, though…checked all mirrors, nothing.
Mind uploading it yourself?
Hey Kirtay, seems they’ve updated to 3.2 RC1 in there, you could probably try using that instead with the same procedure if you fancied the newer version. If you’d rather use 3.1 though, I’ve put it up here for you: http://www.actionshrimp.com/wordpress/wp-content/uploads/2009/02/awesome_31-1_i386.deb
Thanks for the quick reply, man!
Yeah, the reason I didn’t want to use the 3.2 RC is because of IUSR’s comment.
If I have more problems, I’ll ask.
Thanks again!
Ah, now I’m getting 404s on the dependencies…tried getting them manually from apt-get (added the debian repos), but I get missing installation candidates for some of them.
Ahhh damn, well I’ve put up all the files I’ve used here: http://files.actionshrimp.com/awesome/ if you still wanna give it a go, although maybe this method isn’t the best one to use now if it’s all becoming a bit outdated.
Ah, you’re awesome.
Thanks, everything worked perfectly.
Customization time!!
Thanks a lot. Great help. Posted updates of your links here, though.
http://anderstornvig.tumblr.com/post/85930719/awesome-window-manager-on-ubuntu-intrepid
Cheers Anders – they seem to be changing around in the repos quite a lot though and go out of date pretty sharpish unfortunately. Will give them another update soon though.
The new awesome 3.2 seems to require libxcb1 of version 1.1.92
A version 1.2 is available from debian repositories… But it seems to conflict with libxcb-xlib0, which seems to be a dependency of so many things that I probably shouldn’t remove it
Anyway, thanks for putting up the files… I’ll be trying 3.1
I don’t think 3.2 will compile without libxcb 1.1.92, which I probably shouldn’t try to replace…
Anybody else have any success with awesome 3.2 ?
[...] found a great walk-through for doing this at http://www.actionshrimp.com/2009/02/installing-awesome-window-manager-on-ubuntu-intrepid/. The links, however, were broken so now, I want to share the right ones with you [...]
Found all debs here:
http://www.fingel.com/2009/04/awesome-window-manager-32-debs-for-ubuntu/
Just to let the googlers know.
Thanks for a Awesome guide Dave!
hi, it’s a great post. However, i got stuck while I was going to replace metacity with awesome:(
It seems useless after changing windowmanager field from ‘metacity’ to ‘awesome’, which means awesome doesn’t start after I logging the gdm. But I can set the vaule to ‘metacity’ and use the following command to start awesome without any error: killall metacity && awesome&
my laptop runs on Ubuntu 9.04
it’s really weird…
any hints would be appriciated
sorry, forget to check dmsg:
awesome[4530]: segfault at 18 ip b805c6ca sp bf89a514 error 4 in libxcb.so.1.1.0
but, i dont know why it’s ok to start it by hand …
finally, it works now, just try the tips on wiki of official website
http://awesome.naquadah.org/wiki/Quickly_Setting_up_Awesome_with_Gnome
You may use the following in your sources.list now
and