I've seen the customisable keyboard firmware a few times now. Could someone explain what's the benefit over just setting a keymap instead? If I can switch to anything including Dvorak already in the OS, why would I want to do that at firmware layer?
A significant benefit that custom keyboard firmware allows is reduced finger movement. Though mostly this is more sophisticated than just changing between qwerty/dvorak.
e.g. pressing a shortcut like "Ctrl + b" most likely involves stretching your pinky finger on a standard keyboard. One feature custom keyboards often have is dual-use keys; keys which act the same if tapped, but have a different function if held. So e.g. tapping 'f' outputs 'f', holding 'f' is the same as holding 'shift'. With that technique, you can put Shift, Ctrl, GUI, Alt all on the home row.
Custom firmware can also support chords; e.g. pressing 'cv' at the same time could be a chord to switch to the previous virtual desktop.
Custom firmware also allows layers (similar to how some laptops have a 'numpad' in the middle of the keyboard which can be used if Fn is held). This allows more flexibility, at the cost of more complexity.
Much of this could be done with e.g. kmonad, but it's nice to have it on the keyboard itself.
I rebind Caps Lock on every machine I use to make it control and basically never use the control key anymore. I find it makes common left-hand key combination much more ergonomic.
I still can't understand how anyone doesn't remap Caps Lock. That's prime modifier real estate and letting it remain the shouting grandpa key is a travesty.
All my modifier keys are on the home row. E.g. F is Shift until I release it, or F after I release it. My pinkies are not overburdened, and I'm an Emacs user.
Then, layers. I don't need to move my hand to the numpad; I press a modifier with my left hand, and the numpad is instantly under my right hand. Same with shifted symbols like @ or &; I can have them right under my left hand, without reaching far. Same for media control keys.
QMK also emulates a mouse, so I can move the mouse cursor, click, scroll with keys, pressing another modifier.
Also you can assign macros to keys. I have little use for it, but people playing games, or people using certain unergonomic software, appreciate it a lot.
Another cool reason: This board uses QMK firmware, which also has built-in support for MIDI, including a sequencer. So, I can have a layer that sends midi cc, notes on/off, program changes, clock, etc.
If I'm working in a DAW such as Pro Tools or Logic, I can do all sorts of things such as program keys to play full chords or chord progressions. Maybe I want to press some key combo to start/stop my external sequencer, or arm/disarm a synth to improvise live with a looper, but not record into the loop.
I'm sure the possibilities are endless, but having the flexibility to tinker and build your own workflow is super neat.
You can add all kinds of modes, like a built-in vim mode for your keyboard. I have programmed three layers, theoretically pretty optimized for text editing.
That said, I have forgotten what the third layer shortcuts are, because I never actually used them after day 1.
But you can easily switch the other computer to Dvorak as well. Meanwhile anyone else trying to type on your keyboard cannot temporarily reverse to a common layout.
It’s a bit of a pain sometimes though, for example, when installing a new OS (not all offer all key maps during install), or when you’re not sure if an interviewer will ask you to type on a laptop that you didn’t bring, or if you have a mildly different layout that you prefer that isn’t in the default install of the various OSs