Depending on where you fall in the spectrum of open source support this article’s title has you either fuming, just curious, or already in agreement with me before even seeing the reasoning below. This article is the product of my many attempts to voice my concerns with those in the open source and FOSS movements. What I’ve found is that if you wish to have a real discussion about the fairness or merit of those ideologies you will most likely deal with zealots who condemn you for even thinking contrary to it. Zealots, who by the way, are not software engineers. Furthermore, I think this snap response by many in this community is detrimental to FOSS’ momentum.
To be clear: I am a fan of FOSS and open source software. What I’m not a fan of is the disparaging attitude for any software that does not fit into its narrow description. Open source software is great at helping others to learn programming, or allowing individuals to modify existing code bases in order to fit specific needs. It is also hard to argue against the privacy and security aspects of it, but an argument does exist (which I discuss below). To summarize: FOSS is a good thing, and if we lived in a world in which EVERYONE shared their talents and the products of their labor for free, I would be one of the loudest proponents for it. Since that is not the world we live in I have two specific problems with FOSS / open source ideologies:
1 — Software is a complicated product that deserves the engineering title ascribed to many of the people who work on its development. Software is built on the giants of the past, and there are many pieces of software today which continue this legacy. Creating good software is VERY complicated. It is akin to rocket science in terms of complexity. Regardless of your competences as a programmer, time is your most important asset. Time costs money.
What FOSS implies is not that you are not paid for your software, but rather that your software’s internal guts and all that makes it work, can be freely viewed by all. To understand why this is significant we need an example of this same expectation in another field.
So let’s use a lawnmower. For a lawnmower to follow the FOSS ideology, it would need to have the blueprints, parts list, raw materials list, method of assembly, and detailed build instructions. The raw materials will need to be freely available to you. You will need to own the machinery necessary to build parts, but fortunately almost everyone has this machinery and they are becoming more affordable every day. Now only IF you can freely build your lawnmower from scratch is it considered FOSS. You could be a mensch and go buy one though. I think we can all see the absurd nature of this thinking. Some might criticize this example by saying it isn’t directly analogous to software, but that would be my point precisely! In the situation where you can build your own lawnmower and everything is given to you to make that easy, how does the engineer who created the thing get compensated? How is that person’s labor protected? How many people do you think are actually going to buy a lawnmower? Think about any other profession and whether or not they would do something similar to this? Would a plumber come to your house, and show you exactly how they are doing what they are doing, and then point you to tutorials that explain why they are doing what they are doing? Do they do this for free?
Of course not!
Does this mean that no one does this? Certainly not! It is, however, a personal decision up to the individual and is done out of the goodness of their own heart. It isn’t the product of an ideology that insists they do it less they be immoral or unethical. Now think about this: Software is complicated and it takes a lot of time to be developed. Why should something that a programmer who spent years, months, days, or even hours working on be yours for nothing?
FOSS does not mean free of charge, but it does mean that once someone has bought the software they are free to modify it, redistribute it, and share it. There are exceptions to this spelled out in various licenses, but ultimately, if the source code is available, nothing prevents people from exploiting it. However by sharing efforts we can increase the speed of development in many cases, and this is a great and noble pursuit. However, this sharing must be made voluntary, as it is in every other profession.
2 — The claims that FOSS software is more secure and private. If you are a competent software engineer with a good amount of time on your hands, you absolutely can make good on these claims. You may have to learn about a few APIs, systems, etc. but you’ll be able to prove it for yourself. This doesn’t mean every programmer. This means those proficient in the programming langauge(s) the software was was written in. Being a programmer doesn’t mean you understand everything at first glance. Time, once again, is your greatest asset. Encryption, in particular, is a complex subject that people specialize in. Being a programmer doesn’t mean you will be able understand and validate claims made by experts in these fields. Being capable is the first part, but to verify all of the software you use represents a massive investment of time. Time in this case is just as important as the ability to comprehend and analyze the code.
Furthermore, for 99% of the world’s population they have no way to validate those claims. They have to have faith that the people who are the programmers know what they are doing, haven’t overlooked anything, and that they have good and positive intentions. You may have more people to have faith in than a proprietary based piece of software, but you have to trust them just the same. So with proprietary software you have to trust the company who made it. With open source you have to trust the independent individuals claiming it is secure, private, and good (who can also be part of a company).
The average user does not really benefit here. It is arbitrarily the same to trust a company, who is legally held liable, or a group of individuals, which they have never met, known nothing about, and who are not legally bound to the software. (However, many open source software companies are legally bound. These companies tend to make money on enterprise services and support.)
I don’t claim to fully understand every facet of FOSS or open source initiatives, but as a software engineer myself these have been my two biggest complaints. I can see the virtues of FOSS, but I just don’t agree with how it’s implemented. My intention in writing this is to drive a discussion that either dispels these concerns, or creates a way to work beyond them.
The Moonlander is ZSA’s third offering. It is a unique ortho-linear columnar layout boasting ergonomic advantages that should translate to increased comfort for users and better resistance to health issues related to long typing sessions. Does it measure up? Read on to hear my thoughts on the matter.
Initial thoughts upon delivery
Note: This review references, on occasion, the UHK v1 I’ve been using prior to the Moonlander’s arrival. It may also reference the HHKB Pro I used previous to the UHK. This is just to provide some reference material and to better explain why I feel the way I do. They are not intended to be reviews of those keyboards. The UHK and HHKB may one day get their own reviews.
The packaging is very well done and deceptively compact. The keyboard is shipped in very much the same way you would pack it yourself if you wished to take it out with you somewhere. The Moonlander comes with a keycap and switch puller tool, as well as an Allen key for tightening the tenting gear. A TRS cable for connecting the two halves is also included, and is quite long, allowing you to place the keyboard halves as far as you might want or need. The neoprene carry case and a USB C cable with USB A adapter rounds out the last of the items included. The Moonlander is made of plastic but is securely fastened with a bevy of screws and bolts. The tenting legs are of a metal construction as are the fasteners and hinges for the legs and thumb clusters.
Before plugging mine in for the first time I tested out the new switches. This was the first time I tried Cherry MX Browns. I’ve used blue, red, and Topre before that. I was pleasantly surprised. The browns have that premium and hushed feel to them, but still have that important (to me) tactile feedback. I could gush about this more here, but I’ll just reiterate, I really liked the way they felt in the Moonlander’s housing. They were significantly quieter than the Kailh blues I was using in the UHK.
Plugging in the Moonlander flashes the LEDs at the top of each half in a short sweeping pattern before going out indicating that the keyboard is then ready to work. It comes with an included stock layout, which gives you an anchor point for for setting it up to your own needs. The biggest hurdles on my first attempts at typing on it were the placement of the spacebar, backspace, enter, tab, control and alt. In addition to these I had a difficult time correctly hitting the c, v, or b keys. These things nearly made me give up on the Moonlander before even giving it a serious try. It was difficult for me, someone who felt they were pretty much a master of the keyboard, to be so hobbled.
Perhaps a little more on my typing to help explain this initial feeling. I am not a traditional touch typist. I was a finger pecker that became a multi finger pecker, and finally a full hand finger pecker. I can touch type just out sheer frequency of use and muscle memory. I type around 100-120 wpm on average. I do think the way my hand kind of bounces around the keyboard has helped me to avoid some of the more strain related injuries people in my profession tend to be prone to. More on that later.
Initially I was miss-hitting keys, and touch typing was just not really possible. I dropped to 26 wpm and I felt it. Typing a word, let alone a sentence was just an exercise in frustration. I thought that maybe because of my unorthodox method of typing I just wasn’t going to easily be able to transition to this board, despite thinking before purchase that it shouldn’t be too difficult. Nevertheless, I made a few layout changes, and pressed on. (To be completely honest, I did put the Moonlander away and started using the UHK again at this point. After a few hours, guilt got the better of me and I decided the Moonlander deserved more of a chance than that.)
The Moonlander is configurable through a web client called Oryx. You make changes to your layout through a web browser. When complete, you compile the layout and download it. Then using a program called Wally, you are able to flash your Moonlander.
Initially I had a lot of problems getting the website to work with Live Training. This is a training site that allows you to work on improving with the ZSA keyboards in a structured manner. It is very good and deserves praise. It absolutely can help you gain proficiency with the Moonlander. Your current layout is displayed underneath the typing section. In this way while typing you can see what keys you are pushing relative to the keys you initially intended to hit. Due to the trouble of getting it to work on Windows (W10 Pro 20H2), I largely ignored it. Wally 3.* is specifically written from the ground up to work with Windows. I appreciate this effort, but sadly was not able to use it initially. I was able to get Wally to work when using a 2.* version, and have stuck with that. I don’t blame ZSA for these troubles as I have a pretty unique system. I have Windows locked down with WPD1 and Tinywall2. This tends to complicate a lot of things, but I don’t have a problem with it, because Windows is great when you don’t have to worry about privacy and telemetry issues.
I say all of this now but understand this is a conclusion I’ve reached after tinkering around and working with it. When I first had the problems I was disappointed and started thinking about how much superior the UHK’s Agent software was. Even though it is all working for me now, to include Live Training, and heatmaps, I still prefer the UHK’s Agent software as a means of customizing and flashing the keyboard. Agent does not require an internet connection or web browser. The process of flashing is one solid action that doesn’t need an additional piece of software, or compiling, as half of it isn’t based in a browser. From a privacy perspective, Agent is superior, but from a functional standpoint, I still find it superior. I think this just comes down to the way key functionality possibilities are exposed to the user. This particular opinion is a phonetic argument, if you will, as most subjective opinions tend to be. ZSA has put a lot of work into their software and it shows. My initial hurdles were not their fault, and their software after some familiarization can do all the same sorts of things as the UHK’s Agent.
Customizing the Moonlander
One of the best things about the Moonlander is your ability to make it your own. You are able to move key mappings as you wish. There are multiple schemes for how keys can be setup. From simple letter keys, to multi keys being accessible if you tap or long press. You can add macros that do a host of things all using one key. The possibilities are nearly unlimited. When you couple that with the fact that the Moonlander can have up to 38 layers, you will effectively never run out of keys to assign specifics functions or commands.
Some examples of how I’ve set up mine are:
My x, c, and v keys are setup to type those letters on a single tap, but if I push and hold, they perform a cut (ctrl + x), copy (ctrl+c), or a paste (ctrl+v) command.
On my second layer, I have a shift+delete key, system monitor (ctrl+shift+esc) key, and a dedicated number pad, among other things.
On my 3rd layer is the reset key, used for flashing new layouts, system suspend key, as well as mouse controls.
This is just a few of the things I’ve done. I immediately also moved the position of the spacebar, backspace, and enter key.
One quick comment on the mouse control: Being able to use your keyboard to quickly move the mouse cursor without lifting your hands from the home row is a feature that I first experienced with the UHK. I never really used it to begin with, but then one day I decided to give it a shot. This features usefulness surprised me.
One difference between the UHK and the Moonlander as it pertains to mouse control is that the Moonlander only exposes acceleration levels but does not provide a way to define those curves. Agent for the UHK on the other hand has an accelerator button and a slow down button, both of these states are customizable. You can change how fast the accelerator button makes the mouse cursor move or inversely how slow it goes when pushing the slow down button. One of the places where I’ve found the UHK to be very helpful because of this, is when needing to make very fine and precise mouse movements. (resizing and positioning windows, etc.) The mouse speed on the UHK is linear as well. It moves at a constant, which makes tracking the cursor across my 7 displays much easier. However, the Moonlander tends to accelerate the mouse cursor more with each direction change making it move at ridiculously fast speeds fairly quickly. I’ve found that changing between 0, 1, and 2 acceleration does not seem to have much effect on the speed of the cursor. For this reason it is not usable for fine mouse control. You have to stutter mouse movement to prevent the acceleration from moving the cursor too fast. I infinitely prefer linear mouse movement and acceleration. Hopefully these features are something that could be implemented down the road. The Moonlander is certainly capable of that and more.
This hasn’t been a deal breaker for me. Mouse control is present and it is useable in a pinch.
One thing the UHK v1 does not have that the Moonlander does is RGB lighting. When I first got the UHK v1, I had been using a HHKB Pro. It was lettered but with dark keys and even darker lettering. Using it in the dark was an exercise in frustration. I eventually learned it well enough to mitigate the issue. The white lettering of the UHK keys was a huge improvement in low light conditions. However, the Moonlander, is fully customizable with all kinds of lighting patterns and designs. I’m not particularly interested in any of the various light shows, etc that are available as they just don’t appeal to me. To me it is kind of like lighting you computer case and having a window. Just always felt gimmicky. Some love it though. (The keyboard can also make sounds, similar to chip tunes, for those interested. It is novel, but I struggle to find a serious use case for it.) The lighting allows you to highlight specific keys in specific colors to help you remember which keys are active on a layer, or specific grouping that help you remember functionality and location. It works REALLY well and is a very welcome feature. The UHK v2, as an aside, addresses this issue by including RGB lighting and control. I do not think the extensive control of the lighting will be the same on the UHK.
As I said, I have kind of always been of the opinion that RGB lighting was gimmicky and really just for cheap light shows and other frivolous things I never intended to use a keyboard for. However, I must add that for productivity and for doing work, it is a true asset that I would not want to be without. The Moonlander gets it, and takes full advantage of it. Sure it has bells and whistles I don’t need or fancy, but those features aren’t forced on you in any way. Who knows, I might one day want to use them. Back to how the Moonlander gets lighting: with layer 2 (1), in fact, you have dedicated lighting controls for those times when you want manual control. You can of course automate all of your lighting via the layout. Sky is the limit here, and coincidentally I am using a sky-ish blue lighting for my base layer. Love it. Might switch to a green though, especially when using it at night. I don’t want the blue tricking my brain regarding sleep. 👍
Hopefully by this point the sheer ability to customize your Moonlander is evident. It is very impressive, and one of the Moonlander’s strongest features. You can make the keyboard your own. ZSA seems to have done everything they can to make this the case.
Ergonomics and Layout
The HHKB and UHK use a traditional QWERTY staggered layout. The UHK takes this a step further and allows you to use the keyboard split. You can rotate, tent, and tilt the keyboard to make it more comfortable. I used the UHK for about 10 months without ever separating the halves. Around when I started being more concerned about the ergonomics of my computer use, I decided to try the keyboard split. I went back to the HHKB briefly and while the typing experience is still very good, it is uncomfortable now, having to angle my hands up to use it. Despite issues with the b key, I adapted like a duck in water. Actually, my only hang up was the b key. On a normal staggered keyboard the b key is closer to the right index finger. I’ve always hit the key with my right index finger as a result. So with a split UHK, I needed to learn to use my left index for it. I did, and my speed rose to what I was used to again. It took about an hour.
I also had to admit that angling the two halves slightly outward allowed my wrists to be completely straight while using it. This was a huge comfort improvement. It felt better typing like this. I started kicking myself for not using the UHK like that much earlier.
The difference then between the layout of the UHK and the Moonlander is that the Moonlander while also by default QWERTY, is not staggered. It is in fact laid out in an ortho-linear columnar manner meaning it is in a grid that is slightly arched to accommodate the natural differences in the finger lengths of the human hand. This means that instead of having the keys above the home row slightly to the left and keys below slightly to the right, they are straight up and down. The Moonlander then, is not only a split keyboard design, but offers what many say is an improvement to the ergonomics of using a keyboard. This is yet another of the capital features that the Moonlander has over other keyboard offerings.
`The tenting options with the Moonlander far exceed what the UHK is capable of. I am using the legs really only to stabilize the keyboard, as I have it resting on the base of my monitor stand. I do not tent the UHK or the Moonlander so this is not really a concern to me at this time. I am, however, happy to have the options.
As I mentioned, I struggled typing with it at first. But after only 2 days of use was back up around 50-60 wpm, and was able to touch type again. After only 5 days, I was back to 100 wpm. I was both surprised and very happy that this worked out like that. I did not think I would be able to learn it so quickly. Now at 7 days of use, I’m nearly 100%. I type just as fast on both the UHK and the Moonlander.
Both the UHK and Moonlander allow you to swap keycaps, but also in the firmware and in the layout. (IE: You don’t have to move the keycap to change what the key does.) Where the Moonlander has an advantage here is that it uses standard 1U keys essentially everywhere except the thumb clusters. Theses keys all have the same profile. This means switching to Dvorak, Workman, etc. is trivial and fully expected. But also means moving special keys anywhere is possible as the keys are so uniform. On the UHK if you want to swap some of the modifier keys, you would be constrained to spots where the key will fit. Not really too big of a deal given the layout, but a limitation for sure. One other small caveat the UHK v2 has addressed is that the UHK v1 uses ABS keycaps that fade over time. The Moonlander does not. They will not fade.
I have customized my Moonlander, and continue to do so, as I find keys that would work better elsewhere. But how does it feel? Is it better than a staggered layout?
With my initial struggle typing on the Moonlander I began to think about whether or not such a layout and the learning curve were really worth it. Most typing contests are done using standard 101 key QWERTY layout keyboards. Speed is not a reason to use ergo keyboards. The ergonomic advantage of an ergo ortho-linear split keyboard as compared to a QWERTY staggered split keyboard is not as great as you’d imagine. Keeping your wrist straight and holding your palms up occasionally are the primary comfort points to me. From a health stand point, it seems like a UHK split would be a good solution that doesn’t require you to really relearn anything. It meets you right where your years of muscle memory have taken you.
When you couple their approach with those people who use their keyboards for work, the question then becomes is the loss in productivity from learning a new layout really worth it? How long will it take to regain native speed on the new layout? Based on those results are the efforts overall really worth it?
I think the approaches between these two keyboards are very different. The UHK acknowledges that most people have spent their lives using the staggered keyboard. Asking everyone to just learn a new layout isn’t really necessary for their goals of making a productivity powerhouse keyboard. If you remember that the UHK is designed to be compatible with module additions like extra key clusters and mouse solutions that connect to the inside of the split halves their drive to improve productivity is really evident. From this standpoint it is really hard for another keyboard to beat it.
It is only when you factor in comfort and every possible ergo advantage that the Moonlander has that it then is superior. You can see the same productivity with it, but you’ll need time to work with it, and finesse it to your needs. This is by design. Keyboards are crucial tools for working on computers. We all will have unique preferences and there is no right or wrong answer here. The Moonlander embraces this in ways the UHK cannot. Whether it is worth it, will depend on the time necessary for you to adapt, and you own willingness to do that. I have found that for me, it is absolutely worth it.
Back to the question then: Is this ortho-linear layout better? How does it feel?
Once you are back to not having to think about the keyboard and can just use it, the layout is incredibly comfortable. Combined with the switches I went with, the whole things just feels like a very premium typing experience. It is such that I find I actually WANT to type more on it. I think that says a lot.
Is it better? I don’t think so, but that is because performance is a crucial metric to me. Writing software benefits when you are able to work faster. If I can more easily get my thoughts down, then I can be more productive.
My opinion on this is likely to change as I continue using the Moonlander.3
One thing I can definitively say about the Moonlander is that it is a keyboard which takes itself very seriously. The Moonlander is not some cheap staggered rubber domed keyboard that is disposable. It is meant to be YOUR keyboard, and absolutely will be if you want it to.
When I think about my priorities and how I look at things, I’m struck that perhaps I’m so focused on the end result, that I forget about the journey. Typing as fast as possible is great fun but it isn’t everything, especially when you remember that there is more to it all than just the end product. With that in mind finding a keyboard that you enjoy working with is something you owe yourself.
The Moonlander is as close to perfect, at least as far as the ergo keyboard world is concerned. If you managed to get this far, then my recommendation to you, is to look into it. I’m very happy I did, and I recommend it without reservation.
A parting note
One of the things that makes the Moonlander and other ZSA keyboards a little more expensive is their focus on customer support and shipping costs. Shipping costs are self-explanatory so we’ll not waste time there.
However customer support is the unsung hero here. ZSA is utterly committed to email support. They’ve blogged about it a few times, and my experience emphasizes that this is the case. They really do their best to answer all of your questions and help you get the most out of your investment. Through this you can see the commitment they have to their own products. The Moonlander is an investment and it is one they endeavor to make valuable to you not just initially but for the life of your keyboard, which is likely to last as long as you do.
It is a welcome change in the industry and a real reason to support ZSA.
ZSA is also constantly developing and improving the firmware of the Moonlander and their other keyboards. One recent addition was the tap-a-dance functionality. It allows you to assign 1 key up to 4 different individual functions through a combination of tap and hold actions. This is incredibly powerful. I use it to streamline cut, copy, and paste actions, for example. This is just a basic application of the new feature, but gives you an idea of its usefulness.
This brings us to the last sort of caveat for this review. Depending on when you read this, there could be a slew of additional features added that I haven’t talked about here. I would encourage you to look for that, as it yet another testament into ZSA’s commitment to their products.
Thanks for reading and let me know if you have any questions.
1 – WPD stands for Windows Privacy Database. It is a convenient GUI based way of disabling telemetry and improving privacy on Windows 10.
2 – Tinywall is a firewall for Windows that augments the built in Windows firewall with a convenient and accessible GUI. It locks down all traffic by default and lets you individually approve which programs / processes are able to use the network / internet connection(s).
3 – After 16 days of use, I’ve noticed when switching back to the UHK, that my typing experience is greatly improved on the Moonlander. You can’t really tell how much more comfortable an ortho-linear design is, until your muscle memory has had time to adapt. Once it does, moving back to a split staggered keyboard just feels so spread out. You notice just how far you have to move a finger in some cases to hit a key. The typing comfort is GREATLY improved on the Moonlander. I can’t believe the keyboard industry, as a whole, hasn’t converted to ortho-linear.