diff --git a/meson.build b/meson.build index 99a5b6bb..f80932e4 100644 --- a/meson.build +++ b/meson.build @@ -318,6 +318,7 @@ quirks_data = [ 'quirks/30-vendor-ibm.quirks', 'quirks/30-vendor-kensington.quirks', 'quirks/30-vendor-logitech.quirks', + 'quirks/30-vendor-madcatz.quirks', 'quirks/30-vendor-microsoft.quirks', 'quirks/30-vendor-razer.quirks', 'quirks/30-vendor-synaptics.quirks', diff --git a/quirks/30-vendor-madcatz.quirks b/quirks/30-vendor-madcatz.quirks new file mode 100644 index 00000000..14b2589a --- /dev/null +++ b/quirks/30-vendor-madcatz.quirks @@ -0,0 +1,24 @@ +# Do not edit this file, it will be overwritten on update + +# The Madcatz RAT3 has a mode button that cycles through event codes. +# On press, we get a release for the current mode and a press for the +# next mode: +# -event21 DEVICE_ADDED Madcatz Mad Catz R.A.T.3 Mouse seat0 default group1 cap:p left scroll-nat scroll-button +# event21 POINTER_BUTTON +2.35s BTN_BACK (278) pressed, seat count: 1 +# event21 POINTER_BUTTON +3.08s BTN_BACK (278) released, seat count: 0 +# event21 POINTER_BUTTON +3.08s BTN_TASK (279) pressed, seat count: 1 +# event21 POINTER_BUTTON +6.69s BTN_FORWARD (277) pressed, seat count: 1 +# event21 POINTER_BUTTON +6.69s BTN_TASK (279) released, seat count: 0 +# event21 POINTER_BUTTON +7.32s BTN_FORWARD (277) released, seat count: 0 +# event21 POINTER_BUTTON +7.32s BTN_BACK (278) pressed, seat count: 1 +# event21 POINTER_BUTTON +7.84s BTN_BACK (278) released, seat count: 0 +# event21 POINTER_BUTTON +7.84s BTN_TASK (279) pressed, seat count: 1 +# +# Disable the event codes to avoid stuck buttons. +[Madcatz RAT3] +MatchUdevType=mouse +MatchBus=usb +MatchVendor=0x0738 +MatchProduct=0x1703 +# EV_KEY 0x115, 0x116, 0x117 +AttrEventCodeDisable=EV_KEY:0x115;EV_KEY:0x116;EV_KEY:0x117