summaryrefslogtreecommitdiff
path: root/hwdb/parse_hwdb.py
AgeCommit message (Collapse)Author
2017-01-05hwdb: add MOUSE_WHEEL_TILT_VERTICAL/HORIZONTAL to the mouse db (#5023)Peter Hutterer
Plenty of single scroll-wheel mice have the ability to tilt the wheel to generate horizontal wheel events. They use the same evdev axis as a real horizontal wheel (REL_HWHEEL) and are indistinguishable to userspace from the real thing. libinput promises physical degrees for wheel events but that's not accurate for those tilting wheels, hence mark them as tilting wheels so we can treat them like the special snowflakes they think they are.
2016-12-10hwdb_parser: make sure that our patterns match the full propertyZbigniew Jędrzejewski-Szmek
We would catch stuff like: ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0.0., 0 but not ACCEL_MOUNT_MATRIX=0, -1, 0; -1, 0, 0; 0, 0, 0.0. because the match would stop at the next-to-last char. Fix that by requiring a line end.
2016-12-10hwdb_parser: add support for ACCEL_MOUNT_MATRIXZbigniew Jędrzejewski-Szmek
We test that we have exactly three rows of three reals separated by two semicolons.
2016-12-01hwdb_parse: adjust indentation and imports following pylint adviceZbigniew Jędrzejewski-Szmek
(This commit is separate to make it easy to export to libinput.)
2016-12-01hwdb: add XKB_FIXED_LAYOUT/VARIANT to the keyboard hwdbPeter Hutterer
Yubikeys and other pseudo keyboards require that they are in the US layout, otherwise the data they send is invalid. Add two new keys to signal this to processes that handles (XKB) layouts.
2016-11-30hwdb/parse_hwdb.py: open files with UTF-8 modeMartin Pitt
pyparsing uses the system locale by default, which in the case of 'C' (in lots of build environment) will fail with a UnicodeDecodeError. Explicitly open it with UTF-8 encoding to guard against this.
2016-11-30parse_hwdb: fix to work with pyparsing 2.1.10Martin Pitt
pyparsing 2.1.10 fixed the handling of LineStart to really just apply to line starts and not ignore whitespace and comments any more. Adjust EMPTYLINE to this. Many thanks to Paul McGuire for pointing this out!
2016-11-25Revert "hwdb/parse_hwdb.py: open files with UTF-8 mode"Martin Pitt
"encoding" is not a valid Python 2 keyword, and despite the hashbang this script can be called with Python 2. This reverts commit 115a10c58d343d00b73bd9442f7ce6c294debad8.
2016-11-24hwdb/parse_hwdb.py: open files with UTF-8 modeMartin Pitt
pyparsing uses the system locale by default, which in the case of 'C' (in lots of build environment) will fail with a UnicodeDecodeError. Explicitly open it with UTF-8 encoding to guard against this.
2016-11-02parse_hwdb: add import fallback for python2Zbigniew Jędrzejewski-Szmek
2016-10-21hwdb: add MOUSE_WHEEL_CLICK_COUNT for non-integer click angles (#4440)Peter Hutterer
MOUSE_WHEEL_CLICK_ANGLE has been an integer, and at least libinput (probably the only user) parses it as strict integer. For backwards compatibility, we cannot change it to a decimal number now. Add a new property to list the number of clicks for a full 360 degree rotation, to be specified in addition to the old click angle property. Clients can prefer the new one where available and calculate the decimal value to whatever precision they want.
2016-09-13Relicense hwdb/parse_hwdb.py as MIT (#4129)Zbigniew Jędrzejewski-Szmek
This parser will also be used in libinput, which uses the MIT license, so relicense this file to the more permissive license to make bidirectional code flow easier. parse_hwdb.py is only useful during building of the project, and is not part of the installation, so effectively both licenses are very similar. In particular, the licensing of binary packages produced by systemd is not influenced in any way, because the MIT licensed part is not installed.
2016-08-19hwdb: let's no abbreivate HORIZONTAL as HORIZ (#3994)Lennart Poettering
I think I am developing OCD... Let's fix this before this actually gets used in the wild. A follow-up for #3986 (5fc9e4abb41e7f58f6c308f54881c596713fba75).
2016-08-19hwdb: add a udev property for a wheel click angle on horiz wheelsPeter Hutterer
The Logitech MX Master has a horizontal scroll wheel with a different click angle than the vertical one. Add a new property for this case, we can't add values to the normal one without risking upsetting existing parsers. Fixes #3947
2016-08-09build-sys: hook up the hwdb parser to checkZbigniew Jędrzejewski-Szmek
2016-08-09tests: add python parser for hwdb grammarZbigniew Jędrzejewski-Szmek
This works for hwdb/[67]0-*.hwdb. I also added code to parse hwdb/20-*, but those files are huge, and parsing them using this parser is annoyingly slow (about one minute for the biggest files). So I removed the support for hwdb/20-*, a much simpler hand-generated parser should suffice for those. Current output: hwdb/60-evdev.hwdb: 24 match groups, 35 matches, 88 properties, 0.19323015213012695s to parse Match 'evdev:input:b0003v05ACp0259*' is duplicated Match 'evdev:input:b0003v05ACp025A*' is duplicated Match 'evdev:input:b0003v05ACp025B*' is duplicated hwdb/60-keyboard.hwdb: 122 match groups, 188 matches, 638 properties, 1.0906572341918945s to parse Failed to parse: 'KEYBOARD_KEY_8F=switchvideomode' Failed to parse: 'KEYBOARD_KEY_C0183=media' Failed to parse: 'KEYBOARD_KEY_C0201=new' Failed to parse: 'KEYBOARD_KEY_C0289=reply' Failed to parse: 'KEYBOARD_KEY_C028B=forwardmail' Failed to parse: 'KEYBOARD_KEY_C028C=send' Failed to parse: 'KEYBOARD_KEY_C021A=undo' Failed to parse: 'KEYBOARD_KEY_C0279=redo' Failed to parse: 'KEYBOARD_KEY_C0208=print' Failed to parse: 'KEYBOARD_KEY_C0207=save' Failed to parse: 'KEYBOARD_KEY_C0194=file' Failed to parse: 'KEYBOARD_KEY_C01A7=documents' Failed to parse: 'KEYBOARD_KEY_C01B6=images' Failed to parse: 'KEYBOARD_KEY_C01B7=sound' Property KEYBOARD_KEY_c7 is duplicated Failed to parse: 'KEYBOARD_KEY_cF=end' hwdb/70-mouse.hwdb: 62 match groups, 93 matches, 68 properties, 0.34186625480651855s to parse Match 'mouse:usb:v046dpc51b:name:Logitech USB Receiver:' is duplicated hwdb/70-pointingstick.hwdb: 5 match groups, 14 matches, 7 properties, 0.06518816947937012s to parse hwdb/70-touchpad.hwdb: 3 match groups, 5 matches, 3 properties, 0.039690494537353516s to parse Subsequest commits will clean those issues up.