Changing IDE shortcuts is really an easy win for ergonomics. Shortcuts aren't really designed: they grow organically as features are added, using whatever is free. Because of this, older features use simple shortcuts, young features require pressing more keys or even chords.
I'm not arguing, really I'm asking to hear the answer and become wiser.
I have Ctrl + Alt + Super on the thumb clusters, each as their own key. I did copy the default layout for the Ergo S-1 which uses a modifier key (also on the thumb cluster) to access the function keys, so F1 is Fn+1, F2 is Fn+2.
I thought I would miss having dedicated Fn keys but they are surprisingly not missed much in my workflow. Might depend on your workflow though. The current solution is workable, at any rate.
Layering, chording, combos, and other methods of producing different keycodes aside from just throwing more buttons and adding more surface area ARE a good solution and arguably superior due to the following benefits:
- Ergonomics are better due to less overall movement and effort needed to produce a certain keycodes by moving two fingers slightly instead of moving your wrist or arm.
- Keyboard is generally cheaper to produce due to fewer parts required, simpler circuitry, smaller footprint, and other benefits. The arguable downside is that you are "hiding" the complexity in software (firmware?).
- It's more fun! This one is more subjective, but thinking about clever and more efficient ways to setup your keyboard can be a good time indeed! It feels cool to use.
A popular way to handle modifiers, for example, is putting them on the home row. A tap gives you a letter; a long press gives you a modifier instead. This allows me to (for example) type Ctrl+alt+shift+left arrow without moving my hands at all.
Home row mods are really finicky though. It took me months to get really consistent at them.
How do you handle triple buckies, e.g. Ctrl-Shift-A?
> MO(layer) - momentarily activates layer. As soon as you let go of the key, the layer is deactivated.
> TG(layer) - toggles layer, activating it if it's inactive and vice versa
> TT(layer) - Layer Tap-Toggle. If you hold the key down, layer is activated, and then is de-activated when you let go (like MO). If you repeatedly tap it, the layer will be toggled on or off
You can also use Macros if you'd prefer (but not required) to handle triple (or more) buckies, which both ZMK and QMK firmwares support.
I will note that this Ergo S-1 seems to be missing at least 8 keys that most other Ergodox keyboards have (the 3 keys of the inner column on each side and the bottom right and left corner keys) so total physical keycount appears to be closer to a 60% kb. So in that way, you're going to be more dependent on using layers (or Macros) in general than even other ergodox (such as the Ergodox-ez [3] style keyboards of this type.
EDIT: Apologies, I wasn't paying attention to usernames when responding to comments and basically gave you this answer twice across two different comments. Deleted the other as this one is more complete/to the point.
0: https://docs.qmk.fm/feature_layers
1: https://zmk.dev/docs/keymaps/behaviors/layers
Great, just what I need, to get further into the keyboard hobby... ))
The "both hands on the keyboard" thing is a major caveat. The key I use to switch to my navigation layer (arrows, paging) is on my left hand and it also runs all of my non-home row keys into Ctrl modified versions of themselves. This allows me to type almost any Ctrl combination while mousing that you could type easily with only your left hand, with the exception of Ctrl+D because I have D mapped to control (I use super/alt/Ctrl/shift). I only use Ctrl+D in the terminal, so I had no need to resolve this limitation.
Is all this worth it? Honestly it's hard for me to say yes, but I also find using a qwerty keyboard uncomfortable now. Plus the keyboards are cool.
I really like having return under my pinky, which means that I need another column in order to get quote somewhere decent.
They don’t send a keycode, they modify existing keys so they either send different keycodes or modify the keyboard’s state (e.g. toggle LEDs).
The main difference is, once you start rabbit-holing the custom layers, you don’t have to only put a layer on the F keys.
My favourite layer is holding down an extra thumb key to get arrow keys + home/end, pgup/pgdown near home row.
Since I have yet an extra thumb key, I made it so I get those navigation keys but holding down Ctrl, so I don’t need to stretch across both a Fn key and a modifier. And so on.
I have a combined Tab + Ctrl key: Ctrl on hold, Tab on click. All of these just work, no adaptation, no downside, just less movement.
I’ll never go back from this.
It's a matter preference, but with a decent keyboard keymapping and a few macros, I'd consider this approach far more ergonomical not just for Function Keys, but most instances where you use 3+ buckies.
https://zmk.dev/docs/keymaps/behaviors/layers https://docs.qmk.fm/feature_layers
Layering is not a good solution when many applications already have double or even triple buckies on the F keys. What IDE doesn't?