I’m not sure when, exactly, it became clear that I was going to spend as much time as necessary perfecting my keyboard configuration. It’s one of those things that you know you can make absolutely perfect—given enough time and energy. On Linux, when you spend enough time bashing your brain into a topic, you often find your effort rewarded manyfold. This is the hallmark of a professional tool: a tool with which your efficiency increases with your proficiency.

The way many people first experience a computer is through a point-and-click-style mouse interface. While there are professional tools that prefer a mouse interface, and there is healthy debate about the most appropriate tool for computer interaction, the fact remains: most professional computing and programming is done with a QWERTY keyboard.

My endless X keyboard tinkerings have given me the most efficient keyboard configuration I have ever used. This configuration is probably achievable on other platforms; however, on a modern Linux system my configuration only requires one tool that isn’t included with the kernel: XCape, which is 500 lines of GPL-licensed C-code—not too shabby overall.

Keymaps ¶ To start working with keyboard layout the lowest-risk command is setxkbmap(1) . setxkbmap temporarily maps the keyboard to use options specified on the command line. Changes will not persist when you restart X (i.e., log out and log back in). This is a good place to start experimenting with configuration and layouts. The options that can be applied with setxkbmap are found in xkeyboard-config(7) . For whatever reason, neither my Debian nor Arch box has this man file. I found one copy online and made sure to snapshot it in the internet archive—which is a project to which I plan to donate more heavily in the upcoming year. To view currently applied options use: setxkbmap -query which should output something like: rules: evdev model: pc105 layout: us To achieve this with setxkbmap you would type in your xterm: setxkbmap -model pc105 -layout us This is a pretty vanilla setup—when you setup your computer and accept the defaults, this is what you get.