Jim Cheung

Mechanical Keyboard

Noppoo Choc mini

My first mechanical keyboard, 84-key, 65%, cherry blue switches.

profile is dsa I believe, which is quite unusual.

I've been using it everyday for few years, it works very well.

however, for mac os x, needs couple software in order to make it work.

  1. install the descriptor from here
  2. install Karabiner for keyremapping.

also, it's almost impossible to find keycaps for it, especially the 5u spacebar is super hard to find.

IKBC Poker

61-key, 60%, cherry blue switches.

IKBC Poker has a few variant, mine is China made, not TaiWan.

no arrow keys, not a problem for me since I don't need them in either emacs or vim.

another nice thing about it is standard size keycaps, only requires the minimum keycap sets (cheaper).

Progrestouch Retro Tiny

66-key, 65%, cherry blue switches.

"The FC660M with doubleshots"

it's the perfect layout to me, with high quality keycaps.

the only drawback is keycap size, it has two non-standard keys: 1u left win and 2.25u right shift.

which needs extra set of keycaps just for these two keys.

HHKB Pro 2 Type-S

60-key, US ANSI layout

I played this in electronics store every time when visited Japan. finally got one one on black friday sale.

it's almost perfect, I just two minor issues with it

first is the backspace key, put it at the end of top row will be great

second is I wish spacebar could be shorter, easier to reach modifier keys

NuType F1 Wireless

64-key, kailh white switches

this one's selling point is you can just put it on top of macbook pro

even though it's already very thin, but I found it's still too high when put on top of macbook

and the 1u right shift key (besides arrow up key) is very bad design

but it's still better than macbook's keyboard

vortex core

47-key, 40%, cherry speed silver switches.

I'm a blue switch guy but I'm quite enjoy this silver swtich, not clicky but crisp and fast, comes with beautiful keycaps too

a huge pain to use, almost all special characters required key combos

note, there is a new version of firmware that can fully customize keys (the mpc), instruction and the firmware can be found on vortexgear.tw


once with mpc, can use Much Programming Core configurator to redesign the layout

because I also have a OLKB planck, so I want to match the layout to that


outdated, see above for mpc method, it's much better and easier

some tips:

  1. use original keycaps at the beginning, without them will be 10x harder
  2. use one layer, it's already a lot to memorize, can use other two layers to test key programming

these keys are fixed, can not be programmed:

some combos to remember:

to program:

  1. Fn + R-Ctrl: enter programming mode (blue light)
  2. key to be programmed (red light flashing)
  3. key in the content and press Pn (blue light)
  4. Fn + R-Ctrl to exit (light off)

to swap Fn and Pn

  1. hold L-Shift + Fn (green light)
  2. press Pn


about my config:

  1. I will keep R-Alt/Menu/R-Ctrl un-touched, they can be used as arrow keys
  2. map L-Space as Ctrl, for emacs of course
  3. map L-Ctrl as Alt, both Alt are difficult to reach, so I this key
  4. swap Fn and Pn (see above), left spacebar is shorter, easier to press fn after switched
  5. map Del to /, I don't use del but Ctrl + / is undo in emacs, I often use

that's the minimal setup

then I will map the top row to match normal keyboard's special keys, this will sacrifice PgUp, PgDn and Up, but I can switch to default layer to use these keys

(once mapped, fn + shift also works)

|----------+--------+-------------------|
| new key  | output | current key       |
|----------+--------+-------------------|
| row 1    |        |                   |
|----------+--------+-------------------|
| fn + esc | ~      | fn1 + shift + esc |
| fn + q   | !      | fn1 + shift + tab |
| fn + w   | @      | fn1 + shift + a   |
| fn + e   | #      | fn1 + shift + s   |
| fn + r   | $      | fn1 + shift + d   |
| fn + t   |        | (can not change)  |
| fn + y   | ^      | fn1 + shift + g   |
| fn + u   | &      | fn1 + shift + h   |
| fn + i   | *      | fn1 + shift + j   |
| fn + o   | (      | fn1 + shift + k   |
| fn + p   | )      | fn1 + shift + l   |
| fn + del | \      | fn1 + .           |
| fn + bs  | =      | fn1 + enter       |
|----------+--------+-------------------|
| row 2    |        |                   |
|----------+--------+-------------------|
| tab      | win    | win               |
| fn + tab | tab    | tab               |
| fn + j   | -      | fn1 + ;           |
| fn + k   | '      | fn1 + b           |
| fn + l   | [      | fn1 + m           |
| fn + ;   | ]      | fn1 + ,           |
|----------+--------+-------------------|
| row 3    |        |                   |
|----------+--------+-------------------|
| fn + z   | left   | fn + j            |
| fn + x   | right  | fn + l            |
| fn + c   | down   | fn + k            |
| fn + v   | up     | fn + i            |
|----------+--------+-------------------|