It seems that the Keychron firmware needs to have a very specific sequence of actions in order for bluetooth to work.
This is how it should be in the exact order via the bluetooth manager on linux :
- Remove the keyboard from known bluetooth devices if it's there.
- Hold Fn+[1-3] to start pairing with the keyboard
- In blueman-manager press "Search" (or type
scan on
in bluetoothctl)
- DO NOT CONNECT THE DEVICE, pair it instead. Right click on device in blueman-manager and select "Pair" (or type
pair <mac>
in bluetoothctl)
- Pairing takes a couple of seconds after which keyboard disconnects. Wait until it fully disconnects
- Now, connect the keyboard. Double click it in blueman-manager (or
connect <mac>
in bluetootctl)
- After keyboard is connected, make it "trusted". Right click the device in blueman-manager and select "Trusted" (or
trust <mac>
in bluetoothctl)