Skip to content

Instantly share code, notes, and snippets.

@K0SS4
Created March 14, 2026 16:33
Show Gist options
  • Select an option

  • Save K0SS4/668c2f1e2dc8f8e704a679974a340bc6 to your computer and use it in GitHub Desktop.

Select an option

Save K0SS4/668c2f1e2dc8f8e704a679974a340bc6 to your computer and use it in GitHub Desktop.
How to make Keychron Launcher work on linux with firmware upgrades.

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment