On a new Debian Stretch with MATE desktop installation I have a problem with the zoom slider. It is no longer being recognized as a key / keys.

dmesg shows the keyboard being recognized correctly at boot time. It is also correctly set up in MATE desktop - Preferences - Hardware - Keyboard. I'm using it to type this

Using xev I get key events for all the keys on the keyboard except for the zoom slider.Using showkey, ditto. All fine except zoom slider.

To be clear, this is not about remapping the zoom slider, it is about the zoom slider not being recognized as key presses at all. (I want to remap it eventually, but I can't remap what isn't being recognized as a keypress...)

If I plug the keyboard into an old Wheezy machine, the zoom slider is recognized correctly, so it's not a hardware problem. Between Wheezy and Stretch the keyboard mapping functionality was taken over by systemd's hardware database functionality, and I wonder whether that's where the problem lies.

...Between Wheezy and Stretch the keyboard mapping functionality was taken over by systemd's hardware database functionality, and I wonder whether that's where the problem lies.

Could be, libinput as default input driver also is new in stretch so it could be part of the problem also. Check the bug reports? Setup xserver-xorg-input-evdev and see what happens? Should be harmless and easy to reverse...

On the Stretch install I've tried both libinput and evdev, same result for both. As in, all keys generate xev events except the zoom slider. Went through a trial of commenting out alternative pointer and keyboard sections of /usr/share/X11/xorg.conf.d/40-libinput.conf and /usr/share/X11/xorg.conf.d/10-evdev.conf in case the zoom slider was misrecognized as a pointer device, but no luck there either.

On the old Wheezy box the zoom slider does generate xev events, so it definitely is a config issue. I'm running out of ideas where to look, though.

does the evdev:input: ID match the device tag shown from looking at the kb with lsusb?

You can create new rules in /etc/udev/hwdb.d there should be instructions in one or all of the hwdb files. You can match by name also, that might be easier.

oh yeh, the settings should? show up in 'udevadm info /dev/input/eventX' where X is the correct event. Probably find the right eventX with xinput, or look around /dev/input/by-path or something like that...

BUT: It doesn't work as advertised. "systemd-hwdb update" will put a new version of hwdb.bin into /etc/udev, but that will not include any changes made in additional .hwdb files under /etc/udev/hwdb.d"udevadm hwdb --update" (which is now, strictly speaking, undocumented) followed by "udevadm trigger /dev/input/eventXX" does work, and updates hwdb.bin properly. So that's one bug in the functionality of systemd-hwdb, and another bug in the documentation of udevadm.

The lack of xev event traces or showkey output from the zoom slider which I mentioned earlier seems to have been irrelevant. evdev input ID and USB device tag were matching all the time, too. What clinched it for me was being pointed at the output from "udevadm info /dev/input/event1". After running "systemd-hwdb update" it still showed the default mappings from /lib/udev/hwdb.d/60-keyboard.hwdb, not the remappings I had put into /etc/udev/hwdb.d/70-keyboard-custom.hwdb. That was the smoking gun.

Postscript: After a reboot the zoom slider did not work again. The culprit was systemd-hwdb-update.service being started by systemd, which eventually runs "systemd-hwdb update", overwriting hwdb.bin. Therefore the command sequence to ensure that remapping of the zoom slider works and stays working should be:

That's odd, it works correctly here. I have a few local rules for touchpad dimensions and other things. If you can show it simply like this, then you could report it in debian bugtracker with the workaround, but I don't think systemd maintainers accept bugs for older versions, they will just tell you to try the latest... I wouldn;t go to a lot of trouble for it but it's nice to let other debian users know how to fix it.