libudev-zero icon indicating copy to clipboard operation
libudev-zero copied to clipboard

Wrong detection for 1ea7:0064 Mouse

Open mochaaP opened this issue 4 months ago • 2 comments

libinput record dump:

# libinput record
version: 1
ndevices: 1
libinput:
  version: "1.29.900"
  git: "unknown"
system:
  os: "buildroot:2014.11-git"
  kernel: "3.4.75-00001-g9cfbbed-dirty"
  dmi: "unknown"
devices:
- node: /dev/input/event3
  evdev:
    # Name: 2.4G Mouse
    # ID: bus 0x0003 (usb) vendor 0x1ea7 product 0x0064 version 0x0110
    # Supported Events:
    # Event type 0 (EV_SYN)
    # Event type 1 (EV_KEY)
    #   Event code 272 (BTN_LEFT)
    #   Event code 273 (BTN_RIGHT)
    #   Event code 274 (BTN_MIDDLE)
    #   Event code 275 (BTN_SIDE)
    #   Event code 276 (BTN_EXTRA)
    #   Event code 277 (BTN_FORWARD)
    #   Event code 278 (BTN_BACK)
    #   Event code 279 (BTN_TASK)
    # Event type 2 (EV_REL)
    #   Event code 0 (REL_X)
    #   Event code 1 (REL_Y)
    #   Event code 6 (REL_HWHEEL)
    #   Event code 8 (REL_WHEEL)
    # Event type 3 (EV_ABS)
    #   Event code 40 (ABS_MISC)
    #       Value         103
    #       Min             0
    #       Max           255
    #       Fuzz            0
    #       Flat            0
    #       Resolution      0
    #   Event code 41 ((null))
    #       Value         122
    #       Min             0
    #       Max           255
    #       Fuzz            0
    #       Flat            0
    #       Resolution      0
    #   Event code 42 ((null))
    #       Value          53
    #       Min             0
    #       Max           255
    #       Fuzz            0
    #       Flat            0
    #       Resolution      0
    #   Event code 43 ((null))
    #       Value         176
    #       Min             0
    #       Max           255
    #       Fuzz            0
    #       Flat            0
    #       Resolution      0
    #   Event code 44 ((null))
    #       Value          21
    #       Min             0
    #       Max           255
    #       Fuzz            0
    #       Flat            0
    #       Resolution      0
    #   Event code 45 ((null))
    #       Value           7
    #       Min             0
    #       Max           255
    #       Fuzz            0
    #       Flat            0
    #       Resolution      0
    #   Event code 46 (ABS_RESERVED)
    #       Value          17
    #       Min             0
    #       Max           255
    #       Fuzz            0
    #       Flat            0
    #       Resolution      0
    # Event type 4 (EV_MSC)
    #   Event code 4 (MSC_SCAN)
    # Properties:
    name: "2.4G Mouse"
    id: [3, 7847, 100, 272]
    codes:
      0: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] # EV_SYN
      1: [272, 273, 274, 275, 276, 277, 278, 279] # EV_KEY
      2: [0, 1, 6, 8] # EV_REL
      3: [40, 41, 42, 43, 44, 45, 46] # EV_ABS
      4: [4] # EV_MSC
    absinfo:
      40: [0, 255, 0, 0, 0]
      41: [0, 255, 0, 0, 0]
      42: [0, 255, 0, 0, 0]
      43: [0, 255, 0, 0, 0]
      44: [0, 255, 0, 0, 0]
      45: [0, 255, 0, 0, 0]
      46: [0, 255, 0, 0, 0]
    properties: []
  udev:
    properties:
    - ID_INPUT=1
    - DRIVER=usbhid
    virtual: false
  quirks:
  events:
  # Current time is 00:53:36
  - evdev:
    - [  0,      0,   2,   1,      -1] # EV_REL / REL_Y                    -1
    - [  0,     12,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +0ms
  - evdev:
    - [  0,   7975,   2,   0,       1] # EV_REL / REL_X                     1
    - [  0,   7981,   2,   1,       1] # EV_REL / REL_Y                     1
    - [  0,   7990,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +7ms
  - evdev:
    - [  0,  11974,   2,   0,       2] # EV_REL / REL_X                     2
    - [  0,  11979,   2,   1,       2] # EV_REL / REL_Y                     2
    - [  0,  11991,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0,  15970,   2,   0,       1] # EV_REL / REL_X                     1
    - [  0,  15976,   2,   1,       2] # EV_REL / REL_Y                     2
    - [  0,  15984,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0,  19972,   2,   0,       2] # EV_REL / REL_X                     2
    - [  0,  19978,   2,   1,       4] # EV_REL / REL_Y                     4
    - [  0,  19987,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0,  23970,   2,   0,       2] # EV_REL / REL_X                     2
    - [  0,  23976,   2,   1,       3] # EV_REL / REL_Y                     3
    - [  0,  23987,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0,  27973,   2,   0,       3] # EV_REL / REL_X                     3
    - [  0,  27979,   2,   1,       4] # EV_REL / REL_Y                     4
    - [  0,  27987,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0,  31970,   2,   0,       2] # EV_REL / REL_X                     2
    - [  0,  31977,   2,   1,       4] # EV_REL / REL_Y                     4
    - [  0,  31985,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0,  35973,   2,   0,       3] # EV_REL / REL_X                     3
    - [  0,  35980,   2,   1,       4] # EV_REL / REL_Y                     4
    - [  0,  35991,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0,  39972,   2,   0,       3] # EV_REL / REL_X                     3
    - [  0,  39977,   2,   1,       5] # EV_REL / REL_Y                     5
    - [  0,  39986,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0,  43986,   2,   0,       3] # EV_REL / REL_X                     3
    - [  0,  43993,   2,   1,       6] # EV_REL / REL_Y                     6
    - [  0,  44003,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +5ms
  - evdev:
    - [  0,  47977,   2,   0,       3] # EV_REL / REL_X                     3
    - [  0,  47986,   2,   1,       5] # EV_REL / REL_Y                     5
    - [  0,  47995,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +3ms
  - evdev:
    - [  0,  51972,   2,   0,       3] # EV_REL / REL_X                     3
    - [  0,  51978,   2,   1,       6] # EV_REL / REL_Y                     6
    - [  0,  51987,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0,  55972,   2,   0,       3] # EV_REL / REL_X                     3
    - [  0,  55977,   2,   1,       5] # EV_REL / REL_Y                     5
    - [  0,  55987,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0,  59973,   2,   0,       3] # EV_REL / REL_X                     3
    - [  0,  59979,   2,   1,       5] # EV_REL / REL_Y                     5
    - [  0,  59990,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0,  63971,   2,   0,       2] # EV_REL / REL_X                     2
    - [  0,  63978,   2,   1,       5] # EV_REL / REL_Y                     5
    - [  0,  63987,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0,  67974,   2,   0,       2] # EV_REL / REL_X                     2
    - [  0,  67979,   2,   1,       5] # EV_REL / REL_Y                     5
    - [  0,  67988,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0,  71967,   2,   0,       3] # EV_REL / REL_X                     3
    - [  0,  71973,   2,   1,       6] # EV_REL / REL_Y                     6
    - [  0,  71982,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0,  75971,   2,   0,       2] # EV_REL / REL_X                     2
    - [  0,  75978,   2,   1,       6] # EV_REL / REL_Y                     6
    - [  0,  75987,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0,  79971,   2,   0,       2] # EV_REL / REL_X                     2
    - [  0,  79977,   2,   1,       5] # EV_REL / REL_Y                     5
    - [  0,  79986,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 415971,   2,   0,       3] # EV_REL / REL_X                     3
    - [  0, 415976,   2,   1,       1] # EV_REL / REL_Y                     1
    - [  0, 415985,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +336ms
  - evdev:
    - [  0, 419976,   2,   0,       2] # EV_REL / REL_X                     2
    - [  0, 419981,   2,   1,       1] # EV_REL / REL_Y                     1
    - [  0, 419991,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 423970,   2,   0,       3] # EV_REL / REL_X                     3
    - [  0, 423976,   2,   1,       2] # EV_REL / REL_Y                     2
    - [  0, 423985,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 427974,   2,   0,       3] # EV_REL / REL_X                     3
    - [  0, 427979,   2,   1,       2] # EV_REL / REL_Y                     2
    - [  0, 427988,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 431971,   2,   0,       3] # EV_REL / REL_X                     3
    - [  0, 431977,   2,   1,       1] # EV_REL / REL_Y                     1
    - [  0, 431988,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 435975,   2,   0,       2] # EV_REL / REL_X                     2
    - [  0, 435981,   2,   1,       3] # EV_REL / REL_Y                     3
    - [  0, 435990,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 439971,   2,   0,       2] # EV_REL / REL_X                     2
    - [  0, 439975,   2,   1,       2] # EV_REL / REL_Y                     2
    - [  0, 439985,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 443974,   2,   0,       1] # EV_REL / REL_X                     1
    - [  0, 443980,   2,   1,       2] # EV_REL / REL_Y                     2
    - [  0, 443991,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 447971,   2,   0,       1] # EV_REL / REL_X                     1
    - [  0, 447977,   2,   1,       2] # EV_REL / REL_Y                     2
    - [  0, 447986,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 451974,   2,   0,       1] # EV_REL / REL_X                     1
    - [  0, 451980,   2,   1,       2] # EV_REL / REL_Y                     2
    - [  0, 451988,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 455971,   2,   0,       1] # EV_REL / REL_X                     1
    - [  0, 455977,   2,   1,       2] # EV_REL / REL_Y                     2
    - [  0, 455987,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 459974,   2,   0,       2] # EV_REL / REL_X                     2
    - [  0, 459978,   2,   1,       2] # EV_REL / REL_Y                     2
    - [  0, 459987,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 463995,   2,   0,       1] # EV_REL / REL_X                     1
    - [  0, 464001,   2,   1,       1] # EV_REL / REL_Y                     1
    - [  0, 464014,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +5ms
  - evdev:
    - [  0, 467999,   2,   1,       2] # EV_REL / REL_Y                     2
    - [  0, 468013,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 471987,   2,   0,       1] # EV_REL / REL_X                     1
    - [  0, 471994,   2,   1,       1] # EV_REL / REL_Y                     1
    - [  0, 472003,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 475976,   2,   0,       1] # EV_REL / REL_X                     1
    - [  0, 475988,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +3ms
  - evdev:
    - [  0, 479977,   2,   1,       1] # EV_REL / REL_Y                     1
    - [  0, 479992,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 483974,   2,   0,       1] # EV_REL / REL_X                     1
    - [  0, 483986,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  0, 495972,   2,   1,       1] # EV_REL / REL_Y                     1
    - [  0, 495984,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +12ms
  - evdev:
    - [  0, 499976,   2,   0,       1] # EV_REL / REL_X                     1
    - [  0, 499988,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 711989,   4,   4,      30] # EV_MSC / MSC_SCAN                 30 (obfuscated)
    - [  1, 711995,   1, 272,       1] # EV_KEY / BTN_LEFT                  1
    - [  1, 712018,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +1213ms
  - evdev:
    - [  1, 831994,   4,   4,      30] # EV_MSC / MSC_SCAN                 30 (obfuscated)
    - [  1, 832004,   1, 272,       0] # EV_KEY / BTN_LEFT                  0
    - [  1, 832024,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +120ms
  # Current time is 00:53:40
  - evdev:
    - [  2, 428002,   4,   4,      30] # EV_MSC / MSC_SCAN                 30 (obfuscated)
    - [  2, 428008,   1, 273,       1] # EV_KEY / BTN_RIGHT                 1
    - [  2, 428029,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +596ms
  - evdev:
    - [  2, 540003,   4,   4,      30] # EV_MSC / MSC_SCAN                 30 (obfuscated)
    - [  2, 540011,   1, 273,       0] # EV_KEY / BTN_RIGHT                 0
    - [  2, 540029,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +112ms
  - evdev:
    - [  3, 942026,   2,   8,      -1] # EV_REL / REL_WHEEL                -1
    - [  3, 942036,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +1402ms
  - evdev:
    - [  3, 990032,   2,   8,      -1] # EV_REL / REL_WHEEL                -1
    - [  3, 990045,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +48ms
  - evdev:
    - [  4, 582032,   2,   8,       1] # EV_REL / REL_WHEEL                 1
    - [  4, 582042,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +592ms
  - evdev:
    - [  4, 618039,   2,   8,       1] # EV_REL / REL_WHEEL                 1
    - [  4, 618049,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +36ms
  - evdev:
    - [  4, 622026,   2,   8,      -1] # EV_REL / REL_WHEEL                -1
    - [  4, 622037,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  # Current time is 00:53:45

This is only detected as ID_INPUT=1, not ID_INPUT_MOUSE=1 eudev can detect this normally:

# libinput record
version: 1
ndevices: 1
libinput:
  version: "1.28.1"
  git: "unknown"
system:
  os: "alpine:3.22.2"
  kernel: "3.4.75-00001-g9cfbbed-dirty"
  dmi: "unknown"
devices:
- node: /dev/input/event3
  evdev:
    # Name: 2.4G Mouse
    # ID: bus 0x0003 (usb) vendor 0x1ea7 product 0x0064 version 0x0110
    # Supported Events:
    # Event type 0 (EV_SYN)
    # Event type 1 (EV_KEY)
    #   Event code 272 (BTN_LEFT)
    #   Event code 273 (BTN_RIGHT)
    #   Event code 274 (BTN_MIDDLE)
    #   Event code 275 (BTN_SIDE)
    #   Event code 276 (BTN_EXTRA)
    #   Event code 277 (BTN_FORWARD)
    #   Event code 278 (BTN_BACK)
    #   Event code 279 (BTN_TASK)
    # Event type 2 (EV_REL)
    #   Event code 0 (REL_X)
    #   Event code 1 (REL_Y)
    #   Event code 6 (REL_HWHEEL)
    #   Event code 8 (REL_WHEEL)
    # Event type 3 (EV_ABS)
    #   Event code 40 (ABS_MISC)
    #       Value          32
    #       Min             0
    #       Max           255
    #       Fuzz            0
    #       Flat            0
    #       Resolution      0
    #   Event code 41 ((null))
    #       Value           4
    #       Min             0
    #       Max           255
    #       Fuzz            0
    #       Flat            0
    #       Resolution      0
    #   Event code 42 ((null))
    #       Value          67
    #       Min             0
    #       Max           255
    #       Fuzz            0
    #       Flat            0
    #       Resolution      0
    #   Event code 43 ((null))
    #       Value          70
    #       Min             0
    #       Max           255
    #       Fuzz            0
    #       Flat            0
    #       Resolution      0
    #   Event code 44 ((null))
    #       Value           1
    #       Min             0
    #       Max           255
    #       Fuzz            0
    #       Flat            0
    #       Resolution      0
    #   Event code 45 ((null))
    #       Value          42
    #       Min             0
    #       Max           255
    #       Fuzz            0
    #       Flat            0
    #       Resolution      0
    #   Event code 46 (ABS_RESERVED)
    #       Value          64
    #       Min             0
    #       Max           255
    #       Fuzz            0
    #       Flat            0
    #       Resolution      0
    # Event type 4 (EV_MSC)
    #   Event code 4 (MSC_SCAN)
    # Properties:
    name: "2.4G Mouse"
    id: [3, 7847, 100, 272]
    codes:
      0: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] # EV_SYN
      1: [272, 273, 274, 275, 276, 277, 278, 279] # EV_KEY
      2: [0, 1, 6, 8] # EV_REL
      3: [40, 41, 42, 43, 44, 45, 46] # EV_ABS
      4: [4] # EV_MSC
    absinfo:
      40: [0, 255, 0, 0, 0]
      41: [0, 255, 0, 0, 0]
      42: [0, 255, 0, 0, 0]
      43: [0, 255, 0, 0, 0]
      44: [0, 255, 0, 0, 0]
      45: [0, 255, 0, 0, 0]
      46: [0, 255, 0, 0, 0]
    properties: []
  udev:
    properties:
    - ID_INPUT=1
    - ID_INPUT_MOUSE=1
    - LIBINPUT_DEVICE_GROUP=3/1ea7/64:usb-sw-ehci-1
    - DRIVER=usbhid
  quirks:
  events:
  # Current time is 21:22:42

mochaaP avatar Oct 24 '25 20:10 mochaaP

kernel driver issue?

# libinput record
version: 1
ndevices: 2
libinput:
  version: "1.29.2"
  git: "unknown"
system:
  os: "fedora:44"
  kernel: "6.18.0-0.rc1.251015g9b332cece987e.18.fc44.x86_64"
  dmi: "unknown"
devices:
- node: /dev/input/event17
  evdev:
    # Name: 2.4G Mouse
    # ID: bus 0x0003 (usb) vendor 0x1ea7 product 0x0064 version 0x0110
    # Supported Events:
    # Event type 0 (EV_SYN)
    # Event type 1 (EV_KEY)
    #   Event code 272 (BTN_LEFT)
    #   Event code 273 (BTN_RIGHT)
    #   Event code 274 (BTN_MIDDLE)
    #   Event code 275 (BTN_SIDE)
    #   Event code 276 (BTN_EXTRA)
    #   Event code 277 (BTN_FORWARD)
    #   Event code 278 (BTN_BACK)
    #   Event code 279 (BTN_TASK)
    # Event type 2 (EV_REL)
    #   Event code 0 (REL_X)
    #   Event code 1 (REL_Y)
    #   Event code 6 (REL_HWHEEL)
    #   Event code 8 (REL_WHEEL)
    #   Event code 11 (REL_WHEEL_HI_RES)
    #   Event code 12 (REL_HWHEEL_HI_RES)
    # Event type 4 (EV_MSC)
    #   Event code 4 (MSC_SCAN)
    # Properties:
    name: "2.4G Mouse"
    id: [3, 7847, 100, 272]
    codes:
      0: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] # EV_SYN
      1: [272, 273, 274, 275, 276, 277, 278, 279] # EV_KEY
      2: [0, 1, 6, 8, 11, 12] # EV_REL
      4: [4] # EV_MSC
    properties: []
  hid: [
    0x06, 0xb5, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0xb5, 0x09, 0x02, 0x15, 0x00, 0x26, 0xff, 0x00, 
    0x75, 0x08, 0x95, 0x07, 0x81, 0x02, 0x09, 0x02, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 
    0x07, 0x91, 0x02, 0xc0, 0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x85, 0x02, 0x09, 0x01, 0xa1, 0x00, 
    0x05, 0x09, 0x19, 0x01, 0x29, 0x08, 0x15, 0x00, 0x25, 0x01, 0x95, 0x08, 0x75, 0x01, 0x81, 0x02, 
    0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 0x16, 0x01, 0xf8, 0x26, 0xff, 0x07, 0x75, 0x0c, 0x95, 0x02, 
    0x81, 0x06, 0x09, 0x38, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0x05, 0x0c, 
    0x0a, 0x38, 0x02, 0x95, 0x01, 0x81, 0x06, 0xc0, 0xc0
  ]
  udev:
    properties:
    - ID_INPUT=1
    - ID_INPUT_MOUSE=1
    - LIBINPUT_DEVICE_GROUP=3/1ea7/64:usb-0000:00:14.0-4
    - DRIVER=hid-generic
    virtual: false
  quirks:
  events:
  # Current time is 05:07:50
  - evdev:
    - [  1, 169900,   2,   0,      -1] # EV_REL / REL_X                    -1
    - [  1, 169900,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +6ms
  - evdev:
    - [  1, 173946,   2,   0,       1] # EV_REL / REL_X                     1
    - [  1, 173946,   2,   1,       2] # EV_REL / REL_Y                     2
    - [  1, 173946,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 177904,   2,   0,       2] # EV_REL / REL_X                     2
    - [  1, 177904,   2,   1,       4] # EV_REL / REL_Y                     4
    - [  1, 177904,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 181941,   2,   0,       3] # EV_REL / REL_X                     3
    - [  1, 181941,   2,   1,       6] # EV_REL / REL_Y                     6
    - [  1, 181941,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 185952,   2,   0,       5] # EV_REL / REL_X                     5
    - [  1, 185952,   2,   1,       8] # EV_REL / REL_Y                     8
    - [  1, 185952,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 189953,   2,   0,       4] # EV_REL / REL_X                     4
    - [  1, 189953,   2,   1,       8] # EV_REL / REL_Y                     8
    - [  1, 189953,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 193974,   2,   0,       4] # EV_REL / REL_X                     4
    - [  1, 193974,   2,   1,       7] # EV_REL / REL_Y                     7
    - [  1, 193974,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 197946,   2,   0,       4] # EV_REL / REL_X                     4
    - [  1, 197946,   2,   1,       6] # EV_REL / REL_Y                     6
    - [  1, 197946,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 201949,   2,   0,       3] # EV_REL / REL_X                     3
    - [  1, 201949,   2,   1,       7] # EV_REL / REL_Y                     7
    - [  1, 201949,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 205942,   2,   0,       3] # EV_REL / REL_X                     3
    - [  1, 205942,   2,   1,       6] # EV_REL / REL_Y                     6
    - [  1, 205942,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 209899,   2,   0,       3] # EV_REL / REL_X                     3
    - [  1, 209899,   2,   1,       7] # EV_REL / REL_Y                     7
    - [  1, 209899,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 213940,   2,   0,       3] # EV_REL / REL_X                     3
    - [  1, 213940,   2,   1,       5] # EV_REL / REL_Y                     5
    - [  1, 213940,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 217941,   2,   0,       2] # EV_REL / REL_X                     2
    - [  1, 217941,   2,   1,       6] # EV_REL / REL_Y                     6
    - [  1, 217941,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 221904,   2,   0,       2] # EV_REL / REL_X                     2
    - [  1, 221904,   2,   1,       5] # EV_REL / REL_Y                     5
    - [  1, 221904,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 225932,   2,   0,       2] # EV_REL / REL_X                     2
    - [  1, 225932,   2,   1,       5] # EV_REL / REL_Y                     5
    - [  1, 225932,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 229941,   2,   0,       2] # EV_REL / REL_X                     2
    - [  1, 229941,   2,   1,       5] # EV_REL / REL_Y                     5
    - [  1, 229941,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 233901,   2,   0,       1] # EV_REL / REL_X                     1
    - [  1, 233901,   2,   1,       5] # EV_REL / REL_Y                     5
    - [  1, 233901,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 237911,   2,   0,       1] # EV_REL / REL_X                     1
    - [  1, 237911,   2,   1,       4] # EV_REL / REL_Y                     4
    - [  1, 237911,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 241952,   2,   0,       1] # EV_REL / REL_X                     1
    - [  1, 241952,   2,   1,       4] # EV_REL / REL_Y                     4
    - [  1, 241952,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 245961,   2,   1,       4] # EV_REL / REL_Y                     4
    - [  1, 245961,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 249929,   2,   1,       3] # EV_REL / REL_Y                     3
    - [  1, 249929,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 253910,   2,   0,       1] # EV_REL / REL_X                     1
    - [  1, 253910,   2,   1,       4] # EV_REL / REL_Y                     4
    - [  1, 253910,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 257957,   2,   0,      -1] # EV_REL / REL_X                    -1
    - [  1, 257957,   2,   1,       4] # EV_REL / REL_Y                     4
    - [  1, 257957,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 261946,   2,   1,       3] # EV_REL / REL_Y                     3
    - [  1, 261946,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 265953,   2,   0,      -1] # EV_REL / REL_X                    -1
    - [  1, 265953,   2,   1,       4] # EV_REL / REL_Y                     4
    - [  1, 265953,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 269958,   2,   0,      -1] # EV_REL / REL_X                    -1
    - [  1, 269958,   2,   1,       4] # EV_REL / REL_Y                     4
    - [  1, 269958,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 274003,   2,   1,       4] # EV_REL / REL_Y                     4
    - [  1, 274003,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +5ms
  - evdev:
    - [  1, 277959,   2,   0,      -2] # EV_REL / REL_X                    -2
    - [  1, 277959,   2,   1,       3] # EV_REL / REL_Y                     3
    - [  1, 277959,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +3ms
  - evdev:
    - [  1, 281956,   2,   0,      -1] # EV_REL / REL_X                    -1
    - [  1, 281956,   2,   1,       4] # EV_REL / REL_Y                     4
    - [  1, 281956,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 285952,   2,   0,      -1] # EV_REL / REL_X                    -1
    - [  1, 285952,   2,   1,       4] # EV_REL / REL_Y                     4
    - [  1, 285952,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 289945,   2,   0,      -1] # EV_REL / REL_X                    -1
    - [  1, 289945,   2,   1,       4] # EV_REL / REL_Y                     4
    - [  1, 289945,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 293959,   2,   0,      -1] # EV_REL / REL_X                    -1
    - [  1, 293959,   2,   1,       5] # EV_REL / REL_Y                     5
    - [  1, 293959,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 297958,   2,   0,      -2] # EV_REL / REL_X                    -2
    - [  1, 297958,   2,   1,       4] # EV_REL / REL_Y                     4
    - [  1, 297958,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 301957,   2,   0,      -2] # EV_REL / REL_X                    -2
    - [  1, 301957,   2,   1,       4] # EV_REL / REL_Y                     4
    - [  1, 301957,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 305957,   2,   0,      -2] # EV_REL / REL_X                    -2
    - [  1, 305957,   2,   1,       4] # EV_REL / REL_Y                     4
    - [  1, 305957,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 309959,   2,   0,      -3] # EV_REL / REL_X                    -3
    - [  1, 309959,   2,   1,       4] # EV_REL / REL_Y                     4
    - [  1, 309959,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 313950,   2,   0,      -2] # EV_REL / REL_X                    -2
    - [  1, 313950,   2,   1,       5] # EV_REL / REL_Y                     5
    - [  1, 313950,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 317946,   2,   0,      -3] # EV_REL / REL_X                    -3
    - [  1, 317946,   2,   1,       5] # EV_REL / REL_Y                     5
    - [  1, 317946,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 321967,   2,   0,      -3] # EV_REL / REL_X                    -3
    - [  1, 321967,   2,   1,       5] # EV_REL / REL_Y                     5
    - [  1, 321967,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 325959,   2,   0,      -3] # EV_REL / REL_X                    -3
    - [  1, 325959,   2,   1,       5] # EV_REL / REL_Y                     5
    - [  1, 325959,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 329959,   2,   0,      -3] # EV_REL / REL_X                    -3
    - [  1, 329959,   2,   1,       5] # EV_REL / REL_Y                     5
    - [  1, 329959,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 333954,   2,   0,      -4] # EV_REL / REL_X                    -4
    - [  1, 333954,   2,   1,       5] # EV_REL / REL_Y                     5
    - [  1, 333954,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 337947,   2,   0,      -5] # EV_REL / REL_X                    -5
    - [  1, 337947,   2,   1,       5] # EV_REL / REL_Y                     5
    - [  1, 337947,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 341957,   2,   0,      -5] # EV_REL / REL_X                    -5
    - [  1, 341957,   2,   1,       5] # EV_REL / REL_Y                     5
    - [  1, 341957,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 345944,   2,   0,      -5] # EV_REL / REL_X                    -5
    - [  1, 345944,   2,   1,       5] # EV_REL / REL_Y                     5
    - [  1, 345944,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 349946,   2,   0,      -6] # EV_REL / REL_X                    -6
    - [  1, 349946,   2,   1,       5] # EV_REL / REL_Y                     5
    - [  1, 349946,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 353959,   2,   0,      -5] # EV_REL / REL_X                    -5
    - [  1, 353959,   2,   1,       5] # EV_REL / REL_Y                     5
    - [  1, 353959,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 357964,   2,   0,      -6] # EV_REL / REL_X                    -6
    - [  1, 357964,   2,   1,       5] # EV_REL / REL_Y                     5
    - [  1, 357964,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 361979,   2,   0,      -6] # EV_REL / REL_X                    -6
    - [  1, 361979,   2,   1,       4] # EV_REL / REL_Y                     4
    - [  1, 361979,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 365991,   2,   0,      -7] # EV_REL / REL_X                    -7
    - [  1, 365991,   2,   1,       4] # EV_REL / REL_Y                     4
    - [  1, 365991,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 369952,   2,   0,      -6] # EV_REL / REL_X                    -6
    - [  1, 369952,   2,   1,       5] # EV_REL / REL_Y                     5
    - [  1, 369952,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 373955,   2,   0,      -7] # EV_REL / REL_X                    -7
    - [  1, 373955,   2,   1,       4] # EV_REL / REL_Y                     4
    - [  1, 373955,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 377949,   2,   0,      -7] # EV_REL / REL_X                    -7
    - [  1, 377949,   2,   1,       4] # EV_REL / REL_Y                     4
    - [  1, 377949,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 381946,   2,   0,      -7] # EV_REL / REL_X                    -7
    - [  1, 381946,   2,   1,       4] # EV_REL / REL_Y                     4
    - [  1, 381946,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 385969,   2,   0,      -7] # EV_REL / REL_X                    -7
    - [  1, 385969,   2,   1,       5] # EV_REL / REL_Y                     5
    - [  1, 385969,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 389963,   2,   0,      -9] # EV_REL / REL_X                    -9
    - [  1, 389963,   2,   1,       3] # EV_REL / REL_Y                     3
    - [  1, 389963,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 393996,   2,   0,      -8] # EV_REL / REL_X                    -8
    - [  1, 393996,   2,   1,       3] # EV_REL / REL_Y                     3
    - [  1, 393996,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 397964,   2,   0,      -9] # EV_REL / REL_X                    -9
    - [  1, 397964,   2,   1,       2] # EV_REL / REL_Y                     2
    - [  1, 397964,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 401946,   2,   0,     -10] # EV_REL / REL_X                   -10
    - [  1, 401946,   2,   1,       2] # EV_REL / REL_Y                     2
    - [  1, 401946,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 405953,   2,   0,      -9] # EV_REL / REL_X                    -9
    - [  1, 405953,   2,   1,       2] # EV_REL / REL_Y                     2
    - [  1, 405953,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 409951,   2,   0,      -9] # EV_REL / REL_X                    -9
    - [  1, 409951,   2,   1,       2] # EV_REL / REL_Y                     2
    - [  1, 409951,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 413953,   2,   0,      -9] # EV_REL / REL_X                    -9
    - [  1, 413953,   2,   1,       2] # EV_REL / REL_Y                     2
    - [  1, 413953,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 417955,   2,   0,      -9] # EV_REL / REL_X                    -9
    - [  1, 417955,   2,   1,       1] # EV_REL / REL_Y                     1
    - [  1, 417955,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 421957,   2,   0,      -8] # EV_REL / REL_X                    -8
    - [  1, 421957,   2,   1,       1] # EV_REL / REL_Y                     1
    - [  1, 421957,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 425963,   2,   0,      -9] # EV_REL / REL_X                    -9
    - [  1, 425963,   2,   1,       1] # EV_REL / REL_Y                     1
    - [  1, 425963,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 430027,   2,   0,     -10] # EV_REL / REL_X                   -10
    - [  1, 430027,   2,   1,      -1] # EV_REL / REL_Y                    -1
    - [  1, 430027,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +5ms
  - evdev:
    - [  1, 433908,   2,   0,      -8] # EV_REL / REL_X                    -8
    - [  1, 433908,   2,   1,      -1] # EV_REL / REL_Y                    -1
    - [  1, 433908,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +3ms
  - evdev:
    - [  1, 437945,   2,   0,     -10] # EV_REL / REL_X                   -10
    - [  1, 437945,   2,   1,      -2] # EV_REL / REL_Y                    -2
    - [  1, 437945,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 441954,   2,   0,      -9] # EV_REL / REL_X                    -9
    - [  1, 441954,   2,   1,      -3] # EV_REL / REL_Y                    -3
    - [  1, 441954,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 445943,   2,   0,      -8] # EV_REL / REL_X                    -8
    - [  1, 445943,   2,   1,      -3] # EV_REL / REL_Y                    -3
    - [  1, 445943,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 449920,   2,   0,      -7] # EV_REL / REL_X                    -7
    - [  1, 449920,   2,   1,      -3] # EV_REL / REL_Y                    -3
    - [  1, 449920,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 453955,   2,   0,      -7] # EV_REL / REL_X                    -7
    - [  1, 453955,   2,   1,      -3] # EV_REL / REL_Y                    -3
    - [  1, 453955,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 457963,   2,   0,      -6] # EV_REL / REL_X                    -6
    - [  1, 457963,   2,   1,      -4] # EV_REL / REL_Y                    -4
    - [  1, 457963,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 462035,   2,   0,      -6] # EV_REL / REL_X                    -6
    - [  1, 462035,   2,   1,      -4] # EV_REL / REL_Y                    -4
    - [  1, 462035,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +5ms
  - evdev:
    - [  1, 466050,   2,   0,      -6] # EV_REL / REL_X                    -6
    - [  1, 466050,   2,   1,      -4] # EV_REL / REL_Y                    -4
    - [  1, 466050,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 469912,   2,   0,      -4] # EV_REL / REL_X                    -4
    - [  1, 469912,   2,   1,      -5] # EV_REL / REL_Y                    -5
    - [  1, 469912,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +3ms
  - evdev:
    - [  1, 473960,   2,   0,      -4] # EV_REL / REL_X                    -4
    - [  1, 473960,   2,   1,      -4] # EV_REL / REL_Y                    -4
    - [  1, 473960,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 477966,   2,   0,      -4] # EV_REL / REL_X                    -4
    - [  1, 477966,   2,   1,      -4] # EV_REL / REL_Y                    -4
    - [  1, 477966,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 481948,   2,   0,      -3] # EV_REL / REL_X                    -3
    - [  1, 481948,   2,   1,      -4] # EV_REL / REL_Y                    -4
    - [  1, 481948,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 485963,   2,   0,      -2] # EV_REL / REL_X                    -2
    - [  1, 485963,   2,   1,      -4] # EV_REL / REL_Y                    -4
    - [  1, 485963,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 489961,   2,   0,      -2] # EV_REL / REL_X                    -2
    - [  1, 489961,   2,   1,      -4] # EV_REL / REL_Y                    -4
    - [  1, 489961,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 493971,   2,   0,      -1] # EV_REL / REL_X                    -1
    - [  1, 493971,   2,   1,      -4] # EV_REL / REL_Y                    -4
    - [  1, 493971,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 497960,   2,   0,      -1] # EV_REL / REL_X                    -1
    - [  1, 497960,   2,   1,      -4] # EV_REL / REL_Y                    -4
    - [  1, 497960,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 501912,   2,   0,      -1] # EV_REL / REL_X                    -1
    - [  1, 501912,   2,   1,      -4] # EV_REL / REL_Y                    -4
    - [  1, 501912,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 505960,   2,   1,      -4] # EV_REL / REL_Y                    -4
    - [  1, 505960,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 509946,   2,   0,      -1] # EV_REL / REL_X                    -1
    - [  1, 509946,   2,   1,      -5] # EV_REL / REL_Y                    -5
    - [  1, 509946,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 513932,   2,   0,      -1] # EV_REL / REL_X                    -1
    - [  1, 513932,   2,   1,      -4] # EV_REL / REL_Y                    -4
    - [  1, 513932,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 517944,   2,   0,      -1] # EV_REL / REL_X                    -1
    - [  1, 517944,   2,   1,      -4] # EV_REL / REL_Y                    -4
    - [  1, 517944,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 521913,   2,   1,      -4] # EV_REL / REL_Y                    -4
    - [  1, 521913,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 525951,   2,   0,       1] # EV_REL / REL_X                     1
    - [  1, 525951,   2,   1,      -4] # EV_REL / REL_Y                    -4
    - [  1, 525951,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 529947,   2,   1,      -3] # EV_REL / REL_Y                    -3
    - [  1, 529947,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 533931,   2,   0,       1] # EV_REL / REL_X                     1
    - [  1, 533931,   2,   1,      -2] # EV_REL / REL_Y                    -2
    - [  1, 533931,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 537936,   2,   0,       2] # EV_REL / REL_X                     2
    - [  1, 537936,   2,   1,      -3] # EV_REL / REL_Y                    -3
    - [  1, 537936,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 541942,   2,   0,       1] # EV_REL / REL_X                     1
    - [  1, 541942,   2,   1,      -3] # EV_REL / REL_Y                    -3
    - [  1, 541942,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 545933,   2,   0,       1] # EV_REL / REL_X                     1
    - [  1, 545933,   2,   1,      -3] # EV_REL / REL_Y                    -3
    - [  1, 545933,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 549930,   2,   0,       2] # EV_REL / REL_X                     2
    - [  1, 549930,   2,   1,      -3] # EV_REL / REL_Y                    -3
    - [  1, 549930,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 553941,   2,   0,       1] # EV_REL / REL_X                     1
    - [  1, 553941,   2,   1,      -2] # EV_REL / REL_Y                    -2
    - [  1, 553941,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 557941,   2,   0,       2] # EV_REL / REL_X                     2
    - [  1, 557941,   2,   1,      -2] # EV_REL / REL_Y                    -2
    - [  1, 557941,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 561939,   2,   0,       1] # EV_REL / REL_X                     1
    - [  1, 561939,   2,   1,      -2] # EV_REL / REL_Y                    -2
    - [  1, 561939,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 565939,   2,   0,       2] # EV_REL / REL_X                     2
    - [  1, 565939,   2,   1,      -2] # EV_REL / REL_Y                    -2
    - [  1, 565939,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 569931,   2,   0,       1] # EV_REL / REL_X                     1
    - [  1, 569931,   2,   1,      -3] # EV_REL / REL_Y                    -3
    - [  1, 569931,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 573941,   2,   0,       2] # EV_REL / REL_X                     2
    - [  1, 573941,   2,   1,      -1] # EV_REL / REL_Y                    -1
    - [  1, 573941,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 577939,   2,   0,       1] # EV_REL / REL_X                     1
    - [  1, 577939,   2,   1,      -3] # EV_REL / REL_Y                    -3
    - [  1, 577939,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 581933,   2,   0,       1] # EV_REL / REL_X                     1
    - [  1, 581933,   2,   1,      -2] # EV_REL / REL_Y                    -2
    - [  1, 581933,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 585931,   2,   0,       2] # EV_REL / REL_X                     2
    - [  1, 585931,   2,   1,      -2] # EV_REL / REL_Y                    -2
    - [  1, 585931,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 589911,   2,   0,       2] # EV_REL / REL_X                     2
    - [  1, 589911,   2,   1,      -2] # EV_REL / REL_Y                    -2
    - [  1, 589911,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 593921,   2,   0,       1] # EV_REL / REL_X                     1
    - [  1, 593921,   2,   1,      -1] # EV_REL / REL_Y                    -1
    - [  1, 593921,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 597901,   2,   0,       1] # EV_REL / REL_X                     1
    - [  1, 597901,   2,   1,      -1] # EV_REL / REL_Y                    -1
    - [  1, 597901,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 601895,   2,   0,       1] # EV_REL / REL_X                     1
    - [  1, 601895,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 605912,   2,   1,      -1] # EV_REL / REL_Y                    -1
    - [  1, 605912,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +4ms
  - evdev:
    - [  1, 649909,   2,   0,       1] # EV_REL / REL_X                     1
    - [  1, 649909,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +44ms
  - evdev:
    - [  1, 657918,   2,   0,      -1] # EV_REL / REL_X                    -1
    - [  1, 657918,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +8ms
  - evdev:
    - [  1, 689957,   2,   0,       1] # EV_REL / REL_X                     1
    - [  1, 689957,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +32ms
  - evdev:
    - [  1, 713949,   2,   0,      -1] # EV_REL / REL_X                    -1
    - [  1, 713949,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +24ms
  - evdev:
    - [  1, 733910,   2,   0,       1] # EV_REL / REL_X                     1
    - [  1, 733910,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +20ms
  - evdev:
    - [  1, 749907,   2,   0,      -1] # EV_REL / REL_X                    -1
    - [  1, 749907,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +16ms
  - evdev:
    - [  1, 765905,   2,   0,       1] # EV_REL / REL_X                     1
    - [  1, 765905,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +16ms
  - evdev:
    - [  1, 803945,   2,   0,      -1] # EV_REL / REL_X                    -1
    - [  1, 803945,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +38ms
  - evdev:
    - [  1, 823950,   2,   0,       1] # EV_REL / REL_X                     1
    - [  1, 823950,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +20ms
  - evdev:
    - [  1, 895949,   2,   0,      -1] # EV_REL / REL_X                    -1
    - [  1, 895949,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +72ms
  - evdev:
    - [  1, 975943,   2,   0,       1] # EV_REL / REL_X                     1
    - [  1, 975943,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +80ms
  - evdev:
    - [  2,  55955,   2,   0,      -1] # EV_REL / REL_X                    -1
    - [  2,  55955,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +80ms
  - evdev:
    - [  2,  63953,   2,   1,      -1] # EV_REL / REL_Y                    -1
    - [  2,  63953,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +8ms
  - evdev:
    - [  2,  71947,   2,   0,       1] # EV_REL / REL_X                     1
    - [  2,  71947,   2,   1,      -1] # EV_REL / REL_Y                    -1
    - [  2,  71947,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +8ms
  - evdev:
    - [  2, 775937,   4,   4,      30] # EV_MSC / MSC_SCAN                 30 (obfuscated)
    - [  2, 775937,   1, 272,       1] # EV_KEY / BTN_LEFT                  1
    - [  2, 775937,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +704ms
  - evdev:
    - [  2, 887953,   4,   4,      30] # EV_MSC / MSC_SCAN                 30 (obfuscated)
    - [  2, 887953,   1, 272,       0] # EV_KEY / BTN_LEFT                  0
    - [  2, 887953,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +112ms
  - evdev:
    - [  3, 463936,   2,   8,      -1] # EV_REL / REL_WHEEL                -1
    - [  3, 463936,   2,  11,    -120] # EV_REL / REL_WHEEL_HI_RES       -120
    - [  3, 463936,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +576ms
  - evdev:
    - [  3, 527953,   2,   8,      -1] # EV_REL / REL_WHEEL                -1
    - [  3, 527953,   2,  11,    -120] # EV_REL / REL_WHEEL_HI_RES       -120
    - [  3, 527953,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +64ms
  - evdev:
    - [  3, 575898,   2,   8,      -1] # EV_REL / REL_WHEEL                -1
    - [  3, 575898,   2,  11,    -120] # EV_REL / REL_WHEEL_HI_RES       -120
    - [  3, 575898,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +48ms
  - evdev:
    - [  3, 631989,   2,   8,      -1] # EV_REL / REL_WHEEL                -1
    - [  3, 631989,   2,  11,    -120] # EV_REL / REL_WHEEL_HI_RES       -120
    - [  3, 631989,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +56ms
  - evdev:
    - [  3, 867926,   2,   8,       1] # EV_REL / REL_WHEEL                 1
    - [  3, 867926,   2,  11,     120] # EV_REL / REL_WHEEL_HI_RES        120
    - [  3, 867926,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +236ms
  - evdev:
    - [  3, 903930,   2,   8,       1] # EV_REL / REL_WHEEL                 1
    - [  3, 903930,   2,  11,     120] # EV_REL / REL_WHEEL_HI_RES        120
    - [  3, 903930,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +36ms
  - evdev:
    - [  4,  35925,   2,   8,       1] # EV_REL / REL_WHEEL                 1
    - [  4,  35925,   2,  11,     120] # EV_REL / REL_WHEEL_HI_RES        120
    - [  4,  35925,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +132ms
  # Current time is 05:07:55
  - evdev:
    - [  6, 515865,   4,   4,      30] # EV_MSC / MSC_SCAN                 30 (obfuscated)
    - [  6, 515865,   1, 273,       1] # EV_KEY / BTN_RIGHT                 1
    - [  6, 515865,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +2480ms
  - evdev:
    - [  6, 631881,   4,   4,      30] # EV_MSC / MSC_SCAN                 30 (obfuscated)
    - [  6, 631881,   1, 273,       0] # EV_KEY / BTN_RIGHT                 0
    - [  6, 631881,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +116ms
  # Current time is 05:08:00
- node: /dev/input/event16
  evdev:
    # Name: 2.4G Mouse
    # ID: bus 0x0003 (usb) vendor 0x1ea7 product 0x0064 version 0x0110
    # Supported Events:
    # Event type 0 (EV_SYN)
    # Event type 3 (EV_ABS)
    #   Event code 40 (ABS_MISC)
    #       Value         103
    #       Min             0
    #       Max           255
    #       Fuzz            0
    #       Flat            0
    #       Resolution      0
    # Properties:
    name: "2.4G Mouse"
    id: [3, 7847, 100, 272]
    codes:
      0: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] # EV_SYN
      3: [40] # EV_ABS
    absinfo:
      40: [0, 255, 0, 0, 0]
    properties: []
  hid: [
    0x06, 0xb5, 0xff, 0x09, 0x01, 0xa1, 0x01, 0x85, 0xb5, 0x09, 0x02, 0x15, 0x00, 0x26, 0xff, 0x00, 
    0x75, 0x08, 0x95, 0x07, 0x81, 0x02, 0x09, 0x02, 0x15, 0x00, 0x26, 0xff, 0x00, 0x75, 0x08, 0x95, 
    0x07, 0x91, 0x02, 0xc0, 0x05, 0x01, 0x09, 0x02, 0xa1, 0x01, 0x85, 0x02, 0x09, 0x01, 0xa1, 0x00, 
    0x05, 0x09, 0x19, 0x01, 0x29, 0x08, 0x15, 0x00, 0x25, 0x01, 0x95, 0x08, 0x75, 0x01, 0x81, 0x02, 
    0x05, 0x01, 0x09, 0x30, 0x09, 0x31, 0x16, 0x01, 0xf8, 0x26, 0xff, 0x07, 0x75, 0x0c, 0x95, 0x02, 
    0x81, 0x06, 0x09, 0x38, 0x15, 0x81, 0x25, 0x7f, 0x75, 0x08, 0x95, 0x01, 0x81, 0x06, 0x05, 0x0c, 
    0x0a, 0x38, 0x02, 0x95, 0x01, 0x81, 0x06, 0xc0, 0xc0
  ]
  udev:
    properties:
    - ID_INPUT=1
    - LIBINPUT_DEVICE_GROUP=3/1ea7/64:usb-0000:00:14.0-4
    - DRIVER=hid-generic
    virtual: false
  quirks:
  events:
  # Current time is 05:07:50
  - evdev:
    - [  1, 163967,   3,  40,      32] # EV_ABS / ABS_MISC                 32 (-71)
    - [  1, 163967,   0,   0,       0] # ------------ SYN_REPORT (0) ---------- +1163ms
  # Current time is 05:07:55
  # Current time is 05:08:00

mochaaP avatar Oct 24 '25 21:10 mochaaP

Fix:

Change https://github.com/illiliti/libudev-zero/blob/master/udev_device.c#L491 else if to if

mochaaP avatar Oct 27 '25 03:10 mochaaP