Awesome
by BenV on Feb.13, 2010, under Software
So every once in a while you have to mess around a bit with new stuff. Window managers for example.
I’m quite happy with Fluxbox (been using it since I started with linux), but it’s nice to see something new once in a while. Especially since development on Fluxbox is kind of …. dead. Well, not completely, but there’s just not much to be added without totally changing the thing.
My brother mentioned Awesome a few weeks ago, and during HAR last year it was also mentioned as something that I might like.
Which means it’s time to check it out! 🙂
First stop: the installation on Slackware 64. (you may skip this if you run some flavor of Pokemon OS ;)).
As I mentioned in my previous rant, the developers of Awesome have decided that they’re complete and utter idiots. That is, they forced me through CMake, which usually fills me with anger. Fortunately they didn’t include Boost in the mix, so after some cursing it can be installed.
In order to get Awesome 3.4.3 installed, I needed to:
- Upgrade my xcb-proto to version 1.6 ** (source)
- Upgrade my libxcb to version 1.5 ** (source)
- Upgrade my xcb-util to version 0.3.6 ** (source)
- Install libstartup-notification version 0.10 or higher ** (source)
- Install libxdg-basedir version 1.0.2 or higher ** (source)
- Install libev ** (source)
- ** indicates that the whole ‘wget, tar, configure, make, makepkg’ riddle works fine with my slackbuild.pl script
That was pretty easy with slackbuild.pl. Note that you might have to recompile cairo to enable xcb support (it’s a configure flag that used to be disabled on Slackware). Mine didn’t need it though.
Next is building Awesome. If you don’t want Awesome scattered all over /usr/local/share you might want to give CMake some hints. See my previous rant about setting this permanently.
Today I used this:
benv@janeman:/usr/src/awesome-3.4.2$ export CMAKE_ARGS="-DCMAKE_INSTALL_PREFIX=/usr -DPREFIX=/usr -DAWESOME_DOC_PATH=/usr/share/doc/awesome -DAWESOME_MAN_PATH=/usr/share/man -DAWESOME_XSESSION_PATH=/usr/share/xsessions -DSYSCONFDIR=/etc -DXDG_CONFIG_HOME=/etc/xdg"
After that, ‘make’ should compile it properly, and you can use slackbuild.pl to make a package out of it. (or make DESTDIR=bla, makepkg yadieyada).
Second stop: Testing Awesome
I still like to type startx every time I booted my machine, so for me the thing to change was the file ~/.xinitrc.
Something like:
# No more fluxbox for now, we want to try Awesome!
# exec /usr/bin/startfluxbox
exec /usr/bin/awesome
Kill your X and startx, and voila! The first error.
Well, that’s off to a good start. Apparently the wmsetbg program segfaulted on that image. Don’t ask me why, it works fine on another PNG. Probably some transparency or layer issue, dunno. Not important for now.
First impression: looks clean.
A tiny menu bar / panel / whatever you want to call it that shows the running programs and the date.
The default shortcut to do everything seems to be the windows button, or mod4. I’m not sure if I like this, since alt was already cramping my thumb every now and then 😉
However, this can be changed, so no big deal. mod4-enter starts a console. Good. It’s fast too!
Hitting mod4-enter a few times looks like this:
As you might be able to see if you try, the terminal windows are all tiled next to each other. Resizing with mod4 and right mouse also works. Or mod4-f for fullscreen… or mod4-m for maximize. Yup, I like it so far.
Needless to say there are tons of things to try out and customize, but you might want to check out this guide for starting out with awesome. I did 😉
Maybe it will even replace Fluxbox…. we’ll see. Time to mess around with it some more.
Keep up the good work Awesome developers…. and switch to autoconf!