Linux Journey: Solving HID Access Denied Errors for the Keychron Launcher

I have a 2018 Corsair Strafe mechanical keyboard with the Cherry MX Red Switches. I’ve been getting tired typing on it, and I’ve been noticing a lot of missed keystrokes while I type. I am a fast typer, and I think I got tired of this keyboard.

So, I was looking for another mechanical keyboard, specifically one that I could customize, change the caps and switches if needed. Basically, a keyboard that could grow with me without being too complicated. I tested some keyboards on my local computer store, and the Keychron ones got my attention.

I wanted a more tactile experience (the Cherry Red is linear), so I went with a Keychron V6 Ultra 8K with the Tactile Banana switches. I love it! 😍

It worked well with the cable connection, and also connected with Bluetooth and the 2.4G dongle on my Ubuntu 25.10.

The issue: Can’t use the Launcher to customize the keyboard

In order to customize and remap the keys and for this keyboard, we have to do it online, via the Keychron Launcher.

The manufacturer guide says that the Launcher only works with Chrome/Edge or Opera browsers.

I had Chromium installed via Snap and I opened the launcher website. The site recognized my keyboard, but it wouldn't connect.

Solution attempts

I did some online searching and I discovered that Linux has some security measures in place that avoids a userspace application to write to hardware input. So the solution is to create an “udev.rule” to add permissions. I followed the instructions from this article: HOWTO: Get the Keychron Launcher working in Debian GNU/Linux.

So my steps were something like this:

HIDEvent[21:52:54] Access denied opening device read-write, trying read-only.

# Keychron V6 Ultra 8K - Normal Mode KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="3434", ATTRS{idProduct}=="0c60", MODE="0666", TAG+="uaccess"

# STM32 Bootloader - Required for Firmware Flashing SUBSYSTEM=="usb", ATTRS{idVendor}=="3434", ATTRS{idProduct}=="0c60", MODE="0666", TAG+="uaccess"

My Final Checklist

So, as final checklist, these are the steps to take if I want to remap or update firmware on my Keychron keyboard :

Preparation of udev.rules (needs to be done only once):

  1. Identify keyboard's vendor/product information using : lsusb | grep -i keychron

  2. Create rule with: sudo nano /etc/udev/rules.d/99-keychron.rules

  3. Add these lines to the rules: # Keychron V6 Ultra 8K - Normal Mode KERNEL=="hidraw\*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="3434", ATTRS{idProduct}=="0c60", MODE="0666", TAG+="uaccess" # STM32 Bootloader - Required for Firmware Flashing SUBSYSTEM=="usb", ATTRS{idVendor}=="3434", ATTRS{idProduct}=="0c60", MODE="0666", TAG+="uaccess"\

  4. Save and exit (Ctrl+O, Enter, Ctrl+X)

  5. Then run these commands to activate the new rules: sudo udevadm control --reload-rules sudo udevadm trigger

  6. Disconnect/Connect keyboard.

Run Keychron Launcher

  1. Connect the keyboard with the cable
  2. On the keyboard itself, select the physical toggle to USB connection
  3. Open Google Chrome (not Chromium, make sure it is the .deb version of Google Chrome, not Snap)
  4. Go to https://launcher.keychron.com/
  5. Choose to connect the keyboard, and voilà!

#linux #tech

Thoughts? Discuss... if you have a Write.as account or Reply by email


By Noisy Deadlines Minimalist in progress, nerdy, introvert, skeptic. I don't leave without my e-reader.