Thoughts, Words, Works

Anatomy of My Computer @

screenshot of my desktop

I'm home sick from work today, in case you're wondering why this post is happening so early. Actually, I only woke up about an hour ago. Friggin' colds. But that's not what I'm here to talk to you about. I'm here to tell you about my computer. See, the thing is, over the years I've developed a somewhat unusual setup for my computer, and I noticed that when other people sit down at my computer, they tend to be totally lost. Where's the start menu? Where are the icons? How do I get to internet? The truth is, I'm a little bit of a minimalist, especially when it comes to computer interfaces. My setup makes perfect sense to me and is very efficient, but without knowing the principles behind it, it's far from intuitive. So I thought I'd explain how to use my computer, not because I want to make it easier for other people to use, but because I thought some people might be interested in seeing how others interface with a computer, and might get some ideas for things to try out themselves. Similarly, if you have any cool tricks you want to share, please add them in the comments!

Additionally, I would be lying if I said I weren't proud of all the work I put into the computer and how it works.

First off, it's probably best to give a brief rundown of what my computer is. This is a desktop PC, built last year, with pretty powerful hardware and two monitors. It runs Arch Linux, which is a rolling-release OS; currently that means I'm running on a 2.6.35 kernel. It's a one-user machine, and I use Openbox as my window manager, so a lot of my tricks will be tailored to that. However, I had a similar setup back when I was on Windows with Litestep, so a lot of it can be applied to different OSes and window managers.

Next, let's take a look at my desktop - or one of them, pictured above. (Click for full-size screenshot.) My two monitors are completely different resolutions, pixel densities, and even sit at different heights. (The 1080p LG one is on top of a drawer with miscellaneous stuff in it.) The height is so that I can rotate the LG monitor around so that I can see it from my bed, where it becomes the only monitor I can see. I also use it to display output from my various game consoles. I use an RCA-to-3.5" cable to pipe sound from the game consoles through my computer's Line In; sound from my whole computer goes to a stereo that's probably older than me, with bookshelf speakers in the corners of my room.

The actual images on my desktop are rotated randomly by a cron job every 30 minutes, using a script I wrote myself that resizes and arranges images from two folders based on aspect ratio. To make sure it doesn't interrupt video playback, it doesn't run if it detects that Mplayer is running. I have 6 virtual desktops, which I use to group windows relating to various tasks: the first holds persistent apps like my IM buddy list, music playlist, and mail client; the next two are general purpose "workspaces"; the fourth is where I usually watch anime; the fifth holds a VirtualBox with Windows XP guest, usually with Photoshop running; and the final is reserved for terminals, though I never use it and should probably come up with a new use. I can middle-click on any empty part of the desktop to see a menu of open windows and which workspaces they're on, and a right-click brings up the Openbox menu, where the only thing I regularly use is my to-do list.

Going back to the picture of my desktop for a moment, there are a few apps highlighted:

  1. Pidgin - I hated how Pidgin looked until I disabled a lot of the stuff (like Show > Buddy Details). Now it's fine.
  2. Audacious - I recently switched from using the Winamp-skinned Audacious to the GTK-based UI because they finally improved it enough to be basically equivalent in functionality and nicer-looking.
  3. Conky - This little window spans all my desktops and gives me a readout of the current date and time, CPU usage, volume level, and what's playing in either Audacious or Mplayer.
  4. Stalonetray - Openbox doesn't come with a system tray by default, so I installed this very simple little app to hold them. In it right now, you'll see Qjoypad (for using my USB gamepad as a remote control), SCIM (Japanese text input), Thunderbird (email), Liferea (RSS), Dropbox (remote file sync), Deluge (BitTorrent), and Pidgin (IM). Like Conky, this is always-on-top and visible on all desktops.

So how do I actually do stuff? Truth is, mostly I just use the keyboard. Luckily, Openbox makes this a snap. Here, let's pick apart my keyboard layout:

diagram of my keyboard

  1. Windows key - this is the swiss-army-knife of my system. I've got an army of keyboard shortcuts mapped, and most of them use this key. See my list of keyboard shortcuts below.
  2. Caps Lock - re-mapped to be a Compose Key so I can type things like ♥, ¥, ß, and ™ without having to memorize obscure alt-key sequences or look them up in a character map.
  3. Numpad - I have keyboard shortcuts here that let me quickly move windows to line up with other windows and screen edges
  4. Multimedia keys - not used. I have other keystrokes mapped to do this anyway.
  5. Win+Menu keys - I have a shortcut mapped so that I can press these together to toggle what monitor a window is on. Super-handy, especially when I can see just one of my two monitors for whatever reason.
  6. Scroll Lock - The host key for my VirtualBox
  7. (Not pictured) - Ctrl+Space - toggle 日本語 (Japanese) input.

Table of Keyboard Shortcuts

Ctrl+Alt+RRestart Openbox
Win+LLog out
Alt+F2Open GMRun
Ctrl+Alt+LeftSwitch to previous virtual desktop
Ctrl+Alt+RightSwitch to next virtual desktop
Ctrl+Alt+Shift+LeftMove current window to previous virtual desktop
Ctrl+Alt+Shift+RightMove current window to next virtual desktop
Ctrl+Alt+LeftSwitch to previous virtual desktop
Win+DShow desktop (toggle)
Win+(Function keys)Jump to virtual desktop
(Win+F1 to desktop 1, Win+F2 to desktop 2, etc.)
Ctrl+Alt+LeftSwitch to previous virtual desktop
Alt+F5Maximize window (toggle)
Alt+F6Resize window to 640x480
Alt+F7Move window (with arrow keys or mouse)
Alt+SpaceShow window menu
Print ScreenSave screenshot to /trace/graphics/screen.jpg
(Try not to do this while entering credit card information on websites!)
Win+(Numpad keys)Move window to match next window or screen edge in 4 directions
Win+MenuSwap to other monitor
Win+AOpen Thunar file manager
(Once upon a time I was using a file manager whose name started with A, so this made sense. Now it's just habit.)
Win+MOpen Pidgin instant messenger
Ctrl+Alt+TOpen Sakura terminal
Win+TOpen Thunderbird email
Win+POpen Gedit notepad
Win+SOpen minimal Twitter client (say)
Win+VOpen VirtualBox
Win+ZOpen GFTP (carryover from when I used Filezilla)
Win+COpen Sound Juicer CD ripper
Win+UOpen Mumble
Win+Shift+VOpen Skype (voice chat)
Win+SpacePause/play music in Audacious
Win+LeftPrevious song in Audacious
Win+RightNext song in Audacious
Win+UpIncrease master volume
Win+DownDecrease master volume

User Comments

User gravitar mDuo13 @2011-02-28 22:37:32

A couple updates since the time this post was written: I now have support for moving the active window to the nearest window or screen edge in 8 directions instead of 4, and I'm currently trying out MPD+Sonata instead of Audacious, so those keys have been remapped. I also have Starcraft 2 mapped to Win+Shift+S. =)

Add your thoughts...

Your email address will be kept private, and only be used to generate a Gravatar; if you enter a website URL, you will get a link to your site but no avatar.