Browse Source

Merge tag 'v3.2.7'

tags/devuan/3.2.7-2
Daniel Reurich 2 years ago
parent
commit
0f3aafaeb5
34 changed files with 120244 additions and 55287 deletions
  1. +2
    -0
      .gitignore
  2. +7
    -5
      configure.ac
  3. +61469
    -54587
      hwdb/20-OUI.hwdb
  4. +76
    -1
      hwdb/20-acpi-vendor.hwdb
  5. +34
    -1
      hwdb/20-pci-classes.hwdb
  6. +3859
    -505
      hwdb/20-pci-vendor-model.hwdb
  7. +12
    -12
      hwdb/20-sdio-vendor-model.hwdb
  8. +1181
    -41
      hwdb/20-usb-vendor-model.hwdb
  9. +57
    -0
      hwdb/20-vmbus-class.hwdb
  10. +108
    -7
      hwdb/60-evdev.hwdb
  11. +68
    -0
      hwdb/60-input-id.hwdb
  12. +167
    -25
      hwdb/60-keyboard.hwdb
  13. +252
    -6
      hwdb/60-sensor.hwdb
  14. +50
    -0
      hwdb/70-joystick.hwdb
  15. +38
    -1
      hwdb/70-mouse.hwdb
  16. +13
    -2
      hwdb/70-pointingstick.hwdb
  17. +1
    -13
      hwdb/70-touchpad.hwdb
  18. +1
    -0
      hwdb/Makefile.am
  19. +246
    -0
      hwdb/parse_hwdb.py
  20. +30421
    -0
      hwdb/pci.ids
  21. +21301
    -0
      hwdb/usb.ids
  22. +575
    -0
      man/udev.7
  23. +123
    -0
      man/udevd.8
  24. +7
    -7
      man/udevd.xml
  25. +10
    -3
      rules/50-udev-default.rules
  26. +8
    -0
      rules/60-input-id.rules
  27. +2
    -2
      rules/60-persistent-input.rules
  28. +9
    -2
      rules/60-persistent-storage.rules
  29. +3
    -0
      rules/64-btrfs.rules.in
  30. +12
    -0
      rules/70-joystick.rules
  31. +1
    -1
      rules/80-drivers.rules
  32. +5
    -0
      rules/Makefile.am
  33. +123
    -66
      src/udev/udev-builtin-input_id.c
  34. +3
    -0
      src/udev/udevadm-monitor.c

+ 2
- 0
.gitignore View File

@@ -31,6 +31,8 @@ m4/lt~obsolete.m4

rule_generator/write_net_rules

rules/64-btrfs.rules

src/ata_id/ata_id
src/cdrom_id/cdrom_id
src/collect/collect


+ 7
- 5
configure.ac View File

@@ -1,5 +1,5 @@
AC_PREREQ([2.68])
AC_INIT([eudev],[3.2.5],[https://github.com/gentoo/eudev/issues])
AC_INIT([eudev],[3.2.7],[https://github.com/gentoo/eudev/issues])
AC_SUBST(UDEV_VERSION, 220)
AC_CONFIG_SRCDIR([src/udev/udevd.c])

@@ -165,8 +165,8 @@ AS_IF(
)

# Configured paths
AC_SUBST([rootprefix], [$with_rootprefix])
AC_SUBST([rootlibdir], [$with_rootlibdir])
AC_SUBST([rootprefix], [${with_rootprefix}])
AC_SUBST([rootlibdir], [${with_rootlibdir}])
AC_SUBST([rootlibexecdir], [${with_rootlibexecdir}])
AC_SUBST([udevlibexecdir], [${rootlibexecdir}])

@@ -293,8 +293,8 @@ AM_CONDITIONAL([ENABLE_RULE_GENERATOR], [test "x$enable_rule_generator" = xyes])
# mtd_probe - autoloads FTL module for mtd devices
# ------------------------------------------------------------------------------
AC_ARG_ENABLE([mtd_probe],
AS_HELP_STRING([--disable-mtd_probe], [disable MTD support]),
[], [enable_mtd_probe=yes])
AS_HELP_STRING([--disable-mtd_probe], [disable MTD support]),
[], [enable_mtd_probe=yes])
AM_CONDITIONAL([ENABLE_MTD_PROBE], [test "x$enable_mtd_probe" = xyes])

# ------------------------------------------------------------------------------
@@ -305,6 +305,7 @@ AC_CONFIG_FILES([Makefile
rule_generator/Makefile
rule_generator/write_net_rules
rules/Makefile
rules/64-btrfs.rules
src/Makefile
src/ata_id/Makefile
src/cdrom_id/Makefile
@@ -329,6 +330,7 @@ AC_MSG_RESULT([
sysconfdir: ${sysconfdir}
datadir: ${datadir}
includedir: ${includedir}
bindir: ${bindir}
libdir: ${libdir}

rootprefix: ${rootprefix}


+ 61469
- 54587
hwdb/20-OUI.hwdb
File diff suppressed because it is too large
View File


+ 76
- 1
hwdb/20-acpi-vendor.hwdb View File

@@ -21,6 +21,9 @@ acpi:AAVA*:
acpi:AMDI*:
ID_VENDOR_FROM_DATABASE=AMD

acpi:AMPC*:
ID_VENDOR_FROM_DATABASE=Ampere Computing

acpi:APMC*:
ID_VENDOR_FROM_DATABASE=Applied Micro Circuits Corporation

@@ -114,9 +117,15 @@ acpi:IBMX*:
acpi:IDEA*:
ID_VENDOR_FROM_DATABASE=Lenovo Beijing Co. Ltd.

acpi:IHSE*:
ID_VENDOR_FROM_DATABASE=IHSE GmbH

acpi:IMPJ*:
ID_VENDOR_FROM_DATABASE=Impinj

acpi:INSY*:
ID_VENDOR_FROM_DATABASE=Insyde Software

acpi:INTC*:
ID_VENDOR_FROM_DATABASE=Intel Corporation

@@ -168,6 +177,9 @@ acpi:NVDA*:
acpi:NVTN*:
ID_VENDOR_FROM_DATABASE=Nuvoton Technology Corporation

acpi:NXGO*:
ID_VENDOR_FROM_DATABASE=Nexstgo Company Limited

acpi:OBDA*:
ID_VENDOR_FROM_DATABASE=REALTEK Semiconductor Corp.

@@ -879,6 +891,9 @@ acpi:AVO*:
acpi:AVR*:
ID_VENDOR_FROM_DATABASE=AVer Information Inc.

acpi:AVS*:
ID_VENDOR_FROM_DATABASE=Avatron Software Inc.

acpi:AVT*:
ID_VENDOR_FROM_DATABASE=Avtek (Electronics) Pty Ltd

@@ -960,6 +975,9 @@ acpi:BBH*:
acpi:BBL*:
ID_VENDOR_FROM_DATABASE=Brain Boxes Limited

acpi:BBV*:
ID_VENDOR_FROM_DATABASE=BlueBox Video Limited

acpi:BBX*:
ID_VENDOR_FROM_DATABASE=Black Box Corporation

@@ -2190,6 +2208,9 @@ acpi:EHN*:
acpi:EIC*:
ID_VENDOR_FROM_DATABASE=Eicon Technology Corporation

acpi:EIN*:
ID_VENDOR_FROM_DATABASE=Elegant Invention

acpi:EIZ*:
ID_VENDOR_FROM_DATABASE=Eizo

@@ -3108,6 +3129,9 @@ acpi:HWD*:
acpi:HWP*:
ID_VENDOR_FROM_DATABASE=Hewlett Packard

acpi:HWV*:
ID_VENDOR_FROM_DATABASE=Huawei Technologies Co., Inc.

acpi:HXM*:
ID_VENDOR_FROM_DATABASE=Hexium Ltd.

@@ -3300,6 +3324,9 @@ acpi:IMD*:
acpi:IME*:
ID_VENDOR_FROM_DATABASE=Imagraph

acpi:IMF*:
ID_VENDOR_FROM_DATABASE=Immersive Audio Technologies France

acpi:IMG*:
ID_VENDOR_FROM_DATABASE=IMAGENICS Co., Ltd.

@@ -3561,6 +3588,9 @@ acpi:JDI*:
acpi:JDL*:
ID_VENDOR_FROM_DATABASE=Japan Digital Laboratory Co.,Ltd.

acpi:JEM*:
ID_VENDOR_FROM_DATABASE=Japan E.M.Solutions Co., Ltd.

acpi:JEN*:
ID_VENDOR_FROM_DATABASE=N-Vision

@@ -3996,6 +4026,9 @@ acpi:LSJ*:
acpi:LSL*:
ID_VENDOR_FROM_DATABASE=Logical Solutions

acpi:LSP*:
ID_VENDOR_FROM_DATABASE=Lightspace Technologies

acpi:LSY*:
ID_VENDOR_FROM_DATABASE=LSI Systems Inc

@@ -4374,6 +4407,9 @@ acpi:MNL*:
acpi:MNP*:
ID_VENDOR_FROM_DATABASE=Microcom

acpi:MOC*:
ID_VENDOR_FROM_DATABASE=Matrix Orbital Corporation

acpi:MOD*:
ID_VENDOR_FROM_DATABASE=Modular Technology

@@ -4764,6 +4800,9 @@ acpi:NPA*:
acpi:NPI*:
ID_VENDOR_FROM_DATABASE=Network Peripherals Inc

acpi:NRI*:
ID_VENDOR_FROM_DATABASE=Noritake Itron Corporation

acpi:NRL*:
ID_VENDOR_FROM_DATABASE=U.S. Naval Research Lab

@@ -4797,6 +4836,9 @@ acpi:NTC*:
acpi:NTI*:
ID_VENDOR_FROM_DATABASE=New Tech Int'l Company

acpi:NTK*:
ID_VENDOR_FROM_DATABASE=NewTek

acpi:NTL*:
ID_VENDOR_FROM_DATABASE=National Transcomm. Ltd

@@ -5280,6 +5322,9 @@ acpi:PON*:
acpi:POR*:
ID_VENDOR_FROM_DATABASE=Portalis LC

acpi:POS*:
ID_VENDOR_FROM_DATABASE=Positivo Tecnologia S.A.

acpi:POT*:
ID_VENDOR_FROM_DATABASE=Parrot

@@ -5317,7 +5362,7 @@ acpi:PRD*:
ID_VENDOR_FROM_DATABASE=Praim S.R.L.

acpi:PRF*:
ID_VENDOR_FROM_DATABASE=Digital Electronics Corporation
ID_VENDOR_FROM_DATABASE=Schneider Electric Japan Holdings, Ltd.

acpi:PRG*:
ID_VENDOR_FROM_DATABASE=The Phoenix Research Group Inc
@@ -5424,6 +5469,9 @@ acpi:PXL*:
acpi:PXM*:
ID_VENDOR_FROM_DATABASE=Proxim Inc

acpi:PXN*:
ID_VENDOR_FROM_DATABASE=PixelNext Inc

acpi:QCC*:
ID_VENDOR_FROM_DATABASE=QuakeCom Company Ltd

@@ -5445,6 +5493,9 @@ acpi:QCP*:
acpi:QDI*:
ID_VENDOR_FROM_DATABASE=Quantum Data Incorporated

acpi:QDL*:
ID_VENDOR_FROM_DATABASE=QD Laser, Inc.

acpi:QDM*:
ID_VENDOR_FROM_DATABASE=Quadram

@@ -6105,6 +6156,9 @@ acpi:SNS*:
acpi:SNT*:
ID_VENDOR_FROM_DATABASE=SuperNet Inc

acpi:SNV*:
ID_VENDOR_FROM_DATABASE=SONOVE GmbH

acpi:SNW*:
ID_VENDOR_FROM_DATABASE=Snell & Wilcox

@@ -6354,6 +6408,9 @@ acpi:SXD*:
acpi:SXG*:
ID_VENDOR_FROM_DATABASE=SELEX GALILEO

acpi:SXI*:
ID_VENDOR_FROM_DATABASE=Silex Inside

acpi:SXL*:
ID_VENDOR_FROM_DATABASE=SolutionInside

@@ -6531,6 +6588,9 @@ acpi:TER*:
acpi:TET*:
ID_VENDOR_FROM_DATABASE=TETRADYNE CO., LTD.

acpi:TEV*:
ID_VENDOR_FROM_DATABASE=Televés, S.A.

acpi:TEX*:
ID_VENDOR_FROM_DATABASE=Texas Instruments

@@ -6789,6 +6849,9 @@ acpi:TST*:
acpi:TSV*:
ID_VENDOR_FROM_DATABASE=TRANSVIDEO

acpi:TSW*:
ID_VENDOR_FROM_DATABASE=VRSHOW Technology Limited

acpi:TSY*:
ID_VENDOR_FROM_DATABASE=TouchSystems

@@ -7158,9 +7221,18 @@ acpi:VQ@*:
acpi:VRC*:
ID_VENDOR_FROM_DATABASE=Virtual Resources Corporation

acpi:VRG*:
ID_VENDOR_FROM_DATABASE=VRgineers, Inc.

acpi:VRM*:
ID_VENDOR_FROM_DATABASE=VRmagic Holding AG

acpi:VRS*:
ID_VENDOR_FROM_DATABASE=VRstudios, Inc.

acpi:VRT*:
ID_VENDOR_FROM_DATABASE=Varjo Technologies

acpi:VSC*:
ID_VENDOR_FROM_DATABASE=ViewSonic Corporation

@@ -7356,6 +7428,9 @@ acpi:XAD*:
acpi:XDM*:
ID_VENDOR_FROM_DATABASE=XDM Ltd.

acpi:XES*:
ID_VENDOR_FROM_DATABASE=Extreme Engineering Solutions, Inc.

acpi:XFG*:
ID_VENDOR_FROM_DATABASE=Jan Strapko - FOTO



+ 34
- 1
hwdb/20-pci-classes.hwdb View File

@@ -20,6 +20,30 @@ pci:v*d*sv*sd*bc01sc00*
pci:v*d*sv*sd*bc01sc01*
ID_PCI_SUBCLASS_FROM_DATABASE=IDE interface

pci:v*d*sv*sd*bc01sc01i00*
ID_PCI_INTERFACE_FROM_DATABASE=ISA Compatibility mode-only controller

pci:v*d*sv*sd*bc01sc01i05*
ID_PCI_INTERFACE_FROM_DATABASE=PCI native mode-only controller

pci:v*d*sv*sd*bc01sc01i0A*
ID_PCI_INTERFACE_FROM_DATABASE=ISA Compatibility mode controller, supports both channels switched to PCI native mode

pci:v*d*sv*sd*bc01sc01i0F*
ID_PCI_INTERFACE_FROM_DATABASE=PCI native mode controller, supports both channels switched to ISA compatibility mode

pci:v*d*sv*sd*bc01sc01i80*
ID_PCI_INTERFACE_FROM_DATABASE=ISA Compatibility mode-only controller, supports bus mastering

pci:v*d*sv*sd*bc01sc01i85*
ID_PCI_INTERFACE_FROM_DATABASE=PCI native mode-only controller, supports bus mastering

pci:v*d*sv*sd*bc01sc01i8A*
ID_PCI_INTERFACE_FROM_DATABASE=ISA Compatibility mode controller, supports both channels switched to PCI native mode, supports bus mastering

pci:v*d*sv*sd*bc01sc01i8F*
ID_PCI_INTERFACE_FROM_DATABASE=PCI native mode controller, supports both channels switched to ISA compatibility mode, supports bus mastering

pci:v*d*sv*sd*bc01sc02*
ID_PCI_SUBCLASS_FROM_DATABASE=Floppy disk controller

@@ -462,7 +486,16 @@ pci:v*d*sv*sd*bc0Csc06*
ID_PCI_SUBCLASS_FROM_DATABASE=InfiniBand

pci:v*d*sv*sd*bc0Csc07*
ID_PCI_SUBCLASS_FROM_DATABASE=IPMI SMIC interface
ID_PCI_SUBCLASS_FROM_DATABASE=IPMI Interface

pci:v*d*sv*sd*bc0Csc07i00*
ID_PCI_INTERFACE_FROM_DATABASE=SMIC

pci:v*d*sv*sd*bc0Csc07i01*
ID_PCI_INTERFACE_FROM_DATABASE=KCS

pci:v*d*sv*sd*bc0Csc07i02*
ID_PCI_INTERFACE_FROM_DATABASE=BT (Block Transfer)

pci:v*d*sv*sd*bc0Csc08*
ID_PCI_SUBCLASS_FROM_DATABASE=SERCOS interface


+ 3859
- 505
hwdb/20-pci-vendor-model.hwdb
File diff suppressed because it is too large
View File


+ 12
- 12
hwdb/20-sdio-vendor-model.hwdb View File

@@ -80,9 +80,6 @@ sdio:c*v02D0*
sdio:c*v02D0d044B*
ID_MODEL_FROM_DATABASE=Nintendo Wii WLAN daughter card

sdio:c*v02D0dA887*
ID_MODEL_FROM_DATABASE=BCM43143 WLAN card

sdio:c*v02D0d4324*
ID_MODEL_FROM_DATABASE=BCM43241 WLAN card

@@ -95,21 +92,24 @@ sdio:c*v02D0d4330*
sdio:c*v02D0d4334*
ID_MODEL_FROM_DATABASE=BCM4334 WLAN card

sdio:c*v02D0d4335*
ID_MODEL_FROM_DATABASE=BCM4335/BCM4339 WLAN card

sdio:c*v02D0d4354*
ID_MODEL_FROM_DATABASE=BCM4354 WLAN card

sdio:c*v02D0dA887*
ID_MODEL_FROM_DATABASE=BCM43143 WLAN card

sdio:c*v02D0dA94C*
ID_MODEL_FROM_DATABASE=BCM43340 WLAN card

sdio:c*v02D0dA94D*
ID_MODEL_FROM_DATABASE=BCM43341 WLAN card

sdio:c*v02D0d4335*
ID_MODEL_FROM_DATABASE=BCM4335/BCM4339 WLAN card

sdio:c*v02D0dA962*
ID_MODEL_FROM_DATABASE=BCM43362 WLAN card

sdio:c*v02D0d4354*
ID_MODEL_FROM_DATABASE=BCM4354 WLAN card

sdio:c*v02DB*
ID_VENDOR_FROM_DATABASE=SyChip Inc.

@@ -146,12 +146,12 @@ sdio:c*v02DFd9129*
sdio:c*v02DFd912A*
ID_MODEL_FROM_DATABASE=SD8797 BT

sdio:c*v02DFd912E*
ID_MODEL_FROM_DATABASE=SD8897 BT

sdio:c*v02DFd912D*
ID_MODEL_FROM_DATABASE=SD8897 WLAN

sdio:c*v02DFd912E*
ID_MODEL_FROM_DATABASE=SD8897 BT

sdio:c*v02FE*
ID_VENDOR_FROM_DATABASE=Spectec Computer Co., Ltd



+ 1181
- 41
hwdb/20-usb-vendor-model.hwdb
File diff suppressed because it is too large
View File


+ 57
- 0
hwdb/20-vmbus-class.hwdb View File

@@ -0,0 +1,57 @@
# This file is part of systemd.
#
# Data extracted from Linux hyperv.h

vmbus:02780ada77e3ac4a8e770558eb1073f8
ID_MODEL_FROM_DATABASE=Microsoft Hyper-V Video

vmbus:1657e6f8b33c064a9a601889c5cccab5
ID_MODEL_FROM_DATABASE=Microsoft Hyper-V Remote Desktop Control

vmbus:1df6c444444400449d52802e27ede19f
ID_MODEL_FROM_DATABASE=Microsoft Hyper-V PCI Controller

vmbus:292efa3523ea364296ae3a6ebacba440
ID_MODEL_FROM_DATABASE=Microsoft Hyper-V Backup/Restore

vmbus:30e62795aed07b49adcee80ab0175caf
ID_MODEL_FROM_DATABASE=Microsoft Hyper-V Time Sync

vmbus:31600b0e13523449818b38d90ced39db
ID_MODEL_FROM_DATABASE=Microsoft Hyper-V Guest Shutdown

vmbus:32264132cb86a2449b5c50d1417354f5
ID_MODEL_FROM_DATABASE=Microsoft Hyper-V IDE Controller

vmbus:394f16571591784eab55382f3bd5422d
ID_MODEL_FROM_DATABASE=Microsoft Hyper-V Heartbeat

vmbus:3daf2e8ca732094bab99bd1f1c86b501
ID_MODEL_FROM_DATABASE=Microsoft Hyper-V Guest RDMA

vmbus:635161f83edfc546913ff2d2f965ed0e
ID_MODEL_FROM_DATABASE=Microsoft Hyper-V Network Adapter

vmbus:6dad12f9172bea48bd65f927a61c7684
ID_MODEL_FROM_DATABASE=Microsoft Hyper-V Keyboard

vmbus:9eb6a8cf4a5bc04cb98b8ba1a1f3f95a
ID_MODEL_FROM_DATABASE=Microsoft Hyper-V Mouse

vmbus:d96361baa104294db60572e2ffb1dc7f
ID_MODEL_FROM_DATABASE=Microsoft Hyper-V SCSI Controller

vmbus:dc7450528589e2468057a307dc18a502
ID_MODEL_FROM_DATABASE=Microsoft Hyper-V Dynamic Memory

vmbus:e34bd134e4dec8419ae76b174977c192
ID_MODEL_FROM_DATABASE=Microsoft Hyper-V File Copy

vmbus:e7f4a0a9455a964db8278a841e8c03e6
ID_MODEL_FROM_DATABASE=Microsoft Hyper-V Data Exchange

vmbus:f4ac6a2715ac6c4298dd7521ad3f01fe
ID_MODEL_FROM_DATABASE=Microsoft Hyper-V Remote Desktop Virtualization

vmbus:f4ba7533159e304bb76567acb10d607b
ID_MODEL_FROM_DATABASE=Microsoft Hyper-V Virtual Machine Activation

+ 108
- 7
hwdb/60-evdev.hwdb View File

@@ -47,6 +47,7 @@
evdev:input:b0003v05ACp021B*
# Macbook4,1
evdev:input:b0003v05ACp0229*
evdev:input:b0003v05ACp022A*
EVDEV_ABS_00=256:1471:12
EVDEV_ABS_01=256:831:12

@@ -94,6 +95,11 @@ evdev:input:b0003v05ACp025B*
# ASUS
#########################################

# Asus F3Sg
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnASUSTeKComputerInc.:pnF3Sg:*
EVDEV_ABS_00=0:6143:136
EVDEV_ABS_01=1103:5856:61

# Asus VivoBook E402SA
evdev:name:Elan Touchpad:dmi:*svnASUSTeKCOMPUTERINC.:pnE402SA*
EVDEV_ABS_00=::29
@@ -108,8 +114,10 @@ evdev:name:ETPS/2 Elantech Touchpad:dmi:bvn*:bvr*:bd*:svnASUSTeKComputerInc.:pnK
EVDEV_ABS_35=::18
EVDEV_ABS_36=::16

# Asus X550CC and S550CB
evdev:name:ETPS/2 Elantech Touchpad:dmi:*:svnASUSTeKCOMPUTERINC.:pn?550C?:*
# Asus X550CC, S550CB and N550JV
evdev:name:ETPS/2 Elantech Touchpad:dmi:*:svnASUSTeKCOMPUTERINC.:pnX550CC:*
evdev:name:ETPS/2 Elantech Touchpad:dmi:*:svnASUSTeKCOMPUTERINC.:pnS550CB:*
evdev:name:ETPS/2 Elantech Touchpad:dmi:*:svnASUSTeKCOMPUTERINC.:pnN550JV:*
EVDEV_ABS_00=::31
EVDEV_ABS_01=::30
EVDEV_ABS_35=::31
@@ -138,6 +146,20 @@ evdev:name:AlpsPS/2 ALPS GlidePoint*:dmi:bvn*:bvr*:bd*:svnDellInc.:pnVostro1510*
EVDEV_ABS_00=::14
EVDEV_ABS_01=::18

# Dell Inspiron 3537 - PS/2
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnDellInc.:pnInspiron3537*
EVDEV_ABS_00=1268:5675:41
EVDEV_ABS_01=1101:4792:61
EVDEV_ABS_35=1268:5675:41
EVDEV_ABS_36=1101:4792:61

# Dell Inspiron 3537 - RMI4
evdev:name:Synaptics TM2382-001:dmi:*svnDellInc.:pnInspiron3537*
EVDEV_ABS_00=::24
EVDEV_ABS_01=::34
EVDEV_ABS_35=::24
EVDEV_ABS_36=::34

# Dell Inspiron N5040
evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnInspironN5040*
EVDEV_ABS_00=25:2000:22
@@ -145,6 +167,11 @@ evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnInsp
EVDEV_ABS_35=25:2000:22
EVDEV_ABS_36=0:1351:28

# Dell Inspiron MM061
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*bvn*:bvr*:bd*:svnDellInc.:pnMM061:*
EVDEV_ABS_00=1008:5793:66
EVDEV_ABS_01=687:5176:107

# Dell Latitude E6220
evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLatitudeE6220*
EVDEV_ABS_00=76:1815:22
@@ -161,10 +188,10 @@ evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLati

# Dell Latitude E7470
evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLatitudeE7470*
EVDEV_ABS_00=39:5856:59
EVDEV_ABS_01=10:1532:29
EVDEV_ABS_35=39:5856:59
EVDEV_ABS_36=10:1532:29
EVDEV_ABS_00=29:2930:30
EVDEV_ABS_01=26:1533:29
EVDEV_ABS_35=29:2930:30
EVDEV_ABS_36=26:1533:29

# Dell Precision 5510
evdev:name:SynPS/2 Synaptics TouchPad:dmi:bvn*:bvr*:bd*:svnDellInc.:pnPrecision5510*
@@ -216,6 +243,13 @@ evdev:name:Atmel maXTouch Touch*:dmi:bvn*:bvr*:bd*:svnGOOGLE:pnSamus*
# HP
#########################################

# HP Chromebook 14 (Falco)
evdev:name:Cypress APA Trackpad ?cyapa?:dmi:*:svnHewlett-Packard*:pnFalco*:
EVDEV_ABS_00=:::8
EVDEV_ABS_01=:::8
EVDEV_ABS_35=:::8
EVDEV_ABS_36=:::8

# HP Pavilion dm4
evdev:name:SynPS/2 Synaptics TouchPad*:dmi:*svnHewlett-Packard:pnHPPaviliondm4*
EVDEV_ABS_00=1360:5563:47
@@ -223,6 +257,13 @@ evdev:name:SynPS/2 Synaptics TouchPad*:dmi:*svnHewlett-Packard:pnHPPaviliondm4*
EVDEV_ABS_35=1360:5563:47
EVDEV_ABS_36=1269:4618:61

# HP Pavilion g6
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnHewlett-Packard:pnHPPaviliong6*
EVDEV_ABS_00=1284:5696:88
EVDEV_ABS_01=1287:4838:39
EVDEV_ABS_35=1284:5696:88
EVDEV_ABS_36=1287:4838:39

# HP Pavilion dv7
evdev:name:SynPS/2 Synaptics TouchPad*:dmi:*svnHewlett-Packard:pnHPPaviliondv7*
EVDEV_ABS_00=1068:5805:44
@@ -230,8 +271,15 @@ evdev:name:SynPS/2 Synaptics TouchPad*:dmi:*svnHewlett-Packard:pnHPPaviliondv7*
EVDEV_ABS_35=1068:5805:44
EVDEV_ABS_36=1197:4890:57

# HP Pavilion 15
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnHP:pnHPLaptop15-bs0xx:*
EVDEV_ABS_00=1272:5689:38
EVDEV_ABS_01=1029:4916:78
EVDEV_ABS_35=1272:5689:38
EVDEV_ABS_36=1029:4916:78

# HP Spectre
evdev:name:SynPS/2 Synaptics TouchPad:dmi:i*svnHP:pnHPSpectreNotebook*
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnHP:pnHPSpectreNotebook*
EVDEV_ABS_00=1205:5691:47
EVDEV_ABS_01=1083:4808:65
EVDEV_ABS_35=1205:5691:47
@@ -277,6 +325,13 @@ evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pvrThinkPad??40?:*
EVDEV_ABS_35=::41
EVDEV_ABS_36=::37

# Lenovo ThinkPad X140e
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pvrThinkPadX140e*
EVDEV_ABS_00=1176:5767:62
EVDEV_ABS_01=416:5534:160
EVDEV_ABS_35=1176:5767:62
EVDEV_ABS_36=416:5534:160

# Lenovo ThinkPad T430
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pvrThinkPadT430*
EVDEV_ABS_00=1250:5631:58
@@ -371,6 +426,31 @@ evdev:name:AlpsPS/2 ALPS GlidePoint*:dmi:bvn*:bvr*:bd*:svnLENOVO*:pvrFlex3-15*
EVDEV_ABS_35=::38
EVDEV_ABS_36=::28

# Lenovo ThinkPad Edge 13 (02173BG)
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnLENOVO*:pn*02173BG*:*pvrThinkPadEdge*
EVDEV_ABS_00=916:6077:55
EVDEV_ABS_01=653:5395:116
EVDEV_ABS_35=916:6077:55
EVDEV_ABS_36=653:5395:116

#########################################
# Razer
#########################################

# Razer Blade Stealth
evdev:name:1A58675*:00 06CB:8323 Touchpad:dmi:*svnRazer:pnBladeStealth:*
EVDEV_ABS_00=::12:8
EVDEV_ABS_01=::11:8
EVDEV_ABS_35=::12:8
EVDEV_ABS_36=::11:8

# Razer Blade Stealth (2016)
evdev:name:Synaptics TM2438-005:dmi:*svnRazer:pnBladeStealth*
EVDEV_ABS_00=0:4064:29
EVDEV_ABS_01=0:2405:37
EVDEV_ABS_35=0:4064:29
EVDEV_ABS_36=0:2405:37

#########################################
# Samsung
#########################################
@@ -409,6 +489,22 @@ evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:*svnTOSHIBA:pnTECRAM11*
EVDEV_ABS_00=90:962:11
EVDEV_ABS_01=51:681:14

# Toshiba Satellite R830
evdev:name:SynPS/2 Synaptics TouchPad:dmi:*svnTOSHIBA:pnSATELLITER830*
EVDEV_ABS_00=1238:5785:53
EVDEV_ABS_01=1045:4826:76
EVDEV_ABS_35=1238:5785:53
EVDEV_ABS_36=1045:4826:76

#########################################
# UGTablet
#########################################

# Trust Flex Graphics Tablet
evdev:input:b0003v2179p0004*
EVDEV_ABS_00=::234
EVDEV_ABS_01=::328

#########################################
# Waltop
#########################################
@@ -417,3 +513,8 @@ evdev:name:AlpsPS/2 ALPS DualPoint TouchPad:dmi:*svnTOSHIBA:pnTECRAM11*
evdev:input:b0003v172Fp0031*
EVDEV_ABS_00=0:10000:400
EVDEV_ABS_01=0:6250:400

#WALTOP International Corp. Graphics Tablet
evdev:input:b0003v172Fp0047*
EVDEV_ABS_00=0:20000:80
EVDEV_ABS_01=0:12500:80

+ 68
- 0
hwdb/60-input-id.hwdb View File

@@ -0,0 +1,68 @@
# This file is part of systemd.
#
# The lookup keys are composed in:
# 60-input-id.rules
#
# Note: The format of the "input-id:" prefix match key is a
# contract between the rules file and the hardware data, it might
# change in later revisions to support more or better matches, it
# is not necessarily expected to be a stable ABI.
#
# Match string formats:
# id-input:modalias:<modalias>
#
# To add local entries, create a new file
# /etc/udev/hwdb.d/61-input-id-local.hwdb
# and add your rules there. To load the new rules execute (as root):
# systemd-hwdb update
# udevadm trigger /dev/input/eventXX
# where /dev/input/eventXX is the device in question. If in
# doubt, simply use /dev/input/event* to reload all input rules.
#
# If your changes are generally applicable, preferably send them as a pull
# request to
# https://github.com/systemd/systemd
# or create a bug report on https://github.com/systemd/systemd/issues and
# include your new rules, a description of the device, and the output of
# udevadm info /dev/input/eventXX.
#
# This file must only be used where the input_id builtin assigns the wrong
# properties or lacks the assignment of some properties. This is almost
# always caused by a device not adhering to the standard of the device's
# type.
#
# Allowed properties are:
# ID_INPUT
# ID_INPUT_ACCELEROMETER, ID_INPUT_MOUSE,
# ID_INPUT_POINTINGSTICK, ID_INPUT_TOUCHSCREEN, ID_INPUT_TOUCHPAD,
# ID_INPUT_TABLET, ID_INPUT_TABLET_PAD, ID_INPUT_JOYSTICK, ID_INPUT_KEY,
# ID_INPUT_KEYBOARD, ID_INPUT_SWITCH, ID_INPUT_TRACKBALL
#
# ID_INPUT
# * MUST be set when ANY of ID_INPUT_* is set
# * MUST be unset when ALL of ID_INPUT_* are unset
#
# ID_INPUT_TABLET
# * MUST be set when setting ID_INPUT_TABLET_PAD
#
# Allowed values are 1 and 0 to set or unset, repsectively.
#
# NOT allowed in this file are:
# ID_INPUT_WIDTH_MM, ID_INPUT_HEIGHT_MM, ID_INPUT_TOUCHPAD_INTEGRATION
#

# Example:
# id-input:modalias:input:b0003v1234pABCD*
# ID_INPUT_TOUCHPAD=1
# ID_INPUT=1

# Sort by brand, model

# UC-Logic TABLET 1060N Pad
id-input:modalias:input:b0003v5543p0081*
ID_INPUT_TABLET=1
ID_INPUT_TABLET_PAD=1

# XP-PEN STAR 06
id-input:modalias:input:b0003v28bdp0078*
ID_INPUT_TABLET=1

+ 167
- 25
hwdb/60-keyboard.hwdb View File

@@ -98,7 +98,8 @@

# common keys
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pn*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnGateway*:pnA0A1*:pvr*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnGateway*:pn*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnPackard*Bell*:pn*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svneMachines:pneMachines*E725:pvr*
KEYBOARD_KEY_86=wlan # Fn+F3 or Fn+Q for comunication key
KEYBOARD_KEY_a5=help # Fn+F1
@@ -162,8 +163,10 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*C3[01]0*:pvr*
KEYBOARD_KEY_6b=fn
KEYBOARD_KEY_6c=screenlock # FIXME: lock tablet device/buttons

# Travelmate P648-G2-MG
# Travelmate P648-G2-MG, P648-G3-M and P645-S
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*P648-G2-MG*:pvr*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*P648-G3-M*:pvr*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*P645-S*:pvr*
KEYBOARD_KEY_8a=f20 # Microphone mute button; should be micmute

# on some models this isn't brightnessup
@@ -180,10 +183,6 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*1640:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAOA*:pvr*
KEYBOARD_KEY_a9=!switchvideomode # Fn+F5

# Easynote models
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnPackard*Bell*:pnEasynote*:pvr*
KEYBOARD_KEY_86=wlan # Fn+F3 or Fn+Q for comunication key

###########################################################
# Alienware
###########################################################
@@ -218,6 +217,16 @@ evdev:name:Asus Laptop extra buttons:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:pvr*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svn*BenQ*:pn*Joybook*R22*:pvr*
KEYBOARD_KEY_6e=wlan

###########################################################
# Clevo
###########################################################

evdev:atkbd:dmi:bvn*:bvr*:bd*:svnNotebook:pnW65_67SZ:pvr*
KEYBOARD_KEY_a0=!mute
KEYBOARD_KEY_a2=!playpause
KEYBOARD_KEY_ae=!volumedown
KEYBOARD_KEY_b0=!volumeup

###########################################################
# Compal
###########################################################
@@ -263,7 +272,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pn*
KEYBOARD_KEY_85=brightnessdown # Fn+Down Brightness Down
KEYBOARD_KEY_86=brightnessup # Fn+Up Brightness Up
KEYBOARD_KEY_87=battery # Fn+F3 battery icon
KEYBOARD_KEY_88=unknown # Fn+F2 Turn On/Off Wireless - handled in hardware
KEYBOARD_KEY_88=!wlan # Fn+(F2|PrtScr|Home) Turn On/Off Wireless
KEYBOARD_KEY_89=ejectclosecd # Fn+F10 Eject CD
KEYBOARD_KEY_8a=suspend # Fn+F1 hibernate
KEYBOARD_KEY_8b=switchvideomode # Fn+F8 CRT/LCD (high keycode: "displaytoggle")
@@ -314,7 +323,6 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnStudio*155[78]:pvr*
# Dell Touchpad
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*:pvr*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:pvr*
KEYBOARD_KEY_88=! # wireless switch
KEYBOARD_KEY_9e=!f21

# Dell Latitude E7*
@@ -325,6 +333,11 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*E7*:pvr*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS*:pvr*
KEYBOARD_KEY_8c=!unknown

# Dell XPS L702x
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDellInc.:pnDellSystemXPSL702X:pvr*
KEYBOARD_KEY_84=prog1
KEYBOARD_KEY_85=prog2

# Dell XPS12 9Q33
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS12-9Q33*:pvr*
KEYBOARD_KEY_88=wlan
@@ -557,7 +570,18 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*ProBook4*:pvr*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHP*ProBook*4*:pvr*
# HP ZBook
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPZBook*:pvr*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPZBook*:pvr*
KEYBOARD_KEY_81=f20 # Fn+F8; Microphone mute button, should be micmute

# HP ProBook 11 G1
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPProBook11G1:pvr*
KEYBOARD_KEY_81=f20 # Fn+F8; Microphone mute button, should be micmute
KEYBOARD_KEY_d8=f21 # touchpad toggle
KEYBOARD_KEY_d9=f21 # touchpad toggle

# HP ZBook Studio G4
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP:pnHPZBookStudioG4:pvr*
KEYBOARD_KEY_f8=wlan # Wireless HW switch button

# HP Folio 1040g2
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPEliteBookFolio1040G2:pvr*
@@ -565,6 +589,10 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPEliteBookFolio1040G2:pvr*
KEYBOARD_KEY_d8=!f23 # touchpad off
KEYBOARD_KEY_d9=!f22 # touchpad on

# HP ProBook 650
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*ProBook*650*:pvr*
KEYBOARD_KEY_f8=wlan # Wireless HW switch button

# HP ProBook 6555b
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard:pnHPProBook6555b:*
KEYBOARD_KEY_b2=www # Earth
@@ -731,9 +759,9 @@ evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO*:pn*IdeaPad*Z370*:pvr*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*Lenovo*V480*:pvr*
KEYBOARD_KEY_f1=f21

# Lenovo Thinkcentre M800z AIO machine
# Lenovo ThinkCentre M800z/M820z/M920z AIO machines
# key_scancode 00 is KEY_MICMUTE
keyboard:name:Microphone Mute Button:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*
evdev:name:Microphone Mute Button:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*
KEYBOARD_KEY_00=f20

# enhanced USB keyboard
@@ -763,14 +791,14 @@ evdev:input:b0003v046DpC308*

# Cordless Desktop S510
evdev:input:b0003v046DpC50C*
KEYBOARD_KEY_d4=zoomin
KEYBOARD_KEY_cc=zoomout
KEYBOARD_KEY_d4=up # zoomin
KEYBOARD_KEY_cc=down # zoomout

# Wave cordless
evdev:input:b0003v046DpC317*
KEYBOARD_KEY_9001c=scale # expo
KEYBOARD_KEY_9001f=zoomout
KEYBOARD_KEY_90020=zoomin
KEYBOARD_KEY_9001f=down # zoomout
KEYBOARD_KEY_90020=up # zoomin
KEYBOARD_KEY_9003d=prog1 # gadget
KEYBOARD_KEY_90005=camera
KEYBOARD_KEY_90018=media
@@ -787,8 +815,8 @@ evdev:input:b0003v046DpC317*

# Wave cordless
evdev:input:b0003v046DpC517*
KEYBOARD_KEY_c101f=zoomout
KEYBOARD_KEY_c1020=zoomin
KEYBOARD_KEY_c101f=down # zoomout
KEYBOARD_KEY_c1020=up # zoomin
KEYBOARD_KEY_c1005=camera
KEYBOARD_KEY_c0183=media
KEYBOARD_KEY_c1041=wordprocessor
@@ -802,7 +830,7 @@ evdev:input:b0003v046DpC517*
KEYBOARD_KEY_c104c=ejectclosecd

# Cordless Wave Pro
evdev:input:b0003v046DpC52[9B]*
evdev:input:b0003v046DpC529*
KEYBOARD_KEY_0c01b6=camera
KEYBOARD_KEY_0c0183=media
KEYBOARD_KEY_0c0184=wordprocessor
@@ -813,8 +841,8 @@ evdev:input:b0003v046DpC52[9B]*
KEYBOARD_KEY_0c018a=mail
KEYBOARD_KEY_0c0221=search
KEYBOARD_KEY_0c00b8=ejectcd
KEYBOARD_KEY_0c022d=zoomin
KEYBOARD_KEY_0c022e=zoomout
KEYBOARD_KEY_0c022d=up # zoomin
KEYBOARD_KEY_0c022e=down # zoomout

# Logitech Presenter R400
evdev:input:b0003v046DpC52D*
@@ -889,8 +917,8 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMEDIONNB:pnA555*:pvr*

# Microsoft Natural Ergonomic Keyboard 4000
evdev:input:b0003v045Ep00DB*
KEYBOARD_KEY_c022d=zoomin
KEYBOARD_KEY_c022e=zoomout
KEYBOARD_KEY_c022d=up # zoomin
KEYBOARD_KEY_c022e=down # zoomout

###########################################################
# Micro Star
@@ -925,6 +953,7 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pn*U-100*:pvr*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pn*U100*:pvr*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pn*N033:*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*VR420*:pvr*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*PR200*:pvr*
KEYBOARD_KEY_f7=reserved
KEYBOARD_KEY_f8=reserved

@@ -932,6 +961,10 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*VR420*:pvr*
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pnU90/U100:*
KEYBOARD_KEY_e4=reserved

# MSI GS65 Stealth Thin has a physical backslash key next to the space bar
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pnGS65StealthThin*:pvr*
KEYBOARD_KEY_56=backslash

###########################################################
# MSI
###########################################################
@@ -1040,6 +1073,18 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnOQO*Inc.*:pnOQO*Model*2*:pvr*
evdev:input:b0003v047FpC006*
KEYBOARD_KEY_b002f=f20 # Microphone mute button; should be micmute

###########################################################
# Purism
###########################################################

# Purism Librem 13 V2
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnPurism*:pn*Librem13v2*:pvr*
KEYBOARD_KEY_56=backslash

# Purism Librem 13 V3
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnPurism*:pn*Librem13v3*:pvr*
KEYBOARD_KEY_56=backslash

###########################################################
# Quanta
###########################################################
@@ -1182,8 +1227,8 @@ evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVGN-Z21*:pvr*
KEYBOARD_KEY_00=brightnessdown # Fn+F5
KEYBOARD_KEY_10=brightnessup # Fn+F6
KEYBOARD_KEY_11=switchvideomode # Fn+F7
KEYBOARD_KEY_12=zoomout
KEYBOARD_KEY_14=zoomin
KEYBOARD_KEY_12=down # zoomout
KEYBOARD_KEY_14=up # zoomin
KEYBOARD_KEY_15=suspend # Fn+F12
KEYBOARD_KEY_17=prog1
KEYBOARD_KEY_20=media
@@ -1193,8 +1238,15 @@ evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVGN-FW250*:pvr*

evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVPC*:pvr*
KEYBOARD_KEY_05=f21 # Fn+F1 -> KEY_F21 (The actual touchpad toggle)
KEYBOARD_KEY_0d=zoomout # Fn+F9
KEYBOARD_KEY_0e=zoomin # Fn+F10
KEYBOARD_KEY_0d=down # Fn+F9 zoomout
KEYBOARD_KEY_0e=up # Fn+F10 zoomin

###########################################################
# T-bao
###########################################################

evdev:atkbd:dmi:bvn*:bvr*:bd*:svnT-bao:pnTbookair:pvr*
KEYBOARD_KEY_76=f21 # Touchpad toggle

###########################################################
# Toshiba
@@ -1256,6 +1308,13 @@ evdev:name:Toshiba*input*device:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite*P75-A:
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnVIA:pnK8N800:pvr*
KEYBOARD_KEY_81=prog1

###########################################################
# VIOS
###########################################################

evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:bd*:svnVIOS:pnLTH17:pvr*
KEYBOARD_KEY_70073=f21 # Touchpad toggle

###########################################################
# Zepto
###########################################################
@@ -1283,6 +1342,68 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnZepto:pnZnote*6615WD:*
KEYBOARD_KEY_ae=! # volume down
KEYBOARD_KEY_b0=! # volume up

##########################################
# Ideazon
##########################################

# Ideazon Zboard Merc
evdev:input:b0003v1038p0210*
KEYBOARD_KEY_c0227=q
KEYBOARD_KEY_c0223=w
KEYBOARD_KEY_c0221=e
KEYBOARD_KEY_c0224=a
KEYBOARD_KEY_c0226=s
KEYBOARD_KEY_c0225=d
KEYBOARD_KEY_c0192=tab
KEYBOARD_KEY_c018a=leftalt
KEYBOARD_KEY_c022a=r
KEYBOARD_KEY_c0183=f10
KEYBOARD_KEY_70059=1
KEYBOARD_KEY_7005a=2
KEYBOARD_KEY_7005b=3
KEYBOARD_KEY_7005c=4
KEYBOARD_KEY_7005d=5
KEYBOARD_KEY_7005e=6
KEYBOARD_KEY_7005f=7
KEYBOARD_KEY_70060=8
KEYBOARD_KEY_70061=9
KEYBOARD_KEY_70062=0
KEYBOARD_KEY_70057=equal
KEYBOARD_KEY_70077=capslock
KEYBOARD_KEY_70054=leftshift
KEYBOARD_KEY_70063=leftctrl
KEYBOARD_KEY_7006b=t
KEYBOARD_KEY_70067=f
KEYBOARD_KEY_7006c=g
KEYBOARD_KEY_7006d=v
KEYBOARD_KEY_7006e=b
KEYBOARD_KEY_70074=p
KEYBOARD_KEY_7006f=c
KEYBOARD_KEY_70055=space
KEYBOARD_KEY_70076=f9
KEYBOARD_KEY_70046=f11
KEYBOARD_KEY_70079=f6

# Ideazon Zboard Fang
evdev:input:b0003v1038p0310*
KEYBOARD_KEY_70059=1
KEYBOARD_KEY_7005b=3
KEYBOARD_KEY_70040=equal
KEYBOARD_KEY_70042=l
KEYBOARD_KEY_7002b=tab
KEYBOARD_KEY_7005e=capslock
KEYBOARD_KEY_700e2=leftalt
KEYBOARD_KEY_700e1=leftshift
KEYBOARD_KEY_700e0=leftctrl
KEYBOARD_KEY_70038=z
KEYBOARD_KEY_7003e=t
KEYBOARD_KEY_70015=r
KEYBOARD_KEY_70010=g
KEYBOARD_KEY_70050=n
KEYBOARD_KEY_70030=f9
KEYBOARD_KEY_7002f=f11
KEYBOARD_KEY_70046=f6

###########################################################
# Other
###########################################################
@@ -1338,3 +1459,24 @@ evdev:input:b0003v05FEp1010*
evdev:input:b0003v046Dp4002*
KEYBOARD_LED_NUMLOCK=0
KEYBOARD_LED_CAPSLOCK=0

# Lenovo ThinkPad T430s
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadT430s
KEYBOARD_LED_CAPSLOCK=0

# Lenovo ThinkPad T440s
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadT440s
KEYBOARD_LED_CAPSLOCK=0

# Lenovo ThinkPad T450s
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadT450s
KEYBOARD_LED_CAPSLOCK=0

# Lenovo ThinkPad T560s
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadT560s
KEYBOARD_LED_CAPSLOCK=0
KEYBOARD_LED_NUMLOCK=0

# Lenovo ThinkPad X1 Carbon 3rd Gen
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadX1Carbon3rd
KEYBOARD_LED_CAPSLOCK=0

+ 252
- 6
hwdb/60-sensor.hwdb View File

@@ -11,11 +11,22 @@
# Match string formats:
# sensor:modalias:<parent device modalias>:dmi:<dmi string>
#
# The device modalias can be seen in the `modalias` file
# of the sensor parent, for example:
# cat /sys/`udevadm info -q path -n /dev/iio:device0`/../modalias
#
# The full DMI string of the running machine can be read from
# /sys/class/dmi/id/modalias
# That requires a kernel built with CONFIG_DMIID set, which is common.
# The full DMI string is not needed here and the meaning of individual parts
# can be seen in the source of the DMIID kernel module
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/firmware/dmi-id.c
#
# To add local entries, create a new file
# /etc/udev/hwdb.d/61-sensor-local.hwdb
# and add your rules there. To load the new rules execute (as root):
# systemd-hwdb update
# udevadm trigger -y `dirname $(udevadm info -n "/dev/iio:deviceXXX" -q path)`
# udevadm trigger -v -p DEVNAME=/dev/iio:deviceXXX
# where /dev/iio:deviceXXX is the device in question.
#
# If your changes are generally applicable, preferably send them as a pull
@@ -38,15 +49,34 @@
#
# [1]: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=dfc57732ad38f93ae6232a3b4e64fd077383a0f1
#
# Note for devices where the display (LCD panel) is mounted non upright
# in the device's casing, e.g. mounted upside-down or 90 degree rotated,
# the ACCEL_MOUNT_MATRIX should be such that the x and y axis matches the
# x and y axis of the display, not those of the casing, so that desktop
# environments using the accelerometer data for rotation will e.g.
# automatically flip their output for an upside-down display when the device
# is held upright.
#
# Sort by brand, model

#########################################
# Acer
#########################################
sensor:modalias:acpi:INVN6500*:dmi:*svn*Acer*:*pn*AspireSW5-011*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

sensor:modalias:acpi:INVN6500*:dmi:*svn*Acer*:*pn*AspireSW5-012*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1

sensor:modalias:acpi:BMA250E*:dmi:*:svnAcer:pnIconiaW1-810:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1

#########################################
# Archos
#########################################
sensor:modalias:acpi:SMO8500*:dmi:*:svnARCHOS:pnARCHOS80Cesium:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1

#########################################
# AsusTek
#########################################
@@ -56,17 +86,85 @@ sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnT100CHI*
sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnT100TA*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1

sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:pnT200TA*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1

sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:*pnTP201SA*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

sensor:modalias:acpi:INVN6500*:dmi:*svnASUSTeK*:pn*E205SA*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

sensor:modalias:acpi:INVN6500*:dmi:*svn*ASUSTeK*:*pn*TP300LA*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1

sensor:modalias:acpi:INVN6500*:dmi:*svn*ASUSTeK*:*pn*TP300LD*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1

sensor:modalias:acpi:SMO8500*:dmi:*svn*ASUSTeK*:*pn*TP300LJ*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

sensor:modalias:acpi:SMO8500*:dmi:*svn*ASUSTeK*:*pn*TP500LB*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1

sensor:modalias:acpi:SMO8500*:dmi:*svn*ASUSTeK*:*pn*TP300LD*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

sensor:modalias:acpi:BOSC0200*:dmi:*svn*ASUSTeK*:*pn*TP412UA*
ACCEL_MOUNT_MATRIX=0, -1, 0; 1, 0, 0; 0, 0, 1

#########################################
# Axxo
#########################################
sensor:modalias:acpi:SMO8500*:dmi:*:svnStandard:pnWCBT1011:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1

#########################################
# Chuwi
#########################################

# Chuwi Vi8 Plus
# Chuwi Vi8 (CWI506)
sensor:modalias:acpi:BMA250E*:dmi:bvnINSYDECorp.:bvrCHUWI.D86JLBNR*:svnInsyde:pni86:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

# Chuwi Vi8 Plus (CWI519)
sensor:modalias:acpi:BOSC0200*:dmi:*:svnHampoo:pnD2D3_Vi8A1:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

# Chuwi Vi10 (CWI505)
sensor:modalias:acpi:BMA250E*:dmi:bvnINSYDECorp.:bvrG1D_S165*:svnilife:pnS165:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1

# Chuwi Hi8 Pro (CWI513)
sensor:modalias:acpi:BOSC0200*:dmi:*:svnHampoo:pnX1D3_C806N:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

# Chuwi Hi10 Pro
sensor:modalias:acpi:BOSC0200*:dmi:*:svn*CHUWIINNOVATIONANDTECHNOLOGY*:pnHi10protablet:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

# Chuwi Hi12
sensor:modalias:acpi:BOSC0200*:dmi:*:svnHampoo:pnP02BD6_HI-122LP:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1

# Chuwi Hi13
sensor:modalias:acpi:KIOX000A*:dmi:svnChuwi*:pnHi13
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1

# Chuwi HiBook
# Chuwi HiBook does not have its product name filled, so we
# match the entire dmi-alias, assuming that the use of a BOSC0200 +
# bios-version + bios-date combo is unique
sensor:modalias:acpi:BOSC0200*:dmi:bvnAmericanMegatrendsInc.:bvr5.11:bd05/07/2016:svnDefaultstring:pnDefaultstring:pvrDefaultstring:rvnHampoo:rnCherryTrailCR:rvrDefaultstring:cvnDefaultstring:ct3:cvrDefaultstring:
sensor:modalias:acpi:BOSC0200*:dmi:bvnAmericanMegatrendsInc.:bvr5.11:bd05/28/2016:svnDefaultstring:pnDefaultstring:pvrDefaultstring:rvnHampoo:rnCherryTrailCR:rvrDefaultstring:cvnDefaultstring:ct3:cvrDefaultstring:
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1

#########################################
# Connect
#########################################
sensor:modalias:acpi:KIOX000A*:dmi:*:svnConnect:pnTablet9:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1

#########################################
# Cube
#########################################
@@ -75,17 +173,51 @@ sensor:modalias:acpi:BOSC0200*:dmi:*:svnHampoo:pnD2D3_Vi8A1:*
sensor:modalias:acpi:KIOX000A*:dmi:*:svncube:pni1-TF:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1

# Cube i7 Stylus
sensor:modalias:acpi:KIOX000A*:dmi:*:svnCube:pni7Stylus:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1

# Cube i7 Book (i16)
sensor:modalias:acpi:KIOX000A*:dmi:*:svnCube:pni16:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1

# Cube i7 Stylus I8L Model
sensor:modalias:acpi:KIOX000A*:dmi:*:svnCube:pni8-L:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1

# Cube iWork 10 Flagship
sensor:modalias:acpi:BOSC0200*:dmi:*:svnCube:pnI15-TC:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1

#########################################
# Cytrix (Mytrix)
#########################################
sensor:modalias:acpi:*KIOX000A*:dmi:*svn*CytrixTechnology:*pn*Complex11t*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1

#########################################
# DEXP
#########################################
sensor:modalias:acpi:SMO8500*:dmi:*svn*DEXP*:*pn*DEXPOEM*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

#########################################
# Endless
#########################################
sensor:modalias:acpi:ACCE0001*:dmi:*svnEndless*:*pnELT-NL3*
ACCEL_MOUNT_MATRIX=0, 1, 0; 0, 0, -1; -1, 0, 0

#########################################
# Eve Technology
#########################################
sensor:modalias:acpi:KIOX000A*:dmi:*:svnEVE*:pnEveV:*
ACCEL_MOUNT_MATRIX=0, 1, 0; -1, 0, 0; 0, 0, 1

#########################################
# GP-electronic
#########################################
sensor:modalias:acpi:KIOX000A*:dmi:bvnINSYDECorp.:bvrBYT70A.YNCHENG.WIN.007:*:svnInsyde:pnT701:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

#########################################
# HP
@@ -95,8 +227,13 @@ sensor:modalias:platform:lis3lv02d:dmi:*svn*Hewlett-Packard*:*pn*HPEliteBook8560
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, 0, -1; 0, 1, 0

sensor:modalias:acpi:SMO8500*:dmi:*:svnHewlett-Packard:pnHPStream7Tablet:*
sensor:modalias:acpi:SMO8500*:dmi:*:svnHewlett-Packard:pnHPStream8Tablet:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1

# HP Pavillion X2 10-n000nd
sensor:modalias:i2c:bmc150_accel:dmi:*:svnHewlett-Packard:pnHPPavilionx2Detachable:*:rn815D:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

#########################################
# I.T.Works
#########################################
@@ -107,6 +244,16 @@ sensor:modalias:acpi:SMO8500*:dmi:*:svnHewlett-Packard:pnHPStream7Tablet:*
sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:*:svnTobefilledbyO.E.M.:pnTW891:pvrTobefilledbyO.E.M.:rvnTobefilledbyO.E.M.:rnTW891:rvr1.0:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.:
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1

# I.T.Works TW701 7" windows tablet, same hw as Trekstor ST70416-6
sensor:modalias:acpi:BMA250*:dmi:*:bvritWORKS.G.WI71C.JGBMRB*:*:svnInsyde:pni71c:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1

#########################################
# iOTA 360
#########################################
sensor:modalias:acpi:KIOX000A*:dmi:*svn*iOTA*:*pn*IOTA2210*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

#########################################
# Jumper
#########################################
@@ -115,12 +262,91 @@ sensor:modalias:acpi:KIOX000A*:dmi:bvnAmericanMegatrendsInc.:*:svnTobefilledbyO.
sensor:modalias:acpi:BOSC0200*:dmi:bvnINSYDECorp.:bvrjumperx.T87.KFBNEE*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

# EZpad 6 Pro
sensor:modalias:acpi:BOSC0200*:dmi:*:svnJumper:pnEZpad:*:rvr.A006:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, -1, 0; 0, 0, 1

#########################################
# Kazam
#########################################
sensor:modalias:acpi:KIOX000A*:dmi:bvnINSYDECorp.:bvrVISION.I22K*:svnKAZAM:pnVISION:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1

#########################################
# Lamina
#########################################
sensor:modalias:acpi:SMO8500*:dmi:*svnLamina*:*pnT701BR.SE*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1

sensor:modalias:acpi:KIOX000A*:dmi:*svnLAMINA:pnT-1016BNORD*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1

#########################################
# Lenovo
#########################################
sensor:modalias:acpi:NCPE0388*:dmi:*:rnLenovoYOGA510-14IKB:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, -1, 0; 0, 0, 1

sensor:modalias:acpi:BOSC0200:BOSC0200:dmi:*ThinkPadYoga11e3rdGen*
ACCEL_MOUNT_MATRIX=0, 1, 0; -1, 0, 0; 0, 0, 1

# Miix3-1030
sensor:modalias:acpi:BMA250E*:dmi:bvnLENOVO:*:pvrLenovoMIIX3-1030:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

# Miix3-830
sensor:modalias:acpi:SMO8500*:dmi:bvnLENOVO:*:pvrLenovoMIIX3-830:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1

# IdeaPad Miix 310 note this only is for BIOS version (bvr) 1HCN4?WW, which has
# a portrait LCD panel, versions with bvr 1HCN3?WW have a landscape panel
sensor:modalias:acpi:KIOX000A*:dmi:bvnLENOVO:bvr1HCN4?WW:*:svnLENOVO:pn80SG:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1

# IdeaPad Miix 320, different batches use a different sensor
sensor:modalias:acpi:*BOSC0200*:dmi:*:svnLENOVO*:pn80XF:*
sensor:modalias:acpi:SMO8840*:dmi:*:svnLENOVO:pn80XF:pvrLenovoMIIX320*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

# IdeaPad Miix 510
sensor:modalias:acpi:*BOSC0200*:dmi:*:svnLENOVO*:pn80XE:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

#########################################
# LINX
#########################################

# Linx 1010B
sensor:modalias:acpi:BOSC0200*:dmi:*:svnLINX*:pnLINX1010B:*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, -1

# Linx 12X64
sensor:modalias:acpi:KIOX000A*:dmi:*:svnLINX*:pnLINX12X64:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1

#########################################
# MSI
#########################################
sensor:modalias:acpi:SMO8500*:dmi:*:svnMicro-StarInternationalCo.,Ltd.:pnS100:*
ACCEL_MOUNT_MATRIX=0, -1, 0; 1, 0, 0; 0, 0, 1

#########################################
# Nuvision (TMax)
#########################################
sensor:modalias:acpi:KIOX000A*:dmi:*:svnTMAX:pnTM800W560L:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1

#########################################
# Onda
#########################################
sensor:modalias:acpi:BMA250E*:dmi:bvnINSYDECorp.:bvrONDA.D89*:svnInsyde:pnONDATablet:*
sensor:modalias:acpi:BMA250E*:dmi:bvnINSYDECorp.:bvrONDA.W89*:svnInsyde:pnONDATablet:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

# Onda v975w, generic DMI strings, match entire dmi modalias inc. bios-date
sensor:modalias:acpi:SMO8500*:dmi:bvnAmericanMegatrendsInc.:bvr5.6.5:bd07/25/2014:svnTobefilledbyO.E.M.:pnTobefilledbyO.E.M.:pvrTobefilledbyO.E.M.:rvnAMICorporation:rnAptioCRB:rvrTobefilledbyO.E.M.:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.:
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

#########################################
# Peaq
#########################################
@@ -133,6 +359,10 @@ sensor:modalias:acpi:SMO8500*:dmi:*:svnPEAQ:pnPEAQPMMC1010MD99187:*
sensor:modalias:acpi:KIOX000A*:dmi:*:svnPIPO:pnW2S:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1

# Pipo W4
sensor:modalias:acpi:SMO8500*:dmi:*:bvrV8L_WIN32_CHIPHD_*_DX:*:rvnAMICorporation:rnAptioCRB:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

#########################################
# Ployer
#########################################
@@ -147,17 +377,33 @@ sensor:modalias:acpi:BMA250E*:dmi:*:svnShenzhenPLOYER*:pnMOMO7W:*
# match the entire dmi-alias, assuming that the use of a BMA250E +
# bios-version + bios-date combo is unique
sensor:modalias:acpi:BMA250E*:dmi:bvnAmericanMegatrendsInc.:bvr3BAIR1013:bd08/22/2014:svnTobefilledbyO.E.M.:pnTobefilledbyO.E.M.:pvrTobefilledbyO.E.M.:rvnAMICorporation:rnAptioCRB:rvrTobefilledbyO.E.M.:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.:
sensor:modalias:acpi:BMA250E*:dmi:bvnAmericanMegatrendsInc.:bvr3BAIR1014:bd10/24/2014:svnTobefilledbyO.E.M.:pnTobefilledbyO.E.M.:pvrTobefilledbyO.E.M.:rvnAMICorporation:rnAptioCRB:rvrTobefilledbyO.E.M.:cvnToBeFilledByO.E.M.:ct3:cvrToBeFilledByO.E.M.:
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1

#########################################
# Teclast
#########################################
sensor:modalias:acpi:KIOX000A*:dmi:*:svnTECLAST:pnX80Pro:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1

sensor:modalias:acpi:KIOX000A*:dmi:*:svnTECLAST:pnX98PlusII:*
ACCEL_MOUNT_MATRIX=1, 0, 0; 0, -1, 0; 0, 0, 1

#########################################
# Trekstor
#########################################
sensor:modalias:acpi:BMA250*:dmi:*:bvrTREK.G.WI71C.JGBMRBA*:*:svnInsyde:pnST70416-6:*
sensor:modalias:acpi:BMA250*:dmi:*:bvrTREK.G.WI71C.JGBMRBA*:*:svnTrekStor:pnSurfTabwintron7.0ST70416-6:*
ACCEL_MOUNT_MATRIX=0, 1, 0; 1, 0, 0; 0, 0, 1

#########################################
# Cytrix (Mytrix)
# Umax
#########################################
sensor:modalias:acpi:*KIOX000A*:dmi:*svn*CytrixTechnology:*pn*Complex11t*
ACCEL_MOUNT_MATRIX=-1, 0, 0; 0, 1, 0; 0, 0, 1
sensor:modalias:acpi:SMO8500*:dmi:*:svnUMAX:pnVisionBook10WiPlus:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

#########################################
# Yours
#########################################
sensor:modalias:acpi:BMA250E*:dmi:*:svnYOURS:pnY8W81:*
ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 1

+ 50
- 0
hwdb/70-joystick.hwdb View File

@@ -0,0 +1,50 @@
# This file is part of systemd.
#
# Database for joystick device information that cannot be queried directly.
#
# The lookup keys are composed in:
# 70-joystick.rules
#
# Note: The format of the "joystick:" prefix match key is a
# contract between the rules file and the hardware data, it might
# change in later revisions to support more or better matches, it
# is not necessarily expected to be a stable ABI.
#
# Match string format:
# joystick:<bustype>:v<vid>p<pid>:name:<name>:
#
# vid/pid as 4-digit hex lowercase vendor/product
#
# To add local entries, create a new file
# /etc/udev/hwdb.d/71-joystick-local.hwdb
# and add your rules there. To load the new rules execute (as root):
# systemd-hwdb update
# udevadm trigger /dev/input/eventXX
# where /dev/input/eventXX is the joystick in question. If in
# doubt, simply use /dev/input/event* to reload all input rules.
#
# If your changes are generally applicable, preferably send them as a pull
# request to
# https://github.com/systemd/systemd
# or create a bug report on https://github.com/systemd/systemd/issues and
# include your new rules, a description of the device, and the output of
# udevadm info /dev/input/eventXX.
#
# Permitted keys:
# Specify if a joystick is a built-in one or external:
# ID_INPUT_JOYSTICK_INTEGRATION=internal|external
#
# If the property is missing, user-space can assume:
# ID_INPUT_JOYSTICK_INTEGRATION=external

joystick:bluetooth:*
ID_INPUT_JOYSTICK_INTEGRATION=external

###########################################################
# GPD
###########################################################

# GPD Win, Classic and XBox 360 compat modes
joystick:usb:v11c5p5507*
joystick:usb:v045ep028e*
ID_INPUT_JOYSTICK_INTEGRATION=internal

+ 38
- 1
hwdb/70-mouse.hwdb View File

@@ -198,6 +198,10 @@ mouse:usb:v413cp3012:name:Dell Dell USB Optical Mouse:
mouse:usb:v046dpc063:name:DELL DELL USB Laser Mouse:
MOUSE_DPI=1000@125

# Dell MS116t
mouse:usb:v413cp301a:name:PixArt Dell MS116 USB Optical Mouse:
MOUSE_DPI=1000@125

##########################################
# Dynex
#########################################
@@ -259,6 +263,7 @@ mouse:usb:v0458p0133:name:Mouse Laser Mouse:
MOUSE_WHEEL_CLICK_ANGLE=15

# HP X1000
# Dell MS111-T
mouse:usb:v093ap2510:name:PixArt USB Optical Mouse:
mouse:usb:v093ap2510:name:PIXART USB OPTICAL MOUSE:
MOUSE_DPI=1000@125
@@ -311,6 +316,11 @@ mouse:usb:v17efp6045:name:Lenovo USB Laser Mouse:
# model name. The usb vid/pid is the same for all those devices.
# Until 3.19 is available, this list just has the Wireless PID entry.

# Logitech Anywhere MX
mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:1017:
mouse:usb:v046dp1017:name:Logitech Anywhere MX:
MOUSE_WHEEL_CLICK_ANGLE=20

# Logitech M-BJ58 Optical Mouse
mouse:usb:v046dpc00e:name:Logitech USB-PS/2 Optical Mouse:
# Logitech Mini Optical Mouse
@@ -372,7 +382,7 @@ mouse:usb:v046dp1025:name:Logitech M510:
# Logitech M705 (marathon mouse)
mouse:usb:v046dp101b:name:Logitech M705:
mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:101b:
MOUSE_DPI=800@166
MOUSE_DPI=1000@125

# Logitech MX Revolution
mouse:usb:v046dpc51a:name:Logitech USB Receiver:
@@ -433,6 +443,10 @@ mouse:usb:v046dp402d:name:Logitech M560:
mouse:usb:v046dpc52b:name:Logitech Unifying Device. Wireless PID:402d:
MOUSE_DPI=1000@125

# Logitech M305 Wireless Optical Mouse
mouse:usb:v046dpc52f:name:Logitech USB Receiver:
MOUSE_DPI=1000@170

# Logitech Performance MX
mouse:usb:v046dp101a:name:Logitech Performance MX:
MOUSE_DPI=1000@166
@@ -446,6 +460,15 @@ mouse:usb:v046dp4041:name:Logitech MX Master:
MOUSE_WHEEL_CLICK_COUNT=24
MOUSE_WHEEL_CLICK_COUNT_HORIZONTAL=14

# Logitech MX Master 2s
# Horiz wheel has 14 stops, angle is rounded up
mouse:usb:v046dp4069:name:Logitech MX Master 2s:
MOUSE_DPI=1000@125
MOUSE_WHEEL_CLICK_ANGLE=15
MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL=26
MOUSE_WHEEL_CLICK_COUNT=24
MOUSE_WHEEL_CLICK_COUNT_HORIZONTAL=14

# Logitech MK260 Wireless Combo Receiver aka M-R0011
mouse:usb:v046dpc52e:name:Logitech USB Receiver:
MOUSE_DPI=1000@200
@@ -460,6 +483,12 @@ mouse:usb:v046dpc06b:name:Logitech G700 Laser Mouse:
mouse:usb:v046dpc531:name:Logitech USB Receiver:
MOUSE_DPI=*1000@500 3800@500 500@1000 1500@1000 2000@1000

# Logitech G703 (Wired)
mouse:usb:v046dpc087:name:Logitech G703 Wired/Wireless Gaming Mouse:
# Logitech G703 (Wireless)
mouse:usb:v046dpc539:name:Logitech USB Receiver Mouse:
MOUSE_DPI=400@1000 800@1000 *1600@1000 3200@1000

# Logitech Wireless Mouse M310
mouse:usb:v046dp1024:name:Logitech M310:
MOUSE_DPI=1100@168
@@ -516,6 +545,10 @@ mouse:usb:v045ep0040:name:Microsoft Microsoft 3-Button Mouse with IntelliEye(TM)
mouse:usb:v045ep0745:name:Microsoft Microsoft® 2.4GHz Transceiver v6.0:
MOUSE_DPI=800@142

# Microsoft Comfort Mouse 4500
mouse:usb:v045ep076c:name:Microsoft Microsoft® Comfort Mouse 4500:
MOUSE_DPI=1000@125

# Microsoft Wireless Mobile Mouse 4000
mouse:usb:v045ep0745:name:Microsoft Microsoft® Nano Transceiver v2.0:
# Microsoft Sculpt Ergonomic Mouse
@@ -530,6 +563,10 @@ mouse:usb:v045ep07b1:name:Microsoft Microsoft® Nano Transceiver v1.0:
mouse:bluetooth:v045ep0702:name:Microsoft Wireless Laser Mouse 8000:
MOUSE_DPI=1000@1000

# Microsoft Sculpt Comfort Mouse
mouse:bluetooth:v045ep07a2:name:Microsoft Sculpt Comfort Mouse:
MOUSE_DPI=1000@2000

# Microsoft Arc Touch Mouse SE:
mouse:bluetooth:v045ep07f3:name:Arc Touch Mouse SE:
MOUSE_DPI=1000@2000


+ 13
- 2
hwdb/70-pointingstick.hwdb View File

@@ -43,7 +43,7 @@
# udevadm info /dev/input/eventXX.
#
# Allowed properties are:
# POINTINGSTICK_CONST_ACCEL
# POINTINGSTICK_CONST_ACCEL (deprecated)
# POINTINGSTICK_SENSITIVITY
#
# Entries should be sorted with growing _SENSITIVITY and _CONST_ACCEL.
@@ -52,6 +52,11 @@
# POINTINGSTICK_CONST_ACCEL #
#########################################
#
# DO NOT USE THIS PROPERTY. This property is kept for backwards
# compatibility. The only known consumer, libinput, stopped reading this
# property in version 1.9.0. No new entries for this property should be
# added.
#
# Trackpoint const accel settings are specified as
# POINTINGSTICK_CONST_ACCEL=<accel>
#
@@ -104,10 +109,15 @@ evdev:name:*DualPoint Stick:dmi:bvn*:bvr*:bd*:svnDellInc.:pnLatitudeE7470*:pvr*

# Lenovo Thinkpad X220
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadX220:*
# Lenovo Thinkpad X220 tablet
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadX220Tablet:*
# Lenovo Thinkpad X230
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadX230:*
# Lenovo Thinkpad X230 tablet
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadX230Tablet:*
# Lenovo ThinkPad *30 series
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPad??30:*
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPad??30?:*
# Lenovo Thinkpad *40 series
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPad??40:*
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPad??40?:*
@@ -126,12 +136,13 @@ evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadX1Ta
POINTINGSTICK_SENSITIVITY=200
POINTINGSTICK_CONST_ACCEL=1.0

# Lenovo Thinkpad X200/X201/X200s/X201s
# Lenovo Thinkpad X200/X201/X200s/X201s/X200 Tablet/X201 Tablet
# Note these come with 2 revisions of keyboard, with the trackpoints having a
# different sensitivity in the different revisions. 1.25 is a bit slow for the
# least sensitive revision, but it is better to be a bit slow than too fast.
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadX20?:*
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadX20??:*
evdev:name:TPPS/2 IBM TrackPoint:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadX20?Tablet:*
POINTINGSTICK_SENSITIVITY=200
POINTINGSTICK_CONST_ACCEL=1.25



+ 1
- 13
hwdb/70-touchpad.hwdb View File

@@ -36,27 +36,15 @@

touchpad:i8042:*
touchpad:rmi:*
touchpad:usb:*
ID_INPUT_TOUCHPAD_INTEGRATION=internal

touchpad:bluetooth:*
touchpad:usb:*
ID_INPUT_TOUCHPAD_INTEGRATION=external

###########################################################
# Apple
###########################################################
touchpad:usb:v05ac*
ID_INPUT_TOUCHPAD_INTEGRATION=internal

###########################################################
# Wacom
###########################################################
touchpad:usb:v056a*
ID_INPUT_TOUCHPAD_INTEGRATION=external

###########################################################
# Microsoft (Surface Type Covers)
###########################################################
touchpad:usb:v045ep07*
ID_INPUT_TOUCHPAD_INTEGRATION=internal

+ 1
- 0
hwdb/Makefile.am View File

@@ -11,6 +11,7 @@ dist_udevhwdb_DATA = \
20-sdio-vendor-model.hwdb \
20-usb-classes.hwdb \
20-usb-vendor-model.hwdb \
20-vmbus-class.hwdb \
60-evdev.hwdb \
60-keyboard.hwdb \
60-sensor.hwdb \


+ 246
- 0
hwdb/parse_hwdb.py View File

@@ -0,0 +1,246 @@
#!/usr/bin/env python3
# -*- Mode: python; coding: utf-8; indent-tabs-mode: nil -*- */
# SPDX-License-Identifier: MIT
#
# This file is part of systemd. It is distrubuted under the MIT license, see
# below.
#
# Copyright 2016 Zbigniew Jędrzejewski-Szmek
#
# The MIT License (MIT)
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

import glob
import string
import sys
import os

try:
from pyparsing import (Word, White, Literal, ParserElement, Regex,
LineStart, LineEnd,
OneOrMore, Combine, Or, Optional, Suppress, Group,
nums, alphanums, printables,
stringEnd, pythonStyleComment, QuotedString,
ParseBaseException)
except ImportError:
print('pyparsing is not available')
sys.exit(77)

try:
from evdev.ecodes import ecodes
except ImportError:
ecodes = None
print('WARNING: evdev is not available')

try:
from functools import lru_cache
except ImportError:
# don't do caching on old python
lru_cache = lambda: (lambda f: f)

EOL = LineEnd().suppress()
EMPTYLINE = LineEnd()
COMMENTLINE = pythonStyleComment + EOL
INTEGER = Word(nums)
STRING = QuotedString('"')
REAL = Combine((INTEGER + Optional('.' + Optional(INTEGER))) ^ ('.' + INTEGER))
SIGNED_REAL = Combine(Optional(Word('-+')) + REAL)
UDEV_TAG = Word(string.ascii_uppercase, alphanums + '_')

TYPES = {'mouse': ('usb', 'bluetooth', 'ps2', '*'),
'evdev': ('name', 'atkbd', 'input'),
'id-input': ('modalias'),
'touchpad': ('i8042', 'rmi', 'bluetooth', 'usb'),
'joystick': ('i8042', 'rmi', 'bluetooth', 'usb'),
'keyboard': ('name', ),
'sensor': ('modalias', ),
}

@lru_cache()
def hwdb_grammar():
ParserElement.setDefaultWhitespaceChars('')

prefix = Or(category + ':' + Or(conn) + ':'
for category, conn in TYPES.items())
matchline = Combine(prefix + Word(printables + ' ' + '®')) + EOL
propertyline = (White(' ', exact=1).suppress() +
Combine(UDEV_TAG - '=' - Word(alphanums + '_=:@*.!-;, "') - Optional(pythonStyleComment)) +
EOL)
propertycomment = White(' ', exact=1) + pythonStyleComment + EOL

group = (OneOrMore(matchline('MATCHES*') ^ COMMENTLINE.suppress()) -
OneOrMore(propertyline('PROPERTIES*') ^ propertycomment.suppress()) -
(EMPTYLINE ^ stringEnd()).suppress())
commentgroup = OneOrMore(COMMENTLINE).suppress() - EMPTYLINE.suppress()

grammar = OneOrMore(group('GROUPS*') ^ commentgroup) + stringEnd()

return grammar

@lru_cache()
def property_grammar():
ParserElement.setDefaultWhitespaceChars(' ')

dpi_setting = (Optional('*')('DEFAULT') + INTEGER('DPI') + Suppress('@') + INTEGER('HZ'))('SETTINGS*')
mount_matrix_row = SIGNED_REAL + ',' + SIGNED_REAL + ',' + SIGNED_REAL
mount_matrix = (mount_matrix_row + ';' + mount_matrix_row + ';' + mount_matrix_row)('MOUNT_MATRIX')

props = (('MOUSE_DPI', Group(OneOrMore(dpi_setting))),
('MOUSE_WHEEL_CLICK_ANGLE', INTEGER),
('MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL', INTEGER),
('MOUSE_WHEEL_CLICK_COUNT', INTEGER),
('MOUSE_WHEEL_CLICK_COUNT_HORIZONTAL', INTEGER),
('ID_INPUT', Literal('1')),
('ID_INPUT_ACCELEROMETER', Literal('1')),
('ID_INPUT_JOYSTICK', Literal('1')),
('ID_INPUT_KEY', Literal('1')),
('ID_INPUT_KEYBOARD', Literal('1')),
('ID_INPUT_MOUSE', Literal('1')),
('ID_INPUT_POINTINGSTICK', Literal('1')),
('ID_INPUT_SWITCH', Literal('1')),
('ID_INPUT_TABLET', Literal('1')),
('ID_INPUT_TABLET_PAD', Literal('1')),
('ID_INPUT_TOUCHPAD', Literal('1')),
('ID_INPUT_TOUCHSCREEN', Literal('1')),
('ID_INPUT_TRACKBALL', Literal('1')),
('MOUSE_WHEEL_TILT_HORIZONTAL', Literal('1')),
('MOUSE_WHEEL_TILT_VERTICAL', Literal('1')),
('POINTINGSTICK_SENSITIVITY', INTEGER),
('POINTINGSTICK_CONST_ACCEL', REAL),
('ID_INPUT_JOYSTICK_INTEGRATION', Or(('internal', 'external'))),
('ID_INPUT_TOUCHPAD_INTEGRATION', Or(('internal', 'external'))),
('XKB_FIXED_LAYOUT', STRING),
('XKB_FIXED_VARIANT', STRING),
('KEYBOARD_LED_NUMLOCK', Literal('0')),
('KEYBOARD_LED_CAPSLOCK', Literal('0')),
('ACCEL_MOUNT_MATRIX', mount_matrix),
)
fixed_props = [Literal(name)('NAME') - Suppress('=') - val('VALUE')
for name, val in props]
kbd_props = [Regex(r'KEYBOARD_KEY_[0-9a-f]+')('NAME')
- Suppress('=') -
('!' ^ (Optional('!') - Word(alphanums + '_')))('VALUE')
]
abs_props = [Regex(r'EVDEV_ABS_[0-9a-f]{2}')('NAME')
- Suppress('=') -
Word(nums + ':')('VALUE')
]

grammar = Or(fixed_props + kbd_props + abs_props) + EOL

return grammar

ERROR = False
def error(fmt, *args, **kwargs):
global ERROR
ERROR = True
print(fmt.format(*args, **kwargs))

def convert_properties(group):
matches = [m[0] for m in group.MATCHES]
props = [p[0] for p in group.PROPERTIES]
return matches, props

def parse(fname):
grammar = hwdb_grammar()
try:
with open(fname, 'r', encoding='UTF-8') as f:
parsed = grammar.parseFile(f)
except ParseBaseException as e:
error('Cannot parse {}: {}', fname, e)
return []
return [convert_properties(g) for g in parsed.GROUPS]

def check_match_uniqueness(groups):
matches = sum((group[0] for group in groups), [])
matches.sort()
prev = None
for match in matches:
if match == prev:
error('Match {!r} is duplicated', match)
prev = match

def check_one_default(prop, settings):
defaults = [s for s in settings if s.DEFAULT]
if len(defaults) > 1:
error('More than one star entry: {!r}', prop)

def check_one_mount_matrix(prop, value):
numbers = [s for s in value if s not in {';', ','}]
if len(numbers) != 9:
error('Wrong accel matrix: {!r}', prop)
try:
numbers = [abs(float(number)) for number in numbers]
except ValueError:
error('Wrong accel matrix: {!r}', prop)
bad_x, bad_y, bad_z = max(numbers[0:3]) == 0, max(numbers[3:6]) == 0, max(numbers[6:9]) == 0
if bad_x or bad_y or bad_z:
error('Mount matrix is all zero in {} row: {!r}',
'x' if bad_x else ('y' if bad_y else 'z'),
prop)

def check_one_keycode(prop, value):
if value != '!' and ecodes is not None:
key = 'KEY_' + value.upper()
if key not in ecodes:
key = value.upper()
if key not in ecodes:
error('Keycode {} unknown', key)

def check_properties(groups):
grammar = property_grammar()
for matches, props in groups:
prop_names = set()
for prop in props:
# print('--', prop)
prop = prop.partition('#')[0].rstrip()
try:
parsed = grammar.parseString(prop)
except ParseBaseException as e:
error('Failed to parse: {!r}', prop)
continue
# print('{!r}'.format(parsed))
if parsed.NAME in prop_names:
error('Property {} is duplicated', parsed.NAME)
prop_names.add(parsed.NAME)
if parsed.NAME == 'MOUSE_DPI':
check_one_default(prop, parsed.VALUE.SETTINGS)
elif parsed.NAME == 'ACCEL_MOUNT_MATRIX':
check_one_mount_matrix(prop, parsed.VALUE)
elif parsed.NAME.startswith('KEYBOARD_KEY_'):
check_one_keycode(prop, parsed.VALUE)