mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-12-22 13:33:56 +03:00
hwdb: add a hwdb file to override ID_INPUT assignments
The input_id builtin assigns the various ID_INPUT based on the exported evdev bits. In some cases, the device may not have the properties required to label a device as one specific type but the physical form factor is clear. e.g. in the case of #7197 it's a tablet pad that does not have x/y axes which the kernel exports for pads for historical reasons. A custom override is needed, best to be solved with a hwdb entry. Related #7197
This commit is contained in:
parent
f630daaae9
commit
ffac30349e
59
hwdb/60-input-id.hwdb
Normal file
59
hwdb/60-input-id.hwdb
Normal file
@ -0,0 +1,59 @@
|
||||
# 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
|
@ -65,6 +65,7 @@ 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', ),
|
||||
@ -105,6 +106,18 @@ def property_grammar():
|
||||
('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')),
|
||||
|
@ -3,5 +3,6 @@
|
||||
ACTION=="remove", GOTO="id_input_end"
|
||||
|
||||
SUBSYSTEM=="input", ENV{ID_INPUT}=="", IMPORT{builtin}="input_id"
|
||||
SUBSYSTEM=="input", IMPORT{builtin}="hwdb --subsystem=input --lookup-prefix=id-input:modalias:"
|
||||
|
||||
LABEL="id_input_end"
|
||||
|
Loading…
Reference in New Issue
Block a user