Comment by dotancohen
4 days ago
The Moonlander and the Ergodox both lack Function keys. How do you cope?
I spend much time in IDEs, mostly Jetbrains but also VS Code. I'm also constantly in Emacs and VIM, and even my desktop shortcuts have many Function keys used. The IDEs are particularly troublesome as there are quite a few triple buckies that involve the Function keys. Another layer (e.g. using a modifier key) just doesn't seen like a good solution.
Do you ever miss the function keys?
I'm in Emacs 99% of my day, and I don't think I've ever used the function keys inside Emacs.
All my volume/brightness/etc functions are handled on a separate layer. I've got function keys on another layer as well, but I don't ever use them.
If you use function keys a lot, then you could do something like putting the function keys on one layer all on the right hand like it's a num pad and then adding a key on the left hand to switch to that layer. You could add combo-taps on your main layer to trigger the function key (e.g. press `q` and `1` at the same time to hit `f1`, `w` and `2` at the same time to send `f2`, etc.), etc. etc.
QMK gives you a lot of options to do what you want. There's also 3 keys towards the center of the keyboard on each side that I rarely hit (in fact, they're used for some layer switching some times!) that you could easy bind to function keys directly.
Note that a key can do like 4 different things depending if you tap, hold, double tap, or tap and hold if you want to get really fancy.
As a Mac user, I seldom need function keys, so I don't miss them at all on my Voyager. On Windows, X11, or Wayland, that's different of course. macOS basically pretends the function keys don't exist, and my editor of choice, Helix, doesn't use them in its default keymap either. I have them stashed away on a layer but I don't think I've ever used it.
With those things said, I don't actually use the number row on the Voyager either. I have numbers on home row in an easily-activated layer (with a resting position thumb key held down), and I _love_ it. It feels wonderful rolling across home row to type sequences of numbers. I'd probably put the function row on the same layer, shifted one row up or down, if I needed it regularly.
Layers work well for me. I know they don't for everyone, though.
I bounce between boards and my favorite solution so far is a layer that gives my right hand a “numpad” for the F keys. You need to make sure you can hit other modifiers trivially from that position, but I like it so much I’ve added this to boards that do have F keys and it’s now my primary way of activating them.
My default layout has function keys as basically an "fn" key plus the appropriate number. I thought I was going to miss the dedicated keys way more than I do in practice.
If I were starting from scratch, and really had a function-key-centric workflow, I'd probably make the number keys (and - and + for F11 and F12 respectively) be tap-and-hold for that function key input.
Tap and hold would be annoying for many workflows, such as tapping through breakpoints.
I use a Moonlander and regret it entirely for this reason. It would be perfect if it just had that extra row of F keys. I know there are a million ways to compensate for it but they all involve tradeoffs that I don't want to make.
I stopped working a day job that requires typing, so I can deal with the inconvenience, but my god I wish I didn't listen to the people who pooh-poohed away the lack of F keys. Not having the keys present and labeled adds all this cognitive overload when having to remember which magic combo changes layers and which keys are the F keys, while switching between windows/macOS/linux. Have to hit F2 to boot into BIOS? Good luck hitting the magic incantation in time before you miss your window of opportunity, when the keyboard doesn't show which layer you're in because it just powered up.
I like the tactile feel of it, the build quality, the ortholinear layout, and the customizability, but at this point I'd trade off the customizability for that extra row and labeled modifier keys.