I found an undocumented fix to allow access to keyboard function
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
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
F12 function keys, depending on whether
you combine them with
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
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
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
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.