2022-07-21T22:38:10-04:00
I found an undocumented fix to allow access to keyboard function
keys (F1
-F12
).
Recently, I gave in to temptation and purchased myself a Keychron K6 65% keyboard.
The keyboard has been excellent, and I've found the adjustment to the
compact layout, and the reduced keyset to be fairly easy. The only thing
that I regularly miss vs. the standard 104 key layout is the Enter
key
on the bottom right corner of the numeric keypad. I often manipulate
something with a mouse, and then hit the Enter
key with my thumb.
The need to use fn1/fn2 + esc
for backtick and tilde has really not been
a problem, which really surpised me. I expected to hate that. I'm a
shell/commandline junkie, and frequently have the need to do markdown
or wiki formatting, so I use those fairly frequently.
What really was unbearable, was the fact that the function keys did not
work as advertised. The number keys at the top of the keyboard double as
multimedia keys and F1
through F12
function keys, depending on whether
you combine them with fn1
or fn2
. Unfortunately, only the multimedia
functions work, and I never use multimedia keys.
The fix, though not documented in the K6 user manual, was to use the key
combo: Fn1-Ctrl-Shift-x-l
and hold that for 4 seconds. I honestly am not
sure what that key sequence is intended to do, but in my case, it
modified the behavior of my fn1
/fn2
keys so that they worked as documented.
This fix is not included in the K6 keyboard user manual, and the the person who suggested this fix was actually claiming it worked for another Keychron keyboard model, not the K6.
Alternate advice involved configuring module parameters for the hid_apple
kernel module, which everyone seems to claim is what is used for these
keyboards. This does not work work in my case, as it appears that on
Debian 11 (Bullseye), the keyboard uses the hid_generic
driver instead
instead, which does not support the suggested parameters.
Correction: My keyboard does use the hid_apple
driver when plugged in
via USB, or at least it was loaded on reboot, even with the keyboard in
windows/android mode. However, with the fix above, no additional changes
are needed regardless of which module is used.