"I've always hated stateful control. Always ripped out caps lock key from my boards (or later figured out remapping), same for insert mode"
You want some real fun, try the Microsoft Surface keyboard. Maybe they've fixed in a very recent version, but given how long the product line has had this problem, probably not. It has a stateful Fn key. That's right, a Fn key that works like capslock. There is no conceivable way this is a good idea. It means that if you actually want to use both "sides" of the Fn'd keys, you literally can not build muscle memory. If you hold the Fn key and press one of those keys, it'll do the "other" function, but if you just tap the Fn key, including because you had meant to press one of the keys but decided not to halfway through (which happens all the time, you just don't normally notice it because it's a completely normal thing to do that normally carries no consequences), you flip the polarity of the entire Fn key set. Now a normal press and a Fn-press do the opposite things. Until you flip it again.
This is not a "oh, as a multi-decade key user I have opinions about whether key strokes should be 68dB or 72dB" question. This is basic functioning of the keyboard. It's insane.
And, naturally, the key is "magic" and the OS can't see it. While I'm bitching, what is the deal with keyboards on new laptops needing special drivers? What the fuck is so special about your keyboard that you need drivers for it? I'll tell you what's so special about it: stuff you shouldn't be doing anyhow. My OS should be able to see and address all keys so I can remap them as needed. Your stupid special key that does your stupid special thing doesn't need to be a stupid special key. Make it a normal key and trigger your behavior in Windows, not in the hardware. Then I can use your stupid special key at least as a Meta or a Hyper or something. You don't need special drivers to have normal keys, you only need special drivers if you're doing something stupid.
So there's no fixing the Fn key on these systems because it's one of the magic keys that can't be seen by the OS at all, so it can't be remapped, it can't be turned off, it can't be locked into one state, you can't do anything. You're just stuck with a keyboard that, from your brain's point of view, randomly swaps a couple of dozen keys around.
Now I'm also on a programmable keyboard. This guy, to be precise: https://mistelkeyboard.com/products/0a26d32ac1e3b1d2af2896e0... which I split across my chair so I've got one half under each hand when it is resting comfortably. That's something you can't get a laptop keyboard to do.
> While I'm bitching, what is the deal with keyboards on new laptops needing special drivers?
The only laptops I've encountered with this are... Microsoft's. Somehow the Surface folks can't get enough of their critical drivers in-box with Windows to be able to re-install from stock media.
(IIRC it goes even deeper with USB drivers missing, but I gave up on Surface Laptops a few year ago)
I agree about the special keys. There are so many HID usages on the Consumer page for keyboards covering so many things, from application launchers to extra editing functions, and it is absurd how often almost none of them are used in favour of vendor-private usage numbers that then require vendor-specific software support.
I have a mac, and I wouldn't mind a fn-lock feature, but only from a different key combo, maybe fn+capslock. The behavior of fn (media keys or function keys) is a control panel setting, so I could probably whip up something with hammerspoon. But right now I just remap most things in my IDE so they don't require function keys.
Anyway, keyboards have needed drivers since we stopped using BIOS to read them, and fancy keyboards with macros tend to need at least a userspace daemon, but yeah this kind of thing should be as much a commodity as a VGA framebuffer is, something you just shouldn't have to fuss with. Far as I know though, USB and the *HCI zoo pretty much are that, so along with the OS's own built-in support, it should support the basic functionality of any keyboard, and provide standard means for extension. I believe the main reason any company ships a 1GB keyboard "driver" these days is the bundled shovelware and spyware.
You want some real fun, try the Microsoft Surface keyboard. Maybe they've fixed in a very recent version, but given how long the product line has had this problem, probably not. It has a stateful Fn key. That's right, a Fn key that works like capslock. There is no conceivable way this is a good idea. It means that if you actually want to use both "sides" of the Fn'd keys, you literally can not build muscle memory. If you hold the Fn key and press one of those keys, it'll do the "other" function, but if you just tap the Fn key, including because you had meant to press one of the keys but decided not to halfway through (which happens all the time, you just don't normally notice it because it's a completely normal thing to do that normally carries no consequences), you flip the polarity of the entire Fn key set. Now a normal press and a Fn-press do the opposite things. Until you flip it again.
This is not a "oh, as a multi-decade key user I have opinions about whether key strokes should be 68dB or 72dB" question. This is basic functioning of the keyboard. It's insane.
And, naturally, the key is "magic" and the OS can't see it. While I'm bitching, what is the deal with keyboards on new laptops needing special drivers? What the fuck is so special about your keyboard that you need drivers for it? I'll tell you what's so special about it: stuff you shouldn't be doing anyhow. My OS should be able to see and address all keys so I can remap them as needed. Your stupid special key that does your stupid special thing doesn't need to be a stupid special key. Make it a normal key and trigger your behavior in Windows, not in the hardware. Then I can use your stupid special key at least as a Meta or a Hyper or something. You don't need special drivers to have normal keys, you only need special drivers if you're doing something stupid.
So there's no fixing the Fn key on these systems because it's one of the magic keys that can't be seen by the OS at all, so it can't be remapped, it can't be turned off, it can't be locked into one state, you can't do anything. You're just stuck with a keyboard that, from your brain's point of view, randomly swaps a couple of dozen keys around.
Now I'm also on a programmable keyboard. This guy, to be precise: https://mistelkeyboard.com/products/0a26d32ac1e3b1d2af2896e0... which I split across my chair so I've got one half under each hand when it is resting comfortably. That's something you can't get a laptop keyboard to do.