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

speckx1 pts0 comments

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

Linux Journey: Solving HID Access Denied Errors for the Keychron Launcher<br>April 27, 2026I 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:

I identified my keyboard vendor/product information using<br>lsusb | grep -i keychron

Which gave me following info: Bus 003 Device 013: ID 3434:0c60 Keychron Keychron V6 Ultra 8K

Great! Then I created the rule with sudo nano /etc/udev/rules.d/99-keychron.rules

And this was my first try to create the rule:<br>KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="3434", ATTRS{idProduct}=="0c60", MODE="0660", GROUP="ariadne", TAG+="uaccess", TAG+="udev-acl"

Then, I ran the two commands to reload the rules and trigger them:<br>sudo udevadm control --reload-rules<br>sudo udevadm trigger

It didn't work, Chromium still could not connect to the keyboard.

In Chromium I checked: Settings -> Privacy and Security -> Site settings -> Additional permissions -> HID devices and ensured HID access was allowed.

I tried different rules, tweaking here and there, played around with user groups, and nothing worked. I unplugged, plugged, restarted the computer, I even tried to run Chromium with root access temporarily. Nothing worked.

All the time I was checking chrome://device-log/ to see what was going on, and got a list of errors like this:<br>HIDEvent[21:52:54] Failed to open '/dev/hidraw7': FILE_ERROR_ACCESS_DENIED

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

I did some more tweaks to the udev.rules, and I ended up with this in my rules file:

# 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"

It was still not working . I knew it was something to do with permissions from Chromium.

Then the next day I did more digging online, and I read that Chromium installed via Snap is actually sandboxed and often cannot see hardware even if the udev rules are current . The solution? Get the .deb install package for Google Chrome.

So I downloaded and installed the official Google Chrome .deb native package directly from the Google website.

And then it worked!!! 🤘

Keychron Launcher connected to the keyboard, I could do the Firmware update and started playing with remapping keys.

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):

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

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

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

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

Then run these commands to activate the new rules:<br>sudo udevadm control --reload-rules<br>sudo udevadm trigger

Disconnect/Connect keyboard.

Run Keychron Launcher

Connect the keyboard with the cable

On the keyboard...

keychron keyboard rules launcher attrs udev

Related Articles