ZSA MoonLander and Voyager
For the past 3 years I have been meaning to do some sort of write-up about my switch to using the ZSA MoonLander keyboard… but I clearly didn’t get to that. As of Christmas, I am now a happy owner of a ZSA Voyager keyboard. Anyways, here is a very in-depth write-up of my use of the MoonLander keyboard and recent switch to using the Voyager. I include a bit about the preparation and thought that went into the Voyager purchase, plus details on my layout decisions and reflections after 1 month of use.
Personal History
I have always preferred smaller, lighter keyboards, particularly Apple’s built-in laptop keyboards and their “magic” keyboard line. (I am also a total Apple fan, since before they were cool. I had a PowerBook G4 in high school). I thought the often maligned butterfly keys on the 2015/2016 MacBook were just outstanding; though many folks ended up having issues with them. To me, mechanical keyboards, which can require heavy keypresses and which usually have a loud clack sound, were in no way appealing.
For the last 15 years I have been using a Dvorak layout. I use MacOS to do the key mapping (no extra/fancy software) and I 100% touch type when I’m doing Dvorak. macOS offers “Dvorak with QWERTY ⌘”, but I do not use it. If I need to switch to qwerty, I essentially hunt-and-peck as all my muscle memory is gone. I do, however, still use qwerty on my phone keyboard.
I am also a big Emacs fan. My favorite saying about emacs is “some people have a zen garden, I have an emacs configuration.” I have long history of tweaking my key chords and changing / adding shortcuts. Relatedly, I have always re-mapped caps lock to control.
All this to say, changing my keyboard layout and tweaking parts of my workflow are something that I find fun. In the past few years, my MoonLander (and now my Voyager) are really filling this need for me as I have had less time to play with emacs.
Typing Practice
I’m a big fan of doing typing practice. To learn Dvorak, I essentially took a summer off (a summer when I couldn’t find a job during grad school) and spent my time playing typing games with Dvorak. I was able to go all-in on Dvorak, as I didn’t have any other commitments at the time. Thus, I learned to touch type (using the MacOS keyboard viewer to get me started).
In addition to the great typ.ing platform from ZSA, I use keybr.com and Emac’s speed-type package for regular practice. My favorite typing game used to be sunrise typer. It had 10 levels of typing where you had to get faster and more accurate to successfully complete the level and qualify to get to the next level. I’m pretty sure it was a flash-based game, so at some point it was wiped from the internet and I haven’t been able to find it in a long time. (Please reach out if you know of it!)
MoonLander
In early 2023 I fractured my right wrist and was in a cast. Trying to position my arm to type was painful… which was unacceptable as my day job is 100% keyboard-based.
I forget exactly where I heard about ZSA and the MoonLander, (I think it was from a profile on Uses This) but I was really intrigued by their keyboard layout program and the many macros that you could set up. The MoonLander was on my radar and in my list of pretty things that might one day upgrade my home setup.
After about 24 hours of furious research, I settled on getting a MoonLander with white printed keys and Kailh silver switches. My goal was for relatively quiet keys and a light press. (Note that I ended up adding some silencing o-rings, which helped a bit, but my keyboard was still much noisier than I would have liked.) My research was mostly around which switches I would want, since this was my first mechanical keyboard purchase. I didn’t think much about what my layout would be… though that ended up being where all the fun of owning the MoonLander.
When my MoonLander finally arrived, it was so much fun! I tried a couple of different layouts, including a straight Dvorak one. However, I settled on using a qwerty layout and still relying on MacOS to implement the Dvorak mapping. Thanks to the timeline in Oryx, I can look back and see that it took me about a month to get a good layout, which I regularly tweaked for the next year or so. Then, I made essentially no changes for almost 2 years, until I started prep for my voyager keyboard.
Besides messing with the layout, I also added o-rings to my keys to try and silence them more. It made minimal difference. I later bought a cute keycap set and didn’t bother with the o-rings. (A note about my keycap purchase: unfortunately I didn’t pay much attention to the OEM-profile and some of the keys look a bit wonky.) Also, while the MoonLander comes with a nifty travel pack, I have never taken it any where. In fact, I don’t think it had left my desk until the Voyager showed up.
MoonLander Layout
The MoonLander, obviously, has keys in different places than a traditional keyboard. Overall, it has 72 keys, compared to 81 on my MacBook. Additionally, 8 of the MoonLander keys are on the thumb module… further reducing the number of keys I could map to. Upon first seeing the MoonLander I realized I in a bit of trouble. There was an extra column of keys in the middle, and a dearth of side keys. This was going to require more changes than initially expected.
My guiding principle in creating my layout was to keep things simple and try to keep keys in their general location. I didn’t want to go too crazy with macros and special tapping, mostly to keep the learning curve low for myself. I also didn’t want to be totally at sea if I wasn’t typing on my MoonLander.
Overall, my layout ended up with a bunch of dead keys. Namely, I couldn’t reach the red “launch” keys at all and have never used them. I also rarely used the ‘third’ thumb key on either side. Finally, the extra middle column of keys was almost never used, except in one case noted below.
MoonLander Layout Decisions
See my layout on Oryx
Function Key Row.
Hide behind number row on a layer.
Left-Hand accessory keys: tab, `, and esc.
With MoonLander, these 3 keys are essentially reduced to 2 (due to the missing row of function keys). My solution was to put esc and ` on the same key (esc as tap and ` as hold). I kept tab on the second key, in addition to having it on the thumb module (actually on both, one key on each side).
Left-hand modifiers: ctrl, option, command
I kept these in the same places, in the bottom row, as on the Mac keyboard (with caps lock switched to ctrl), and added a layer switch (though it didn’t really get much use until I started prepping for voyager).
Right-hand accessory keys: [, ], and /
I move these to a single key. Tap for [, hold for ], and double tap for /. Not perfect, and I do sometimes get these wrong, even after years with this layout… but having all this in one spot that is in the relatively correct physical position feels good to me.
Right-hand Return
Moved to thumb module (actually on both, one key on each side).
Right-hand accessory keys: - and =
These I never really found a good spot for. I ended up putting them on the inner column, way far away from where I would have naturally expected them to go. I also really wanted to be using these keys for in-app tab-switching (as in Dvorak those keys are mapped to [ and ] respectively). Thus, these keys ended up with some of the few macros I’ve set up (namely Cmd+Shift+[ and Cmd+Shift+]) and one of my most frequent uses of a layer.
Right-hand arrow keys
Mac keyboards have a very nice arrow key cluster, with admittedly tiny keys. I wanted to keep access to arrow keys, though I have tried to minimize their use (instead relying on Ctrl-n, Ctrl-p, Ctrl-b, Ctrl-f, etc.). I have made some failed attempts to use Vi, but could never quite wrap my head around the hjkl mapping (the left/down/up/right order just doesn’t make sense to me, besides the fact Dvorak throws a wrench into it). Anyways, I decided to use the Vi mapping of left/down/up/right for arrow keys, just to force myself to learn it, and these keys live on the bottom row of the right hand. I do not use my right thumb for any Cmd or Opt combos.
Layers
Overall, other than using a layer for the infrequently used function keys, I didn’t utilize layers much at all in my daily typing. What I instead rely on is built in use of the command and option keys. My left thumb is very much dancing between the thumb module and both the Cmd and Opt keys.
Macros
I have Cmd+Space as hold action for my left-hand space button. This will bring up Alfred (I’ve been an Alfred power user for a decade). I also use it for my Todoist quick-add hotkey (Ctrl+Cmd+Space).
Voyager
Last fall, I made the decision to get a Voyager. I was very excited to have a physically smaller keyboard, one with a more laptop-like feel (and hopefully quieter keys). Moving from MoonLander to Voyager was going to require a more intense condensation of keys, as Voyager has only 52 keys overall. Basically, one whole row is missing when compared with MoonLander!
Before I decided on making a purchase I looked at how others had dealt with the missing row. The default layout suggested by ZSA eliminates the bottom row, namely the command/option/control keys, moving these keys to either the thumbs or in the far outside corners for the pinky to activate… this felt very different from my current setup and was essentially a non-starter for me as I really wanted to keep command and option within reach of my left thumb. But, in keeping the number row at the top, there was no where for these to go (as they would clash with the C/V/B keys on the bottom row of letters).
A revelation came in searching through layouts on oryx. I found a user who had foregone the number row at the top, essentially shifting the home row up one from the default layout. This would leave me room for my row of modifiers along the bottom, but required hiding the number row behind a layer. That, coupled with another layout where each number key added the Shift modifier when doing a hold on the key, solved my biggest concern and I soon after ordered the Voyager.
I bought the Voyager for myself as a Christmas present, so I had a few months to wait before I would actually “receive” it. I started migrating my MoonLander layout to what I would use with my Voyager. This gave me time to practice and tweak my layout, and more slowly transition to the new layout.
Voyager Layout Decisions
See my layout on Oryx.
Number Row
I hid this on a layer behind the QWERTY row. This layer also includes a number keypad layout on the right side. Each number key will type Shift plus that key when held. That is, 1 will type ! when held.
Right-hand Delete Key
This was a tough one and I had a lot of muscle memory of hitting delete in the upper right corner. My only choice seemed to be to move it to one of the thumb keys, and it took some experimentation to figure out which one would work for me. I tried having it on the same key as Enter… but a lot of my typing is in chat-rooms and hitting enter when I wanted to hit delete was very problematic. After noticing that I usually typed the Space key with my right hand, I ended up putting Delete on my left-hand thumb where I had previously had a Space.
Left-hand Tab Key
I decided to move the Esc/` key down a row and remove tab key in that spot. I already had gotten used to having the tab on the thumb module, except for the Cmd+Tab combo (macOS application switcher). With tab on the thumb module, I had no comfortable way to do this key combo. I created a macro such that my thumb-key tab will now do Cmd+Tab when held. This will cycle through open applications on my Mac. It is useful to switch back to the most recently used app. Have I gotten good at stopping when the automatic repeated keypress kicks in, to find the exact app I want? Not really. Instead, I’ll use Alfred.
Right-hand accessory keys: - and =
Again, in Dvoark, these keys are really [ and ]. I’ve moved these to the same layer as my number keypad, in the “h” column. I’ve also put the macros Cmd+Shift+[ and Cmd+Shift+] on separate keys (but same layer), in the pinky-finger column.
Space on the left-side
Sometimes, when my right hand is on the trackpad, I need a way for my left had to hit space. I’ve thus added space to bottom left key.
Opt+Delete
To do delete word, I’ve added an Opt+Delete macro on a layer.
Screenshots
With the number keys hidden behind a layer, there was no good way for me to trigger the macOS screenshot hotkeys, namely Cmd+Shift+3 and Cmd+Shift+4. I’ve remapped those within macOS to be Cmd+Shift+, and Cmd+Shift+.. This gives the same positioning for my fingers (again, I’m using Dvorak layout).
Reflections after 1 month with Voyager
I am so glad that I did the prep. I basically unboxed my Voyager, loaded the configuration that I had been using on my MoonLander and realized there were some extra keys I hadn’t accounted for!
All in all, I still have 3 dead keys. I think it’s the emacs influence, but I am not inclined to have my pinky or any finger have to reach (besides my thumb). As such, the two leftmost keys in the bottom-row (left side) are currently not used (though mapped). I also didn’t quite realize there is now an extra key in the inner column, as that key is missing from the MoonLander. I’ve used a lego to create a switch blocker on the left side, which helps with my thumb positioning.
Unexpected joy: I can still get the long press on the delete! Even though I’ve mapped my hold action to Cmd+Space, doing a double-tap-hold will get me a delete and then a repeated delete action. I miss doing Opt+Delete (delete word), so I mapped that to layer.
In essence, I have a 2 layer setup. I make heavy use of modifier keys (control, command, option), in the way that the operating system expects (aka, Gnu Readline), so I feel like my keyboard-fu is on point. I do have some additional layers for the rarely accessed function keys, plus the ZSA keyboard controls, but my daily drivers in 2 layers. Getting to this point feels like a slow evolution, rather than radically re-learning how to type (which I had already done for Dvorak).
Going back to the MoonLander feels so… clacky, but my layout from one keyboard to the other is essentially identical. I do really really enjoy having a split keyboard, and I don’t think I will ever want to go back.
Conclusion
This is meant to be the kind of keyboard post that I would love to read. I am not very “tuned in” to the mechanical keyboard culture, only reading the monthly ZSA newsletter. I would have really liked to read something like this before. Where someone explains the decisions they had to make for their layout and the why they made a certain choice. The Oryx configuration platform is outstanding. ZSA, I feel, has really created an entry point (and shared community) for people to talk about keyboards, especially for dabblers like myself. Their series of People interviews is quite interesting, and something I was invited to contribute to, years ago, but clearly my todo list got the best of me and I never got around to writing anything.
All that to say, I’m glad I finally got around writing something. Thank you for reading!
Comments
Comments are sent directly to me and may or may not be posted for display on this page.