Firstly to make the browser see and be able to use the HID device (/dev/hidraw*), we need to make a udev rule:
Check the PID and the VID of your devices:
lsusb | grep Keychron
Bus 003 Device 004: ID 3434:d030 Keychron Keychron Link
Bus 003 Device 009: ID 3434:0960 Keychron Keychron V6 Max
Here the VID is 3434 and PID is d030 for Keychron Link and 0960 for my keyboard.
Create the rule at /etc/udev/rules.d/50-keychron.rules
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="3434", ATTRS{idProduct}=="0960", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="3434", ATTRS{idProduct}=="d030", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
After creating the file, we need to reload these rules with:
sudo udevadm control --reload-rules;
sudo udevadm trigger;
For firmware upgrades, we also need to install dfu-util. It will replace the Keychron Toolbox, that is only in .exe format. On Arch Linux:
sudo pacman -S dfu-util
Everything should work now without any problems. Be aware that many keyboards require direct USB connection and won't connect with the launcher via Keychron Link dongle.
If you for some reason don't use udev (non-systemd distros), you have to change the syntax of the rules to whatever you use(like mdev). Alternatively you can add your user to the input group but that's really not recommended:
sudo usermod -aG input $USER