ErgoDox keyboards are open source keyboards that are designed with ergonomics in mind and are entirely customizable. See the homepage of the open source ErgoDox project: https://www.ergodox.io/. They come in several different varieties.
The various types of ErgoDox all use the fantastic open source QMK firmware. QMK is a superpower that lets me remap any physical button press to any letter, character, or even sequence of characters.
Most critical for my purposes, I can move a character that a normal QWERTY keyboard keeps under a pinkie — escape, tab, shift, ctrl, return, backspace, and more — to the cluster of keys under the thumbs on my ErgoDox. This has been very helpful in my battle with RSI. To see details on this, take the guided tour.
One of QMK's most powerful features is its concept of layers, which let you transform the entire board at the press of a button.
Most people are probably familiar with a “function” key, like many laptops have — layers work like that. I have a similar function layer on my board. When I hold that key, QMK transforms the number keys 1 through 0 to function keys F1 through F10 , transforms other keys to controls for multimedia playback or screen brightness, and more. When I let go of the function layer key, the board snaps back to normal instantly.
A more fun one is my arrow layer. When I hold that key, QMK transforms e, s, d, f, and i, j, k, l into arrow keys, taking inspiration from this blog post.
I keep the source code for my keymap on GitHub; you can find it here. (Unfortunately, it's hard to read with GitHub's stylesheets or on a small screen. If you're reading this on a wide monitor, you might find it easier to see it in the raw.)