The big advantage of using Linux, at least for a guy such as myself(geek) in a position such as mine(see blog title), is that I can make my computer, well, my computer. That means I can run Gnome or KDE, or neither. I can have as much software as I want, and no more, on my computer. More than speed and stability, the ability to customize the computer is the single biggest point in favor of Linux, IMHO. Of course, as many good things in life, it comes at a price.
I do not run a desktop environment per say, I run a window manager. An awesome window manager. The Awesome Window Manager to be precise. I’ve been using it since the 2.3 days with a relatively simple configuration file and decided to stick it out when, in the 3.x branch, the config file was changed to use the Lua programming language. In the course of doing this, rather than wait for new versions to become available via the package manager I download and build the source. This is the one of the upsides up Linux- all I have to do is build the software, rather than waiting for packages to become available. While I always get that nice sense of achievement when I successfully build and run it, each upgrade comes with a hassle factor due to improvements and tweaks related to how Lua is used to configure Awesome. This is one of the costs of building your own software- forever tweaking config files.
Another problem that can crop up is related to library dependencies. Since I build from source for Awesome, the package manager has no idea about dependencies. This appears to be what got me this time regarding Awesome. The XCB library libxcb-keysym was upgraded and I must have uninstalled the old version without thinking. So tonight, when I rebooted the server after a kernel upgrade and attempted to log in, Awesome would not start. I inspected the .xsession-errors file and saw the library related error and realized it was time to rebuild Awesome.
The process is actually very straightforward. Download the tarball from here. I grabbed the bzipped version which I extracted as follows:
bzip2 -dc awesome-3.3.2.tar.bz2 | tar -xv
After that, go into the resulting subdirectory and enter “make”. If there are any unavailable build tools or libraries it will let you know. I was able to use aptitude to resolve all of them. After that step, make did it’s thing in about 5 minutes or so, and then I entered “make install” as root. From there I had to make some minor tweaks to my Lua config files since the previous version of 3.2 had a now outdated keybinding syntax.
Now, Awesome is awesome, once again.