quirks: ignore mode switch button on Madcatz R.A.T.3 mouse
Based on 50-system-cyborg.quirks, I created quirks for Madcatz R.A.T.3. Don't know how, but Madcatz's R.A.T. and Saitek's Cyborg are related. Maybe one of these companies has bought another... Anyway, in my RAT3 the problematic "mode switch" button had a little bit different keycodes. Here's log with all the buttons pressed:
> sudo libinput debug-events --device /dev/input/event21
-event21 DEVICE_ADDED Madcatz Mad Catz R.A.T.3 Mouse seat0 default group1 cap:p left scroll-nat scroll-button
event21 POINTER_BUTTON +3.23s BTN_LEFT (272) pressed, seat count: 1
event21 POINTER_BUTTON +3.40s BTN_LEFT (272) released, seat count: 0
event21 POINTER_BUTTON +4.59s BTN_MIDDLE (274) pressed, seat count: 1
event21 POINTER_BUTTON +4.77s BTN_MIDDLE (274) released, seat count: 0
event21 POINTER_BUTTON +5.78s BTN_RIGHT (273) pressed, seat count: 1
event21 POINTER_BUTTON +5.92s BTN_RIGHT (273) released, seat count: 0
event21 POINTER_BUTTON +7.22s BTN_EXTRA (276) pressed, seat count: 1 # side button, acts like "forward" in browser
event21 POINTER_BUTTON +7.36s BTN_EXTRA (276) released, seat count: 0
event21 POINTER_BUTTON +7.99s BTN_SIDE (275) pressed, seat count: 1 # side button, acts like "backward" in browser
event21 POINTER_BUTTON +8.16s BTN_SIDE (275) released, seat count: 0
event21 POINTER_AXIS +8.84s vert -15.00/-1* horiz 0.00/0 (wheel)
event21 POINTER_AXIS +9.71s vert 15.00/1* horiz 0.00/0 (wheel)
event21 POINTER_AXIS +10.18s vert 15.00/1* horiz 0.00/0 (wheel)
event21 POINTER_BUTTON +14.46s ??? (280) pressed, seat count: 1 # sensitivity + button
event21 POINTER_BUTTON +14.60s ??? (280) released, seat count: 0
event21 POINTER_BUTTON +15.09s ??? (281) pressed, seat count: 1 # sensitivity - button
event21 POINTER_BUTTON +15.23s ??? (281) released, seat count: 0
event21 POINTER_BUTTON +17.43s BTN_BACK (278) pressed, seat count: 1 # here problematic behavior starts
event21 POINTER_BUTTON +18.10s BTN_BACK (278) released, seat count: 0
event21 POINTER_BUTTON +18.10s BTN_TASK (279) pressed, seat count: 1
event21 POINTER_BUTTON +18.73s BTN_FORWARD (277) pressed, seat count: 1
event21 POINTER_BUTTON +18.73s BTN_TASK (279) released, seat count: 0
event21 POINTER_BUTTON +19.39s BTN_FORWARD (277) released, seat count: 0
event21 POINTER_BUTTON +19.39s BTN_BACK (278) pressed, seat count: 1
event21 POINTER_BUTTON +19.84s BTN_BACK (278) released, seat count: 0
event21 POINTER_BUTTON +19.84s BTN_TASK (279) pressed, seat count: 1
event21 POINTER_BUTTON +20.34s BTN_FORWARD (277) pressed, seat count: 1
event21 POINTER_BUTTON +20.34s BTN_TASK (279) released, seat count: 0
event21 POINTER_BUTTON +21.84s BTN_FORWARD (277) released, seat count: 0
event21 POINTER_BUTTON +21.84s BTN_BACK (278) pressed, seat count: 1
event21 POINTER_BUTTON +22.26s BTN_BACK (278) released, seat count: 0
event21 POINTER_BUTTON +22.26s BTN_TASK (279) pressed, seat count: 1
event21 POINTER_BUTTON +22.61s BTN_FORWARD (277) pressed, seat count: 1
event21 POINTER_BUTTON +22.61s BTN_TASK (279) released, seat count: 0
> lsusb | grep Mad
Bus 001 Device 017: ID 0738:1703 Mad Catz, Inc. Mad Catz R.A.T.3 Mouse
BTW, it seems strange that forward/backward in browser works with buttons called BTN_EXTRA & BTN_SIDE, while disabling BTN_BACK & BTN_FORWARD didn't affect this.
This quirk does the same thing as fix described in https://wiki.archlinux.org/index.php/Mad_Catz_Mouse where I create file in /etc/X11/xorg.conf.d
and tell xinput to disable problematic buttons.
P.S. Why the heck did developers do that?! They wanted their mice to be usable only with their special drivers?