Logitech MX1000 half buttons are not working

Hello,
I have a Logitech MX1000 mouse. Until my upgrade from 13.2, 10 from the 11 buttons were working. I am almost sure that the KDE 4 control panel was showing the mouse as an MX1000, but I don’t remember now. What was not working was the “Show windows” button.

After my upgrade to 42.3, I have only the 5 of them working.

What is working:

  1. Classic 3 buttons
  2. Back/Forward buttons (side buttons)
  3. Scrolling wheel

What is not working:

  1. Page up/down buttons (top and bottom of the scroll wheel)
  2. Tilt - Scroll left/right

It’s obvious that the button is recognized as a Logitech device, but other than that, I have no idea about the model that is recognized etc.

mouse:
  /dev/input/mice      Logitech Cordless Mouse Receiver

grep -i logitech /var/log/messages
2017-11-05T16:02:22.937080+02:00 peter kernel:     2.981798] input: Logitech USB RECEIVER as /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/0003:046D:C50E.0001/input/input3
2017-11-05T16:02:22.937101+02:00 peter kernel:     3.036053] hid-generic 0003:046D:C50E.0001: input,hidraw0: USB HID v1.11 Mouse [Logitech USB RECEIVER] on usb-0000:00:14.0-4/input0

So, how can I see if the mouse if correctly identified as MX1000?
And, most important, how do I configure the rest of the buttons?

Which Xorg input driver is in use?

grep "Using input driver" /var/log/Xorg.0.log
  • I would expect it to be libinput but it may be something else

If ‘libinput-tools’ is installed, then ‘libinput-list-devices’ can be used to get a few device attributes reported…

sudo libinput-list-devices

Current button mapping can be got from

xinput get-button-map <Device>

Useful reference:
https://wiki.archlinux.org/index.php/Libinput#Manual_button_re-mapping

     5.657] (II) Using input driver 'libinput' for 'Power Button'
     6.465] (II) Using input driver 'libinput' for 'Video Bus'
     6.504] (II) Using input driver 'libinput' for 'Power Button'
     6.529] (II) Using input driver 'libinput' for 'Logitech USB RECEIVER'
     6.557] (II) Using input driver 'libinput' for 'MOSART Semi. 2.4G Keyboard Mouse'
     6.616] (II) Using input driver 'libinput' for 'MOSART Semi. 2.4G Keyboard Mouse'
     6.648] (II) Using input driver 'libinput' for 'MOSART Semi. 2.4G Keyboard Mouse'
   440.012] (II) Using input driver 'libinput' for 'Microsoft Natural® Ergonomic Keyboard 4000'
   440.064] (II) Using input driver 'libinput' for 'Microsoft Natural® Ergonomic Keyboard 4000'
   440.065] (II) Using input driver 'libinput' for 'Microsoft Natural® Ergonomic Keyboard 4000'
  6187.136] (II) Using input driver 'libinput' for 'Microsoft Natural® Ergonomic Keyboard 4000'
  6187.196] (II) Using input driver 'libinput' for 'Microsoft Natural® Ergonomic Keyboard 4000'
  6187.197] (II) Using input driver 'libinput' for 'Microsoft Natural® Ergonomic Keyboard 4000'

It looks like it’s getting only the receiver, not the mouse.


Device:           Logitech USB RECEIVER
Kernel:           /dev/input/event3
Group:            5
Seat:             seat0, default
Capabilities:     pointer 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: disabled
Calibration:      n/a
Scroll methods:   button
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   flat *adaptive
Rotation:         n/a

And then… boom!


xinput get-button-map 9
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 

So, it’s 20 buttons… But, the device has only 11…
And of course, KDE doesn’t care about the rest of them.

     6.529] (II) Using input driver 'libinput' for 'Logitech USB RECEIVER'

Ok, so that confirms libinput is in use as expected.

It looks like it’s getting only the receiver, not the mouse.

Device: Logitech USB RECEIVER
Kernel: /dev/input/event3
Group: 5
Seat: seat0, default
Capabilities: pointer
Tap-to-click: n/a
Tap-and-drag: n/a
Tap drag lock: n/a
Left-handed: disabled
Nat.scrolling: disabled
Middle emulation: disabled
Calibration: n/a
Scroll methods: button
Click methods: none
Disable-w-typing: n/a
Accel profiles: flat *adaptive
Rotation: n/a

That’s just how the USB receiver annunciates itself, but I guess it might have an influence on how the device is handled by libinput.

And then… boom!

xinput get-button-map 9
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

So, it’s 20 buttons… But, the device has only 11…

That will be the number reported from the device itself, even though only a subset are connected to actual physical buttons.

You could use ‘libinput-debug-events’ to help with debugging perhaps. Refer libinput - ArchWiki

It may be possible to get some of the “missing behaviour” enabled by way of a custom Xorg file (in /etc/X11/xorg.conf.d/ directory).

Just in case these wiki pages are helpful with getting the horizontal scroll function working…
https://wiki.archlinux.org/index.php/Logitech_MX1000#Enable_scroll_wheel_tilt_horizontal_scrolling
https://wiki.archlinux.org/index.php/Mouse_buttons#Horizontal_scroll

It’s very frustrating in 2017 to talk for the mouse buttons, like we did in 1997…
It’s even worse, when you consider that in KDE 4 it was working perfectly fine!

I will study them and check what I can do. I am not sure that I like the fact that I have extra software for the standard libraries…
Thanks!