Zettazebra

Version 5.0

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.