7/17/2014 Update: Finally I uploaded all related files (.ai files, KeyRemap4Macbook configuration file, and pictures) to GitHub and now my server’s downtime won’t affect their availability anymore.
Please “star” the repository if you like.
Since I started playing with mechanical keyboards a few months ago, I was totally amazed by how satisfying they feels. I couldn’t even believe I have been stucked with membrane keyboards (regular keyboards) for so long! However, I am a mac user. Since the day I fell in love with mechanical keyboards, I started the search for a mac compatible one. Sure, most of the keyboards do work on mac, but I think what I am looking for is a keyboard not only “working”, but also having mac’s look and feel. Which is hard.
The closest match is the Matias Tactile Pro 3. It’s a beautiful keyboard that looks just like the original Apple Extended Keyboard. And it’s completely mac compatible (of course). However, the key switches it uses are ALPS, which is stronger than cherry blue switch — the switch I preferred. So I finally give it up. I kept trying keyboards with different brands, and eventually settled with a DAS keyboard Model S. I know it’s not a mac keyboard, but I like its simple looking, the overall quality (see my P.S. at the end of the post for another story), and the relatively low price (still more expensive than membrane keyboards, though). And it works fine with my mac. But sometime, I still hope that one day, I can find a keyboard I love, with the authentic mac keyboards’ look and feel.
Until I found this post on geekhack.org — an online community for geeks with love for keyboards: http://geekhack.org/showthread.php?23203-Finishing-Touches-for-a-Layout.
The original author, iindigo, is a genius. He designed a wonderful mac keyboard layout to match exactly the look of the original mac keyboard. All the font, position of each character, are carefully designed so that they look just like the Apple mac keyboard. Then, based on this layout, a set of custom key caps can be ordered to replace the original ones — a big benefit of using mechanical keyboards is that all the key caps are replaceable — to make the keyboard a lot more mac-looking.
And the best part is, iindigo is general enough to share his work with everybody, for free!
So I asked him to send me the layout file. And then I added a few extras based on the layout of the current Apple keyboard. The additional changes are:
- Multimedia symbols on F1-F15.
- Change the original “menu” key to a apple logo key — which will be the “Fn” key. I also make it the only black key to give the whole keyboard a little kick.
- Right-align the right “control” key.
- And just for fun, I added a “pig king” from Angry Bird to the space bar!
I submitted an order for the custom key caps on www.wasdkeyboards.com, a website that specializes in custom keyboards, and keyboard parts. After just a day, I was told the key caps were ready to pick up (yes, I am luck enough to be close to them). WASD keyboards was also kind enough to offer me to change all the keys in their office, so that I can use their wire key cap puller — just to make things easier.
When I walked into WASD Keyboards’ office, my key caps are already there, nicely laid out on a table, just like on a keyboard:
At the first look, I was a little worried that the letters seemed a bit too thin, and not dark enough on the keys. But overall, the laser etched letters/symbols are very crisp, and look nice on the white key caps. WASD’s staffs were very nice, too. Not only they let me do the key switching in their office, they also showed me how to lubricate the stabilizers of the bigger keys (this is my first time changing all the keys of a mechanical keyboard). The whole thing turned out a little longer than I thought. But once it was finished, I was really amazed by the overall look of this “new” keyboard. The font is perfect, not thin at all; the white key caps on the black base provide a great contrast. It just looks beautiful!
Once I got back to home, I created a custom configuration file for KeyRemap4Macbook, to remap all the “Fx” keys to their corresponding multimedia keys. Now, after all these effort, I finally have a good-looking, mac compatible mechanical keyboard! I know it is still not a mac keyboard, but the feeling of creating something new, is just more satisfying than anything!
OK, enough talk. Now let’s look at the pictures. I also attached the design layout and my KeyRemap4Macbook configuration file at the end.
- Usually DAS keyboards’ quality is pretty good. But the one I received has a stucked key. And the return/exchange experience is just suboptimal. I should have bought it from Amazon or Newegg instead of from DAS’ website directly. Eventually I chose to live with it instead of go through more hassles to exchange it. After all it’s the not-often-used F12 key.
- For anybody who is interested in, and new to mechanical keyboards, here is the must-read guide: Mechanical Keyboard Guide.
2/11/2012 Update: Since this blog was published, I got so many requests for the my design layout file that I decided to put it here for everybody to download under Creative Commons license. You are free to modify it. But if you want to redistribute it, please mention my site or this post. NO RESALE OR COMMERCIAL USE!
Custom Mac Keyboard Layout For Mechanical Keyboards by iindigo, yuchen is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
Based on a work at www.clingmarks.com.
Finally, here is my configuration file for KeyRemap4Macbook:
<?xml version="1.0"?> <root> <list> <item> <name>Remap Num to Clear</name> <identifier>private.remap_num_to_clear</identifier> <autogen>--KeyToKey-- KeyCode::PC_KEYPAD_NUMLOCK, KeyCode::KEYPAD_CLEAR</autogen> </item> <item> <name>Remap Application to Fn</name> <identifier>private.remap_application_to_fn</identifier> <autogen>--KeyToKey-- KeyCode::PC_APPLICATION, KeyCode::FN</autogen> </item> <item> <name>Remap Volume Keys</name> <appendix>Up, Down, Mute</appendix> <identifier>remap.volumeKeys</identifier> <autogen>--KeyToConsumer-- KeyCode::PC_PRINTSCREEN, ModifierFlag::FN, ConsumerKeyCode::VOLUME_MUTE</autogen> <autogen>--KeyToConsumer-- KeyCode::PC_SCROLLLOCK, ModifierFlag::FN, ConsumerKeyCode::VOLUME_DOWN</autogen> <autogen>--KeyToConsumer-- KeyCode::PC_PAUSE, ModifierFlag::FN, ConsumerKeyCode::VOLUME_UP</autogen> </item> <item> <name>Remap Brightness Keys</name> <appendix>Darker, Brighter</appendix> <identifier>remap.brightnesskeys</identifier> <autogen>--KeyToConsumer-- KeyCode::F1, ModifierFlag::FN, ConsumerKeyCode::BRIGHTNESS_DOWN</autogen> <autogen>--KeyToConsumer-- KeyCode::F2, ModifierFlag::FN, ConsumerKeyCode::BRIGHTNESS_UP</autogen> </item> <item> <name>Remap Music Play Keys</name> <appendix>Previous, Play/Pause, Next</appendix> <identifier>remap.musickeys</identifier> <autogen>--KeyToConsumer-- KeyCode::F9, ModifierFlag::FN, ConsumerKeyCode::MUSIC_PREV</autogen> <autogen>--KeyToConsumer-- KeyCode::F10, ModifierFlag::FN, ConsumerKeyCode::MUSIC_PLAY</autogen> <autogen>--KeyToConsumer-- KeyCode::F11, ModifierFlag::FN, ConsumerKeyCode::MUSIC_NEXT</autogen> </item> <item> <name>Remap Eject Key</name> <appendix>Eject</appendix> <identifier>remap.ejectkey</identifier> <autogen>--KeyToConsumer-- KeyCode::F12, ModifierFlag::FN, ConsumerKeyCode::EJECT</autogen> </item> </list> </root>