Speed is rarely a consideration in the community.
I tried many things over the years including other ergonomics and gym etc.
Changing to a smaller split keyboard helped the most and I have not had pain since.
Granted mine has about 50 keys or so so it's not as extreme.
Most keyboards have not spent a single thought on ergonomics, unlike chairs where it is common. There's not a lot of real research in this area and there are contradicting theories (some physicians even say that creating muscle in certain areas like the neck is not worth in the long term). Microsoft ergonomic keyboards have some studies behind and many people report success on split and column staggered keyboards.
wish more people would heed this advice. my wrists are jsut as good as when I was in my 20's. in my early thirties I was starting to develop issues. they went away as soon as I started deadlifting and pullups regularly.
In fact, I wrote all this out using a dictation tool in ~20 seconds (258 WPM).
Built one for myself. It's context-aware and promptable.
Tested well on Linux, not so much on other platforms but in theory should support them.
It's a bit meta but I wrote it mostly using Claude Code. Once I had an MVP, I was able to prompt much faster by just speaking out what I wanted it to change.
I also have a whisper dictation app on my Android phone (the app's ID string is 'org.woheller69.whisper', there's a few Whisper apps with the same name "Whisper", but this one is my favorite).
FWIW this was typed by hand on my phone, but these apps are both amazing.
Also as I am typing one thing I am thinking of another, or even third, so if something goes wrong with the mechanics of the first thing, then whole set of dominoes fall and I have to go back.
Sometimes for a given thought I even type 3rd of 4th word instead of the first if for some reason my keys are not pressed. And then I type a word from the next thought and etc. It even gives me anxiety.
As I am typing the code, I am thinking about the code that is going to use the it, and then the code one layer up, I also think of the machine itself, its wires, cache lines, or I think of how the variable I am typing now is related to its surroundings, I imagine a ladder to the moon each step with its address, and I think how far are things from "me", and so on.
I cant speak of others, but for me keyboard layout and even key feeling/rythm is important just because it allows me to think uninterrupted.
I actually switched to an alternative layout and minimal keyboard like this just because it’s fun. If I can make my work day more fun, that’s a win in my book.
Programming involves long periods of thinking interrupted by short periods of typing. Anything you can do to reduce the mental effort of typing reduces the impact of this interruption to your train of thought.
Try programming by hunt-and-peck typing -- it's certainly possible, but having to think about putting each individual character on the screen is incredibly tedious and distracting. This is why people learn things like Vim motions or minimalist keyboard layouts -- anything that speeds up the feedback loop between your brain and your code is an improvement. It's not a drastic difference, but it's significant enough that I now feel mildly annoyed using a regular keyboard when I have to move my whole arm to reach the arrow keys rather than having them right under my fingers on the home row.
i also assume that if you have RSI/carpal tunnel/etc then experimenting with your keyboards switches from negative switching costs to greatly positive
My "fancy" keyboard is a lot like that. It lets me do some customizations that I really enjoy (ctrl when I hold z and /, esc + win next to a and ', "CAPS WORD", using thumbs for more than just space). I just enjoy using it more. Though it does have a few rough edges I probably need to see if I can fix, I CAN fix them.
I am however thinking that I probably would prefer one of the low-profile ones that is more like a laptop keyboard keys, the regular Cherry Blue desktop keys I feel like I'm tripping over a lot.
for those a want to give it a try, here are my the problems I encountered so far:
- stuff like Figma where you need to keep holding the space bar to change editing modes, won't work you need to make you custom (single purpose) space button if you want it.
- you can't play video games, unless you make you own custom layer or give each game a custom key bindings. I don't game much and when I do I use a gamepad so this haven't been much of a bother for much of bother for me but if you do It's something to keep in mind.
- the MCU boards that are available are very finicky, the nice!nano breaks easily I bought multiple replacements, they are very heat senstive. I had pins die, the charging circuit die on multiple ocasions in different boards. also I think using the mill-max pin was a mistake on my part even if it was the recommendation, they more expensive, annoying and you can't just plug them in a breadboard to test & debug them. on the web there's also an alternative commendation to use the leftover metal parts of the resistances/diodes. I would also recommend against it, with time the connections to the board start disconnecting since you probably won't cut all of them to the same exact length and that they wiggle inside the mill-max pin sockets. just use the standard ones that are used in most PCBs even if they are bigger.
- avoid using jack connectors to connect the sleeves, they can fry your MCUs and when they don't with time they give out and they start to disconnect and need time to reconnect and it makes for a bad user experience.
- if you make a wireless keyboard don't add LED backlights or individual per key LEDs they significantly drain your battery life even when you're not using them.
- Bluetooth connection is still somewhat unreliable, having something with wireless 2,4ghz would be better but I don't think there's an open source solution for that which is off the shelf, so if you want it you'll probably to make your own or tweak something from somewhere else.
I want to make a keyboard like the one that was submitted here a few weeks or months ago that takes these notes into account but I haven't found the time or the motivation. EDIT: this one https://news.ycombinator.com/item?id=43255529
I've also seen some people sell some open-source versions in ali express recently for around 60eur pre-assembled. I haven't ordered one so I'm not recommending it, just curious if anyone here ever did.
https://zmk.dev/docs/keymaps/behaviors/hold-tap#quick-tap-ms should work.
- Thumbs can also get overuse. I would generally only recommend to use one key for each thumb very frequently to avoid too much lateral movement. Also don't go overboard with layer holds on thumbs.
- The thumb key placement on some of these boards, e.g. the placement of the inner thumb key on the Ferris-based keyboard in the linked post, is quite disastrous. Unless you have very small hands, the thumb will be very close to the palm or even under the palm, and this can get very painful over longer periods. Even worse is that if you type very fast, the index finger can cross the thumb. Just try it a few times. If you keep your thumb on the thumb key while doing that, there is a lot of tension in the fingers.
- The obsession with minimalist layouts is to minimize finger/hand movement. But I could find not much evidence in the scientific literature that less movement is actually good. It's also a huge trade-off, because you end up with a lot of holds (which are probably not great for your fingers either) or additional key presses (Callum mods). There are also other ways to decrease finger travel, like using a key well keyboard, which not only reduces distances, but also puts your fingers in a more natural resting position and makes the finger movements more natural (since keys are laid out along the natural arcs of the fingers) [1].
I went away from small keyboards and minimalist layouts. I certainly use far fewer keys than most people and some layers. But I have found that key well boards make more keys reachable and have superior ergonomics.
Also, if you have a finger/hand issue as a result of keyboard/mouse use, visit a medical expert, not /r/ergomechkeyboards .
(I am not a health/ergonomics expert, just speaking from experience. Though it's probably best to ignore this and consult an expert.)
[1] There is a lot of pseudo-science in the whole ergo keyboard community, with folk wisdom like "Dactyl-style squeeze thumb clusters are better, because we naturally squeeze our thumbs to grab objects", meanwhile a lot of folks had thumb injuries from that type of cluster. The only types of keyboards that I could find research papers about were Microsoft Ergonomic Keyboard-style boards, which seem to have their design decisions grounded in actual human trials and some of the early Maltron keyboards.
In german, but should be clear enough: https://www.neo-layout.org/
In the meantime, I have spent my life following the opposite path : minimizing all form of customization so that I can switch computer at any time without feeling lost or missing something ( I have to use computers from several clients all the time).
I won't say I never customize things, but, 99.99% of things, I do not customize.
I just cope with what's there, make do.
E.g. the limit of my emacs customization is Slime for Lisp (and, honestly, it took me several years to pull that trigger).
Same reason I learned vi a zillion years ago, while my friend was pushing emacs. I had to jump around random Unix boxen as a daily thing, and they weren't mine.
Living off the land with minimal customization.
I have so many shortcuts programmed that whenever I'm working directly on my laptop's keyboard I found myself pressing wrong keys expecting it to do something different. It's really funny how muscle memory works.
I use to type on 60 key boards using layers but when I switched to using a laptop keyboard it would mess me up as I used caps lock to switch layers and I had a navigation layer that used hjkl for arrows.
So what I changed to a TKL 80 key keyboard for QWERTY and then use Colemak Mod-DH on my split (Cantor Remix).
The result is I can type on both due to the context switch. So if I need to use a QWERTY board I am fine.
Also my golden rule with split keyboards is I only use open source designs. I don't want to invest time into a layout if the keyboard isn't going to be available in the future.
If you use a custom keyboard (and layout) then you only have one extra thing to learn.
I can still use VSCode and a regular keyboard/layout but I still maintain my own custom keyboard layout and highly configured Neovim setup.
There are layers and double/quick/long tap keys that can let you add these keys to the layers.
To use keyboard shortcuts though you need to put a lot of thought into the layout and what shortcuts you use.
The payoff is better ergonomics. No bent wrists (if you type that way) and open chest when typing and less slouching. It opens up a multitude of options e.g. mount the keyboard halves to the sides or arms of your desk chair and code on your loungeroom TV or supine computing.
The downsides is the time spend configuring a layout and learning it.
Programming on 34 Keys - https://news.ycombinator.com/item?id=32648245 - Aug 2022 (69 comments)
stephendause•4h ago
_def•4h ago
Hojojo•3h ago
layer8•3h ago
linsomniac•2h ago
layer8•2h ago
theroncross•3h ago
Hojojo•3h ago
layer8•3h ago
lawn•1h ago
For example, I don't hold to type either { or _ or any symbol (O can hold of I type multiple symbols in a row though).
https://www.jonashietala.se/blog/2024/11/26/the_current_cybe...