Happy Hacking Keyboard Professional 2

Having used the Happy Hacking Keyboard Lite 2 for several years, I came across geekhack one day. It’s a wonderful forum where keyboard aficionados talk about their recent purchases, post audio clips of keyboards and discuss the finer points of key switches.

I saw the light and realized that I needed a Real Keyboard.

I find the Happy Hacking layout superior to anything else I’ve come across – it’s just right – so the choice was easy: Happy Hacking Keyboard Professional 2. The Lite 2 is your typical rubber dome keyboard, albeit with a great layout; the Pro 2 has almost the same layout, but also real mechanical switches instead of membrane. It makes all the difference.

It retails for about 250 USD or so. I’d pay twice that much if I had to. Still a cheap investment for a lot of people who live by the keyboard. Quite possibly one of my most rational purchases in recent years. Like a Model M, it keeps on ticking year after year (2015 edit: 7+ years and going strong!).

Most keyboards have 100+ keys; The HHKB Pro 2 has 60 (still full-sized). No F1–F12, arrows, print screen, pg up, etc; those are accessible with Fn+. Since one Fn key is right below Enter/Return, I can actually do many of these operations quicker than on a normal keyboard. No numpad. No caps lock! Ctrl is in its right place. It makes for a very small, elegant keyboard; below is a comparison with a Unicomp SpaceSaver, a buckling-spring keyboard that I use when I need to wake people up with a wall of sound.

Unicomp SpaceSaver and Happy Hacking Keyboard Professional 2

I bought the blank version; it looks better. And it’s a good conversation piece.

So, the layout is great, but here’s why it costs much more than the Lite 2: the key switches. They are light, quiet, but still have excellent tactile response.

What else? There are six DIP switches on the back; with these you can change mode (“HHK”, “Lite Ext.”, “Macintosh”) and the behaviour of some keys. See this image of the manual for what they mean. The USB cable is detachable; great if you want to move the board around. There also two USB ports on the back.

HHKB Pro 2 box, touting features such as 'good feeling of oneness with cup rubber'

If you don’t like the layout of the HHKB Pro 2, an interesting and equally expensive alternative is the Topre’s line of Realforce keyboards.

If you want something less expensive, check out Filco’s Majestouch keyboards.

If you long for the buckling springs of yore, consider getting a fresh keyboard from Unicomp.

For the latest on what keyboards to buy and where to get them, check out the aforementioned forum geekhack.

Swedish characters (svenska tecken!)

I’m a Swede and I need my å ä ö. I use the most common Swedish layout, but the small number of keys on the HHKB Pro 2 necessitates some modifications to have important things like <, > | easily available.

Linux and other systems with X

I used xkeycaps to dump the current keyboard map and xev to get the keycodes. I then put the following in my xmodmap file:

keycode 100 = ISO_Level3_Shift
keycode 102 = Alt_L
keycode 0x34 =  z               Z               z               Z               less
keycode 0x35 =  x               X               x               X               greater
keycode 0x3B =  comma           semicolon       comma           semicolon       bar
keycode 0x3C =  period          colon           period          colon           bar

What it does:

  • Meta/Alt-z: <
  • Meta/Alt-x: >
  • Meta/Alt-, and .: |

On the back of the keyboard I have SW3 and SW5 set to ON. (Remember: If you change the DIP switches, you might have to unplugin the USB cable and plug it back in again.)

Mac OS X

On Mac I had to make more modifications since characters like \ { } are not in sensible places (at least not on the default Swedish layout).

I found the very useful but not particularly intuitive keyboard layout editor Ukelele, and then came across this excellent blog post by Claus Dahl. I quote the most important part:

Here’s the slightly insane part: The layout is organized by modifiers. The entire layout, that is, e.g. “here’s how the keyboard looks when option key is down”. You can’t use a modifier combination that isn’t already in the layout. (You can add new ones through an interface so lacking in intuitiveness that I didn’t figure it out). I had little luck mapping cmd-single key to a new character as an example. Mapping stuff to alt-something however works fine, as there is already an alt- keyboard.

You can download my keymap. Save it as <something>.keylayout in ~/Library/Keyboard Layouts and then enable it in System Preferences|International|Input Menu. You might have to log out and in again. It modifies “Swedish - Pro” to do the following:

  • Alt-1: §
  • Alt-7: {
  • Alt-8: [
  • Alt-9: ]
  • Alt-0: }
  • Alt-+:
  • Alt-,: |
  • Alt-z: <
  • Alt-x: >

Note that on the back of the keyboard I have SW2 and SW3 set to ON, and the rest are OFF. (Again, if you change the DIP switches, you might have to disconnect and reconnect the keyboard for the changes to take effect.)

If you need to change what key is Command, Option, etc., try DoubleCommand.


AutoHotkey is an excellent tool for remapping and binding keys. It can do some advanced stuff, but I only use the following, which should be self-explanatory (e.g., Right Alt + , will produce a |):

RALT & 1::Send {§}
RALT & .::Send {|}
RALT & ,::Send {|}
RALT & z::Send {<}
RALT & x::Send {>}

Install AutoHotkey, paste the above in a new file, name it blah.ahk and run it. Put it in your startup folder to have it executed automatically. AutoHotkey includes a compiler that you can use to make standalone executables; very convenient if you use the keyboard on computers on which you don’t want to – or can’t – install AutoHotkey.