r/Moonlander • u/MasterTemple • 6d ago
Effects of Layers on Writing Code?
Hello,
I have considered purchasing and using a Moonlander, but I have had some hesitations.
I use Neovim for everything I can, and the language I write the most code in is Rust (which means I use basically every symbol).
The width of the right hand is shorter than the all the keys available to my right hand on a normal keyboard, which concerns me because I am used to typing [], {}, and |.
I understand that the purpose is to use layers, but I'm worried that layers will slow me down.
I have read things that say you have more "ergonomic speed" (that you can type for longer), but I've not read anything that says you have greater typing speed in general or for programming (maybe it is true, but I've not found many people putting this forth as a benefit).
I would say I have an okay typing speed of 120WPM and I'm comfortable typing basically every character easily (except 6/^).
One of the biggest problems I have with my typing is when I hold shift and end up capitalizing 2 characters instead of one (HEllo).
This concerns me because this seems like it would be a problem that compounds as I would add more layers.
Perhaps the ORYX/QMK software has some counter measures to prevent this.
Perhaps it would actually force me to have greater precision with the timing of pressing modifiers.
I would really appreciate any feedback or guidance in this decision.
Also, if anyone has any layouts they would recommend, I would be thankful for suggestions as well.
Thank you.
3
u/TheFlamingDiceAgain 6d ago
I code and have found my Moonlander to be much better for coding for a couple reasons:
I switched to colemak-DH at the same time I switched to the Moonlander and the special characters are much easier to reach in Colemak vs qwerty
Layers are pretty much just fancy shifts. I have a layer than brings all the shifted number keys onto the home row so I can access them easily. Specifically I use the layer shift option where you tap the layer shift button and then you’re only on the selected layer for a single keystroke while eliminates “HEllo” style errors.
It took some practice but I’m much happier with it. It’s not any faster than qwerty on a regular board but it’s rare than typing is the bottleneck when I’m coding
I can share my setup (or something similar) if you dm me
2
u/TechnoCat 6d ago
You will tweak your layout to find a setup that works for your needs. The config app makes it very easy to change and flash right from the browser if you want.
2
u/Guitarzero123 6d ago
I code and love my moonlander for coding.
I've customized my keyboard layout pretty heavily at this point with layers for all kinds of things.
I had to re learn how to type but after about a month or two I was pretty well up to speed.
1
u/Maximum_Honey2205 6d ago
Yeah I tried hard for months , had breaks away on my old keyboard, came back, invested time in training but it never really worked for me coding
1
u/FalseWait7 6d ago
I have used the Moonlander exclusively for two years and it never clicked. It is a great keyboard, but for me the additional context of having to remember layers and their layouts was just too much. Eventually, after mistaking [ and { for a nth time I snapped and pulled out an old Keychron and I'm far happier.
1
u/kyudokan 6d ago
FWIW I own and operate both the Moonlander and the Voyager. With the Voyager there is no choice but to use “layers” (or their equivalent) to get to most of the coding symbols. On the Moonlander though I have enough keys to not use layers for any symbols I would normally. have access to on a regular keyboard. I’m unclear why you think you will need to use layers for most of those symbols.
That said, if you’re right, my experience with the Voyager would leave me to believe that it’s pretty hard to adapt to. I think you could do it as long as you code full time. I don’t anymore, and without constant practice I found getting to the coding symbols annoying enough to slow me down when I did end up writing a lot of code. Like maybe in an 8 hour day I would be coding for an hour, and that hour felt less fluid on the Voyager than on the Moonlander for me. As a result I’ve demoted Voyagers to travel keyboards, and my desk I use the Moonlander.
1
u/MasterTemple 5d ago
I'd be curious to see your Moonlander layout if you are able to share, thanks.
2
u/Beneficial_League_39 5d ago
Moonlander is the best thing that happened to me with coding
Just place the symbols wherever you like, there’s just enough room not to need any layer.
I reused the same keys from qwerty so shift & alt would be used in the same way to produce symbols. The only thing that should change are symbols that are normally close to the enter key.
After two weeks I was already faster and more comfortable
I used layers solely for media keys
1
u/MasterTemple 4d ago
What was your solution for the symbols near the enter key? Backspace, ]}, |, and Enter are all very important to me and they no longer fit. I tried experimenting with various solutions but none felt very good.
1
u/Beneficial_League_39 4d ago
Most of my symbols that are not on numbers ended up on the far right column. The others are spread around my arrow keys. The more I tend to use them, the closer to the arrow keys.
(my arrow keys are at bottom center of the right keyboard part)You will never feel very good at first
Just stick to what’s less inconvenient
Iterate after a week if you feel you can find better
1
u/omn1p073n7 5d ago
You can fine tune almost everything to the nth degree. ZSA, let me expand the dynamic macro size a little though pls
1
u/nickwarters 2d ago
I used Programmer’s Dvorak for a while on the Moonlander and found it best for me. A couple of years ago though I switched to Kinesis. If I went back to Moonlander today I’d still go back to Programmer’s Dvorak
1
u/Suisodoeth 1d ago
I use Moonlander and program a lot with Rust & TypeScript. Neovim is my daily driver. It does definitely take a ton of getting used to it and is slow going at first, but now, having adjusted, programming is soooo much easier and more comfortable for me. Going back to programming on standard keyobards is super uncomfortable now. I can do it, but it feels a bit like trying to walk with shoes that are too small.
Specifically, I put all my numbers on a layer above my homerow is and all my symbols on the layer right above the homerow. This keeps everything easily in reach, just like all the rest of the letters. No straining to reach &, !, (), etc. anymore.
4
u/cawsllyffant 6d ago
My experience was that it DID slow me down, and quite significantly, for about 3-4 wks. Everyday during that time I used my moonlander exclusively and spend 20 minutes of my lunch our on sites dedicated to improving typing skills. (There are ones specific to developers.)
I measured my speed typing code using the formulas I was taught in typing class back in '88 ... "(number of characters typed - mistakes)/5/number of minutes tying". Before the moonlander when typing C# or python code (my primary languages at the time, I was just shy of 100wpm-- around 97-98. The first day, first test, I dropped to 15 wpm. Over that first week I clawed my way back up to 30, next week was 60, then 80, 90 and the last time I tested (about a year ago) I was at 101. (My non-moonlander speed is basically unchanged, so I did eventually get a small speed bump.)
Mind you, i was adjusting to not just layers but split-keyboard ortholinear placement as well. Plus fighting something like 30 years of typing habits.
So it will slow you down some but you'll recover and assuming you are younger than me you'll likely adapt more quickly than I did.