UP  |  HOME

Keychron K1 v4 (87-key) Keyboard

Table of Contents

Gripes

No scroll lock (or key modifier combo that produces scroll lock). Instead I have this voice assistant key because a 2-key combo is one key too many.

Space bar is too wide. Left Alt and Super are a reach for thumb usage. I'll probably bind Left Ctrl to Super since I already use Caps as Ctrl.

Configuration

Swap Left Super and Ctrl

Note the other XKBOPTIONS must be repeated here to apply. Also it's important that the bluetooth address be lower case. I found upper case caused the rule to fail to match.

Listing 1: /etc/udev/rules.d/80-keychron_k1.rules
ACTION=="add", ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="024f", ENV{XKBOPTIONS}="ctrl:swap_lwin_lctl,ctrl:nocaps,grp:shifts_toggle"
ACTION=="add", SUBSYSTEM=="input", ATTRS{uniq}=="fa:ke:ma:ca:dd:rs", ENV{XKBOPTIONS}="ctrl:swap_lwin_lctl,ctrl:nocaps,grp:shifts_toggle"

Reload udev to activate the new rule, then replug then keyboard.

sudo udevadm control -R

Make the function keys work correctly (on Linux)

This works with the hid_apple module. To make F keys the default behavior add this config and replug the keyboard:

Listing 2: /etc/modprobe.d/hid_apple.conf
options hid_apple fnmode=0

Holding Fn + X + L for 4 seconds switches some mode related to this, but it wouldn't work for me without the config as well.

Fn + K + C also toggles something related to F5 and F6.

https://mikeshade.com/posts/keychron-linux-function-keys/

Lighting

Function Key Combo
Toggle lighting Fn + lighting key
Switch color Fn + left or = Fn + right=
Lock setting Fn + L + lighting key (4 seconds)
Speed Fn + '+

Auto Sleep Mode

Has a 10-minute timer. Fn + S + O to toggle.

Factory reset

Fn + Z + J (4 seconds)