# Match string formats:
# <subsystem>:<modalias>
#
-# pci:v<vendor>d<device>
-# usb:v<vendor>p<product>
+# pci:v<vendor>d<device>:
+# usb:v<vendor>p<product>:
#
# To add local entries, create a new file
# /etc/udev/hwdb.d/61-autosuspend-local.hwdb
#
# Allowed properties are:
# ID_AUTOSUSPEND=1
-
#
+# All matches should end in ':*' to allow future expansions of the match key.
+
# Sort by brand, model
#########################################
# The lookup keys are composed in:
# 60-evdev.rules
#
-# Note: The format of the "evdev:" 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.
+# Note: The format of the "evdev:" 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:
# evdev:<modalias>
# 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.
+# 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
# Allowed properties are:
# EVDEV_ABS_<axis>=<min>:<max>:<res>:<fuzz>:<flat>
#
-# where <axis> is the hexadecimal EV_ABS code as listed in linux/input.h
-# and min, max, res, fuzz, flat are the decimal values to the respective
-# fields of the struct input_absinfo as listed in linux/input.h.
-# If a field is missing the field will be left as-is. Not all fields need to
-# be present. e.g. ::45 sets the resolution to 45 units/mm.
-
+# where <axis> is the hexadecimal EV_ABS code as listed in linux/input.h and
+# min, max, res, fuzz, flat are the decimal values to the respective fields of
+# the struct input_absinfo as listed in linux/input.h. If a field is missing
+# the field will be left as-is. Not all fields need to be present. e.g. ::45
+# sets the resolution to 45 units/mm.
#
+# All matches should end in ':*' to allow future expansions of the match key.
+
# Sort by brand, model
#########################################
# 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.
+# 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>
+# id-input:modalias:<modalias pattern>
#
# To add local entries, create a new file
# /etc/udev/hwdb.d/61-input-id-local.hwdb
# 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.
+# 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, 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
# ID_INPUT_TABLET
# * MUST be set when setting ID_INPUT_TABLET_PAD
#
-# Allowed values are 1 and 0 to set or unset, repsectively.
+# Allowed values are 1 and 0 to set or unset, respectively.
#
# NOT allowed in this file are:
# ID_INPUT_WIDTH_MM, ID_INPUT_HEIGHT_MM, ID_INPUT_TOUCHPAD_INTEGRATION
#
+# All matches should end in ':*' to allow future expansions of the match key.
# Example:
# id-input:modalias:input:b0003v1234pABCD*
# The lookup keys are composed in:
# 60-evdev.rules
#
-# Note: The format of the "evdev:" 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.
+# Note: The format of the "evdev:" 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.
#
# Supported hardware matches are:
# - Generic input devices match:
# /sys/class/input/input?/capabilities/ev" and <vendor> is the
# firmware-provided string exported by the kernel DMI modalias,
# see /sys/class/dmi/id/modalias
-
+#
+# All matches should end in ':*' to allow future expansions of the match key.
# ######################### KEY MAPPING ######################################
#
# The lookup keys are composed in:
# 60-sensor.rules
#
-# Note: The format of the "sensor:" 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.
+# Note: The format of the "sensor:" 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:
-# sensor:modalias:<parent device modalias>:dmi:<dmi string>
+# sensor:modalias:<parent modalias pattern>:dmi:<dmi pattern>
#
-# 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 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
# where <matrix> is a mount-matrix in the format specified in the IIO
# subsystem[1]. The default, when unset, is equivalent to:
# ACCEL_MOUNT_MATRIX=1, 0, 0; 0, 1, 0; 0, 0, 1
-# eg. the identity matrix.
+# eg. the identity matrix,
# and <value> is an integer value above which an object is considered
# close by a proximity sensor:
# PROXIMITY_NEAR_LEVEL=100
# or 'display'. The default, when unset, is equivalent to:
# ACCEL_LOCATION=display
#
+# All matches should end in ':*' to allow future expansions of the match key.
+
# Sort by brand, model
#########################################
#
# If the property is missing, user-space can assume:
# ID_INPUT_JOYSTICK_INTEGRATION=external
+#
+# All matches should end in ':*' to allow future expansions of the match key.
joystick:bluetooth:*
ID_INPUT_JOYSTICK_INTEGRATION=external
# The lookup keys are composed in:
# 70-mouse.rules
#
-# Note: The format of the "mouse:" 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.
+# Note: The format of the "mouse:" 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:
+# Match key format:
# mouse:<subsystem>:v<vid>p<pid>:name:<name>:
#
# Supported subsystems: usb, bluetooth
# vid/pid as 4-digit hex lowercase vendor/product
#
# if vid/pid is unavailable, use
-# mouse:*:name:<name>:
+# mouse:*:name:<name>:*
# if name is unavailable, use
-# mouse:<subsystem>:v<vid>p<pid>:*
+# mouse:<subsystem>:v<vid>p<pid>:*
#
# For example, the following 5 matches all match the same mouse:
-# mouse:usb:v17efp6019:name:Lenovo Optical USB Mouse:
-# mouse:usb:*:name:Lenovo Optical USB Mouse:
-# mouse:usb:v17efp6019:*
-# mouse:*:name:Lenovo Optical USB Mouse:
+# mouse:usb:v17efp6019:name:Lenovo Optical USB Mouse:*
+# mouse:usb:*:name:Lenovo Optical USB Mouse:*
+# mouse:usb:v17efp6019:*
+# mouse:*:name:Lenovo Optical USB Mouse:*
+#
+# All matches should end in ':*' to allow future expansions of the match key.
#
# To add local entries, create a new file
# /etc/udev/hwdb.d/71-mouse-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 mouse in question. If in
-# doubt, simply use /dev/input/event* to reload all input rules.
+# where /dev/input/eventXX is the mouse 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
# udevadm info /dev/input/eventXX.
#
# Allowed properties are:
-# ID_INPUT_TRACKBALL
-# MOUSE_DPI
-# MOUSE_WHEEL_CLICK_ANGLE
-# MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL
-# MOUSE_WHEEL_CLICK_COUNT
-# MOUSE_WHEEL_CLICK_COUNT_HORIZONTAL
+# ID_INPUT_TRACKBALL
+# MOUSE_DPI
+# MOUSE_WHEEL_CLICK_ANGLE
+# MOUSE_WHEEL_CLICK_ANGLE_HORIZONTAL
+# MOUSE_WHEEL_CLICK_COUNT
+# MOUSE_WHEEL_CLICK_COUNT_HORIZONTAL
#
#########################################
# ID_INPUT_TRACKBALL #
#########################################
#
# DPI settings are specified as
-# MOUSE_DPI=<dpi>[@<frequency>]
+# MOUSE_DPI=<dpi>[@<frequency>]
#
# Where <dpi> is the resolution in dots per inch, and <frequency> the
# sampling frequency in Hz (optional). If a device supports dynamic
#
# Supported hardware matches are:
# - Generic input devices match:
-# evdev:input:bZZZZvYYYYpXXXXeWWWW-VVVV
+# evdev:input:bZZZZvYYYYpXXXXeWWWW-VVVV:*
# This matches on the kernel modalias of the input-device, mainly:
# ZZZZ is the bus-id (see /usr/include/linux/input.h BUS_*), YYYY, XXXX and
# WWW are the 4-digit hex uppercase vendor, product and version ID and VVVV
# in /sys/class/input/eventX/device/id.
#
# - Input driver device name and DMI data match:
-# evdev:name:<input device name>:dmi:bvn*:bvr*:bd*:svn<vendor>:pn*
+# evdev:name:<input device name>:dmi:bvn*:bvr*:bd*:svn<vendor>:pn*:*
# <input device name> is the name device specified by the driver,
# <vendor> is the firmware-provided string from the kernel DMI modalias,
# see /sys/class/dmi/id/modalias
#
+# All matches should end in ':*' to allow future expansions of the match key.
+#
# To add local entries, create a new file
# /etc/udev/hwdb.d/71-pointingstick-local.hwdb
# and add your rules there. To load the new rules execute (as root):
# drivers/input/mouse/trackpoint.c in the Linux kernel sources.
#
-#
# Sort by brand, model
#########################################
#
# vid/pid as 4-digit hex lowercase vendor/product
#
+# All matches should end in ':*' to allow future expansions of the match key.
+#
# To add local entries, create a new file
# /etc/udev/hwdb.d/71-touchpad-local.hwdb
# and add your rules there. To load the new rules execute (as root):