| While talking of function keys— My greatest annoyance with keyboards is that Fn keys (as found to one side of the left Ctrl/Control key; ubiquitous on laptops and common on other keyboards) are always implemented in firmware, and simply don’t do anything with most of the keys, but implement them in such a way that I can’t either. My laptop’s keyboard has one Fn key, and 82 others.¹ I can only use Fn with 20 of them—one is legitimately handled in firmware², one does nothing³, two emit combos⁴, and 16 emit distinct key codes. The remaining 62 keys? They just get passed through as though I weren’t holding down the Fn key. I really wish I could use that Fn key just as a regular additional modifier. I use Super+[hjkl] in my tiling window manager, why can’t I use Fn+[hjkl] instead if I want to? Yes, I know that shifting it all from firmware to driver would cause inconvenience in some situations. Look, perhaps we could at least begin by adding a key code for Fn when it’s tapped by itself or with any of the 62 keys. I dunno, Hyper or something (is Hyper a thing at that level? or is there some other extra modifier available?). That’s sufficiently pragmatic, right? —⁂— ¹ Asus Zephyrus G15 (2021), GA503QM. I included the power button as one of the 82 keys, as I use it that way: I have XF86PowerOff switch to a Sway/i3 mode where pressing it again shuts down, r reboots, h hibernates, &c. It’s fun being like most projectors with their “press the power button again to show you actually meant it”. But you know my favourite key on the keyboard? XF86AudioMicMute. Really not looking forward to the inevitable day when I get a laptop without one again. ² Fn+Super disables/enables the Super key. Windows things. Wish I could disable this feature, because just occasionally I accidentally trigger it, and I will never want it. ³ As far as I can tell, Fn+Space just gets swallowed. evtest on the appropriate /dev/input/event* file doesn’t show anything being emitted. ⁴ Fn+F6 = Super+Shift+S, and Fn+F9 = Super+P, because those are standard Windows shortcuts. I don’t get why they did it this way, though they’re both very common, given how much more interesting stuff they’ve done than most others. Mostly I’m just grumbling about duplicates because I already want Super+P to do something else, so now Fn+F9 is a dead weight, though I would otherwise have used it. |
The firmwares used (e.g. QMK) allow you to build the sort of thing you're talking about into your keyboard and more.