GNOME Bugzilla – Bug 793929
X11 mouse configuration not available for combined keyboard/mouse device
Last modified: 2018-03-07 18:16:15 UTC
I have a common USB keyboard/mouse however gnome-control-center under X11 does not show me any mouse options (so I can't change natural scrolling, mouse speed, etc). The kernel detects the device as: I: Bus=0003 Vendor=046d Product=404d Version=0111 N: Name="Logitech K400 Plus" P: Phys=usb-0000:00:14.0-3.4:1 S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3.4/1-3.4:1.2/0003:046D:C52B.0005/0003:046D:404D.0006/input/input5 U: Uniq=404d-a8-85-67-8b H: Handlers=sysrq kbd mouse1 event5 leds B: PROP=0 B: EV=12001f B: KEY=3007f 0 0 483ffff17aff32d bf54444600000000 ffff0001 130f938b17c007 ffff7bfad941dfff febeffdfffefffff fffffffffffffffe B: REL=1c3 B: ABS=100000000 B: MSC=10 B: LED=1f "xinput list" shows it as both a mouse and keyboard: ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ USBcIR-3012@iRFmedia id=10 [slave pointer (2)] ⎜ ↳ Logitech K400 Plus id=11 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Video Bus id=7 [slave keyboard (3)] ↳ Power Button id=8 [slave keyboard (3)] ↳ USBcIR-3012@iRFmedia id=9 [slave keyboard (3)] ↳ Intel HID events id=12 [slave keyboard (3)] ↳ gpio-keys id=13 [slave keyboard (3)] ↳ gpio-keys id=14 [slave keyboard (3)] ↳ USBcIR-3012@iRFmedia id=15 [slave keyboard (3)] ↳ Logitech K400 Plus id=16 [slave keyboard (3)] Also note that "xinput list-props 16" and "xinput list-props 11" both show: Device Node (262): "/dev/input/event5" i.e. two different XI2 devices share the same device node. I have verified that at the GdkDevice level, GDK maintains the concept of two separate devices here. But when we get into gnome-control-center/panels/common/gsd-device-manager-x11.c create_device() the situation changes. This function only registers the first GdkDevice for a given device node, and then (practically) ignores all the others. In my case it detects and registers the keyboard device, and then ignores the mouse. mouse_is_present() then returns FALSE since it does not have any mouse devices registered, so I do not get any mouse controls appearing in the UI. Possible solutions: - When a new device is detected that has the same device node as an existing device, combine the type flags of both devices into the existing device object. (note that currently the type property is construct-only and can't be changed later) - Don't impose the restriction that a single device node can only provide a single input device. (would require some rework, but the result will be more consistent with the other layers)
Which version is this about?
Reproduced and investigated on gnome-control-center v3.26.2
I am convinced that it is duplicate of Bug 793029. *** This bug has been marked as a duplicate of bug 793029 ***
We confirmed that the changes made there solve the issue. thanks!