Desktop Upgrade

After serving me well for the past four and a half years, I've finally upgraded my desktop computer. The main driver for this upgrade was that I needed more than 4GB RAM for testing my VMs. Given that DDR4 is due soon, I really wasn't willing to spend money to upgrade my already obsolete DDR2 RAM.

I have no interest in overclocking, so I went with a Intel Core i7-4770 CPU, Gigabyte H87-D3H motherboard, and 16GB of Corsair Vengeance RAM. While I was at it, I took the opportunity to get rid of my tiny Coolermaster Elite 360, and replace it with an Antec One. I was able to recycle the rest of the parts from the old machine to keep costs down.

newpc

Full specifications available here.

Linux Kernel Contributor

Having used GNU/Linux systems for some time now, and having submitted patches to a fair number of open source projects, it is nice to finally get a patch accepted into the biggest open source project of them all, the Linux kernel. While I did submit a kernel patch to OpenWrt back in 2011, it is maintained as a rebased patchset, and was never upstreamed to Linus' tree.

That changed today though, when a small patch I (had forgotten I had) sent to the linux-media mailinglist back in October 2013, was just pulled by Linus Torvalds into his tree for the Linux 3.13-rc4 release; so I'm now proud to be able to call myself a contributor to the Linux Kernel. :-)

GNOME Workspace Wraparound

I found out yesterday that GNOME (or more correctly, the GNOME window manager, Metacity) only allows you to switch to a specific workspace. You cannot cycle through workspaces, wrapping around to the first when on the last. There is a long-standing upstream bug report, about this issue, but sadly it is marked as wontfix.

I have, however, found a workaround using wmctrl. These commands could obviously be much nicer if they were placed in a proper script, but I wanted a one line snippet that I could add to my xbindkeys config. This allows me to execute these commands using keyboard shortcuts.

# Workspace Increment
wmctrl -s $(( $(( $(wmctrl -d | sed -n 's/^\([0-9]\+\) *\*.*/\1/p') + 1 )) & 3 ))

# Workspace Decrement
wmctrl -s $(( $(( $(wmctrl -d | sed -n 's/^\([0-9]\+\) *\*.*/\1/p') - 1 )) & 3 ))

Note: In order to minimise the calls to wmctrl, I've hardcoded my number of workspaces (4 in my case) as a bitwise AND in the last portion of these commands.