-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Breaks with latest systemd #137
Comments
Any log strangeness or anything else you can provide? |
I would like to but don't know to create a debug file, the behavior is like:
For xkeysnail, I can see it do catch my key strike but the system doesn't react to them. The Maintainer of xkeysnail in AUR also report this https://aur.archlinux.org/packages/xkeysnail. |
Hello. I have same issue on archlinux with systemd 253 (I'm that AUR xkeysnail maintainer). After some experimenting with code I've found that removing 6 (REL_WHEEL) and 8 (REL_HWHEEL) from Lines 40 to 46 in f8e5014
I.e. replacing line 44 with: That line also can be removed completely and everything still works. I don't know why these events are listed here (wheels and axes for keyboard?), but I don't know much about Linux input subsystem and this solution may be wrong. I also can't understand how this is related to systemd and what is the cause of the bug. |
Some keyboards build in a mouse/trackpad/navigation device - single device. If you aren't using one of those such keyboards, this patch shouldn't hurt anything.
Yeah, that's still a mystery. |
I tried your solution, unfortunately it did not work for me, on a Thinkpad X1 Carbon. Downgraded systemd as per OP. |
Maybe removing EV_REL line completely may help. I can confirm that original solution works on Thinkpad Edge E330, although it may be too different from Carbon series (Edge isn't "classic" Thinkpad, but it has trackpoint and has similar-looking keyboard). |
This solution works for me, but results in some random unexpected behavior. The keyboard will suddenly freeze then keep pressing one key then I have to unplug this keyboard and kill keyszer. How can I debug further from there? |
I've tried to do some debugging and maybe found source of the issue. For some reason device with REL_HWHEEL and REL_WHEEL have libinput capabilites When device is detected as
But with
So, there are different set of device properties, and device with That means something is wrong in device type detection. I think there is only one commit related to detection that was made between systemd 252 and 253: systemd/systemd@0855ce6 I don't really know the best way to fix this issue though. In one test I've replaced |
Yeah, the whole reason that line exists is so we get detected as a "keyboard", not a "joystick"... which I presume is bad - this line is before my time. But I'd say if the change works for you with no obvious issues then it's probably safe. |
The log looks like
is this relevant to our fix patch @joshgoebel ? |
Looks like a pretty weird X11 error... we should probably rescue that as well with all the others in |
I'm trying to decide if I wanted to file a bug or issue against systemd exactly how I might do it - obviously this was an intentional change and probably works in most cases for normal devices... I'd suggest we build the event table for our virtual keyboard dynamically (from looking at the events supported by the real keyboards), but that becomes problematic when you can hot plug keyboards constantly - I don't think you can reconfigure an existing keyboard on the fly to add new types of events... |
Removing and adding virtual device is basically the same hotplug action. So that solution may be ok, although it may require pretty large rewrite. But I see possible problem here, related to current issue. Users may specify list of devices (like mouse and keyboard) to grab them both, and it looks like valid use case for someone. Combining different capabilities from these devices into single one may result in wrong classification by udev again. Maybe creating a virtual device for every grabbed one? Although this is pretty big rewrite too. |
This also messes up certain keyboard attributes (key repeat speed to name one I'm aware of) that a user has set on the virtual keyboard... so constantly breaking the key repeat speed isn't a great option.
Interesting. I was considering a single separate mouse and keyboard, but a proxy output device per input device is certainly an intriguing idea. |
Don't know why, but It makes keyboard unusable with latest systemd version, can confirm systemd 252.4 works fine.
This also happens in xkeysnail.
The text was updated successfully, but these errors were encountered: