I recently have made the switch to Linux, and a big issue I have had it HID devices. Before I used Corsair gear and thus ran into the common issue of no iCue for Linux, But I digress.
I have gotten a new mouse from Keychron (the M3 mouse as it was on sale for BF,) and it works great, except that the launcher to configure the mouse (and other keychron devices) does not seem to work… From what I understand the launcher is OS agnostic as its a webpage that requests device access not an actual program. https://launcher.keychron.com and I have read that others on other distros have it working, though they often have to change permissions for it to work.
I have tried such permissions;
sudo chmod 666 /dev/hidraw11
in my case, and reverting it back after testing with 600 on Manjaro but the launcher is still unable to connect. What is interesting is even without the permissions change the browser can see the mouse, but actually connecting fails. So I suspect it’s something with Manjaro and not the browser or Launcher it’s self…
I have also contacted Keychron about it, they have not yet responded.
And insight would be helpful. The entire reason I got this mouse (and probably Keyboard later on) is because I was told it was configurable via Linux…
Update;
For anyone just coming to this, It would seem that I have boiled it down to the exact rule for all known keychron devices. The rule is as follows; SUBSYSTEM==“hidraw”, ATTRS{idVendor}==“3434”, TAG+=“uaccess”
Simply make a text file, put the rule in it, rename it to say 50-keychron.rules, and move it (with sudo) to /etc/udev/rules.d/ then reboot.
Have tried Brave (chrome based) and ungoogled Chromium. both show the same symptoms. click connect, select the mouse or nub, but nothing happens.
it’s not an installed program, or even any kind of “program”…
and the old software listed in that pose is deprecated now with there new page based configuration “launcher” being the new way because it is supposed to be OS agnostic, have even heard it works with android phones, plug in say a keyboard into your Android phone and load up the page…
If you go to the page I sorta linked in the post that’s it, can even demo how it works.
What exactly? To be clear the mouse works perfectly, just there seems to be some block between the page based configuration tool and the mouse…
I have screenshots of there errors and UI, but I apparently am not allowed to have links or images (why have the buttons then…) in the post so… But at least in the “Brave://device-log” there are these 3 lines;
HIDEvent[00:03:51] Failed to open '/dev/hidraw8': FILE_ERROR_ACCESS_DENIED
HIDEvent[00:03:51] Access denied opening device read-write, trying read-only.
HIDUser[23:53:19] HID device detected: vendorId=13364, productId=53296, name='Keychron Keychron Link ', serial='', deviceIds=['/sys/devices/pci0000:00/0000:00:08.1/0000:0c:00.3/usb5/5-2/5-2:1.1/0003:3434:D030.0008/hidraw/hidraw8'],
You can use an image pasteboard service like the following, for example; return and paste the URL here as per the following example:
https://forum.manjaro.org
This allows others to easily select, copy and paste the URL, if they wish.
Though, the preference is that you post logs, code or any command output as pre-formatted text, either using the </> button in the Compose window, or manually creating two rows of (3) backticks, and pasting the text in the row between them;
```
Paste code or command output here.
```
which produces something like this:
Paste code or command output here.
Once you have engaged with the forum a little longer than five minutes (speaking figuratively) your privileges will increase as a matter of course.
The Keychron URL you gave explicitly states that only the following browsers are supported:
Chrome
Edge
Opera
I suggest you try one of these; unfortunately, none are available from the official Manjaro repositories, you will likely need to resort to flatpak or the AUR;
Please follow links in information added and discover how to use the forum. Forum rules are required reading. Additionally, also provide your system information as described (below).
Regards.
What follows is from a standard template.
Welcome to the Manjaro community
As a new or infrequent forum user, please take some time to familiarise yourself with forum requirements, and the many ways to use the forum to your benefit.
Note: By virtue of using the Manjaro forum you acknowledge and agree to follow Rules and Guidelines outlined; so, you really should read them:
It is important to provide as much actionable information as possible in your first post, rather than simply indicating there is a problem. Please also be prepared to provide output from commands if/when asked.
Simply waiting for others to ask you questions is counter-productive – typically, nobody has a at their disposal – and your clear, concise and accurate input is often relied upon in order to help you.
Please help others to make informed suggestions based on information you provide.
System Information
While information from *-fetch type apps might be fine for someone wishing to buy your computer, for Support purposes it’s better to ask your system directly;
Output of the inxi command (with appropriate parameters, and formatted according to forum guidelines) will generate information useful for those wishing to help:
After doing some poking about it would seem that I have found similar, apparently the issue is in fact that the browser does not have access to the HID device, in particular QMK stuffs.
In my searching I have discovered that there is a pre made udev rule for such bundled in the QMK firmware stuff found here: https://github.com/qmk/qmk_firmware/tree/master/util/udev Which does allow the mouse to be connected to. However the mouse nub, that is supposed to also work through does not.
Could you help me identify what part in that udev rule is relevant to the mouse so that I can adapt it to a custom rule that also works for the nub?
I have tried looking through it, but none of the vender ID or the like seem to line up with what the mouse reports… So I am actually a little confused how it works at all…
But in the very least I can configure the mouse when it’s wired now, so major win! Just want to narrow the scope of that rule if possible.
Guess what I am asking for is a better understanding of how that works, and where it gets its information from so I can make my own.
Note that not everything will necessarily work. On my Logitech mouse, there is one configurable button, and I’ve never gotten that to work either, but the navigation buttons and the scroll wheel all work.
Curious, is that not the same as basically doing a sudo chmod 660 /dev/hidraw11? I ask because that’s what I originally tried in my troubleshooting, and it did not work…
The /dev filesystem exists on a tmpfs and is populated by the kernel and by udev. It is not intended to be modified by the user, as the changes will not persist across reboots.
P.S.:
Well, if you have to start messing with udev rules, then it was not such a good choice after all, was it?
From what I understand, basically all normal mice that have “special” buttons need a driver to work, that is usually Windows only such as Corsair.
The entire reason I go this Keychron mouse (and eventually keyboard) is its ALL done in HW, so you set and save it to the mouse, and the mouse shows up as a mouse and keyboard on the connected system. So when I make a macro to do X the mouse actually plays out that action in HW. And because Keychron has made there configuration tool a web page (that you can save and run offline till the end of time I may add) its completely OS agnostic. Just a small hurdle for Linux and its more security first approach I guess.
not really any different than installing something like RazerGenie that from what I can tell does the same thing on install, it places a udev rule… But I digress, I would rather have to place a udev rule manually than have to have software installed that could change bla bla bla.
But thanks for the info. Is there some page somewhere I can learn more about udev rules? preferably something informative, but not “need to be a dev” to understand level?
Note that the id (abcd:1234) consist of a vendor id (abcd) and a product id (1234), and is usually a 4 digit hexadecimal number - which is why I said the numbers from your log snippet could be misleading.
P.S. Just a heads up, seems to be more than this. Commented all but this out and rebooted, no mouse access… I am again somewhat confused on how the QMK one works… But I digress.