Enable browser access to keyboard firmware on Linux

iain simmons May 10, 2026
Source
Recently my Keychron V5 keyboard suddenly reset all the key mappings for no particular reason, which was strange, but thankfully my mappings are not too elaborate and I could still function enough to get to the web app I usually use for configuring it. I use the VIA app, and normally it's as simple as visiting the site and connecting to my keyboard via the USB HID interface: ![[attachments/via-app-connection-attempt.png|VIA app keyboard connection attempt]] Viewing the errors in the VIA app I was greeted with the following: ![[attachments/via-app-errors.png|VIA app errors]] A bit of searching around and I was highlighted to the Chromium device log, which you can access with a URL like this in your browser (may be slightly different depending on which browser you use): chrome://device-log OR helium://device-log OR brave://device-log There I could see some errors related to permissions to this device: ![[attachments/helium-device-log.png|Helium device log]] Here's one entry in more detail: A quick, once off solution would be to change the permissions to that device, but they will reset if the keyboard is unplugged or computer is restarted: A more permanent solution is to add a udev rule. This page on the QMK firmware docs explains the required rule, but the first step is to find the device ID with lsusb: Here the vendor ID and product ID are the parts before and after the colon, respectively: e.g. 1234:5678. Then I launch Neovim with sudo and add the new udev rule file: With the following content, based on the IDs obtained above: And lastly, reload the udev rules and trigger a change: And then I can connect my keyboard and the VIA app will run happily! ![[attachments/via-app-mascot.png|VIA app smiling mascot]]

Discussion in the ATmosphere

Loading comments...