Recently, Richard told us all about his work and hack stations and that prompted me to think a little more about my "workspace" and then perhaps discuss that a little with you all.

For me, the critical thing about being comfortable with my computers is consistency. This means that my work laptop, my personal laptop and my desktop PC share many features in terms of setup and indeed in terms of hardware. I have a Lenovo ThinkPad x220 as my work computer, an x201 as my personal laptop and I have a Lenovo USB keyboard attached to my desktop PC. My input surface is pretty much the same across all three of my systems. This contributes to a much more comfortable typing experience for me no matter where I am or what I'm up to. I can highly recommend normalising your input surfaces.

Output-wise, all of my systems are LCDs. Obviously the two laptops are (and have similar screen resolutions) and my desktop has a pair of LCDs (since my laptops have both internal and external display capability). My desktop is also configured to, generally, offer me approximately the same amount of screen real-estate as my laptops, although at a higher resolution. (Larger default fonts etc). All this contributes to ensuring that, to my eyes, all three of my systems have consistent output characteristics. Again I can highly recommend normalising your output surfaces.

Despite being able to use my laptop on my lap (shock! horror!) I tend to only use it when sat at a desk of some kind (unless I'm watching a film in bed). This also contributes to the consistency feeling which means that my brain and body automatically fall into the right "mode" when I'm at a keyboard. I have a comfortable desk and chair at work and at home, and I do my best to make myself comfortable when I'm away from either. While it's trite and often over-stated, good body positioning relative to your input and output devices can also lead to a better computing experience.

For general usability consistency I run the same OS everywhere (Debian) and for user-interface consistency I run the same window manager (XMonad], the same shell [Zshell], the same email client (Mutt], and the same editor (Emacs) across all of my systems, with a consistent configuration thanks to my dotfiles being in revision control. I can highly recommend this approach to give yourself a consistent and comfortable working environment.

Finally there's how I use all that. I keep a desktop for my email because email is important to me, I keep a desktop where I keep my IRC terminal and similar bits, one for my web browser and one for my editor round out my default four desktops which you can find in my Xmonad configuration. This consistency of desktop layout contributes to my feeling of "being in the right place" when I use my computers. Extra desktops are created and destroyed at whim, but 1, 2, 3, and 4 are always mail, term, www and emacs, and they're always right.

My web browser has a set of pinned tabs which are always the same across all of my platforms (though my work laptop has a few more tabs for work related stuff pinned in addition) and I synchronise passwords etc between them. Being able to find that tab I was looking at, at home the night before, in the office the following day leads to a sense of integration which again increases my joy in using my computers.

Richard talked about using music when in the office to reduce distractions from noise around him. I use music similarly at work, and at home I tend to listen to music when I code in order to keep consistency of environment. I tend to prefer lyricless music when I am writing prose, and I prefer bouncy music when I write code. This means that, much to my chagrin, I listen to quite a bit of cheesy 80s and 90s pop. I have my entire music collection available to me wherever I am, thanks to a removable hard drive, and I keep a few favoured albums on my laptop hard drive as well, just in case.

I guess my message, more than anything, is simply that consistency is the key to my comfort in my computing environment and I cannot recommend it enough.

Happy hacking.