A new set of tiles for OS X

Aug. 19, 2007

Filed under: Uncategorized Programming

I believe that the Mac is well-suited to two types of people at nearly opposite ends of the user spectrum. First, the user who doesn't care to serve the computer nor optimize their use thereof (the "newbie" - a term used whether the user is new to computers or not). The second is the nearly hardcore power user - nearly hardcore because despite that they can handily fling text and files around without touching the mouse and spend considerable time typing commands into a shell (probably even programming), they for some reason cannot or do not wish to make the plunge fully into Linux-land, where everything is malleable, and every whim of the system can be bent to the will of a sufficiently powerful wizard.

I'd like to think I am at the 'nearly hardcore' end of the spectrum. As a musician, I really depend upon both software such as Ableton Live and the knowledge that almost any hardware for sale will work with my system out of the box. However, the more time I spend tracking my life in plain text and writing code at work, the more I find myself looking at plaintext terminals and using free software. While Mac OS X is a triumph in one-size-fits-most usability, I've long heard the siren call of the ultimate tweakability of Linux, and wished for something that could combine the 'just works' aspect of my Apple laptops with the hyperfocused productivity that comes from working in an environment that you've optimized down to the latest detail. Fortunately, because OS X is Unix-like (and in the next version will just be Unix) , many of the time-tested tools for micromanaging your time and assets are available. OS X even comes with its own port of X11, the basis of Unix-like graphical user interfaces. For the longest time, X11.app sat unused on my system, as almost all of the linuxy things I needed to accomplish were done in text mode in the provided Terminal application.

As my job description started to drift from Project Manager towards Software Engineer, I spent more and more time dragging multiple terminal windows around. I abandoned Textmate, the excellent OS X text editor, for the tried-and-true 30-year-old editor vi ^, and ultimately landed in the nuclear-powered text swiss army knife that is Emacs ^. Savvy readers out there suspect that this is the point in the story where I tell of my switch to running Linux as my main desktop and the myriad joys my conversion brought me -- but these suspicions are premature. I haven't switched full-time to Linux, yet. I have a linux workstation at home running Ubuntu Studio, but I am very attached to a lot of the attributes of my macbook, not the least of which is the aforementioned hardware compatiblity and music support.

So, I didn't switch to Linux, but I did find myself spending all my time in Emacs and constantly rearranging terminal windows. This had to stop. Reaching for the rat every 5 minutes to move something over was killing my right wrist, and definitely hurting my productivity. I needed a way to manage a variety of shells and my editor in a way that used only my keyboard and let me get a lot of work done quickly, but allow me to continue using OS X for my everyday work. This was a quandary. OS X actively resists all attempts at customization, and basic elements of the OS seemed to be limiting my productivity.

While gazing out my office window pondering this first-world problem, I remembered X11.app! It had a full screen mode that I'd never used - because of course I didn't want the one or two X11 applications I occasionally used to block out all my essential OS X tools. Things had changed, though. Almost all of my essential OS X tools were either not so essential anymore, or general enough that I could reasonably replace them with open source alternatives.

I wasn't sure how exactly to use X11 to maximize my productivity, though I was sure it was the path. I have had various Linux boxes off and on since I started college, but always ran very Windows-like desktops like Gnome. One of my coworkers, a diehard free software advocate and productive programmer, is a strong proponent of tiling window managers, in his case Ion. Also, some of the interesting Ruby programmers whose blogs I occasionally read use wmii. Giving my coworker Tv the benefit of the doubt, I searched my package management tool of choice for Ion, and it was there! Installed, set up, and.. X11 crashes. Oh well, on to the next. wmii - - crashes X11. This was starting to frustrate me. Eventually the tiling window manager ratpoison worked correctly. Its simplicity appealed to me - it let me tile windows, worked across multiple monitors, and had a really easy way to define new keys. After using it for a few days, I started to feel a little bit constrained by its simplicity. As the name implies, it has no use for the mouse whatsoever, and I really wanted to be able to focus on a new window by simply moving the mouse. Fortunately, Garry came to the rescue with instructions for getting wmii running properly on my system.

Ed. note: I originally planned to go into a bit more detail in this section but for the sake of actually shipping the article decided to cut it short. If you are interested in the particulars of my setup, leave a comment or send me an email.

It's been a few weeks, and I'm very happy with the setup. A tiling window manager allows me to be nearly as productive on one small screen as I am with my large external monitor attached. I wholeheartedly recommend that anyone interested in making the step to using the computer as a brain extension rather than a simple tool investigate a tiling window manager or two. Even if you don't end up using a tiling WM in your everyday computing practice, you will have an expanded appreciation for alternative ways of thinking about how we humans can interact with our machines.

Comments

#1

jet commented, on December 5, 2007 at 6:23 a.m.:

nearly hardcore have to go with xmonad my dear !
http://xmonad.org/


related articles