diff options
-rw-r--r-- | hwdb/60-keyboard.hwdb | 2 | ||||
-rwxr-xr-x | hwdb/parse_hwdb.py | 4 | ||||
-rwxr-xr-x | src/udev/generate-keyboard-keys-gperf.sh | 1 | ||||
-rwxr-xr-x | src/udev/generate-keyboard-keys-list.sh | 2 |
4 files changed, 7 insertions, 2 deletions
diff --git a/hwdb/60-keyboard.hwdb b/hwdb/60-keyboard.hwdb index e8be567166..43cb23da32 100644 --- a/hwdb/60-keyboard.hwdb +++ b/hwdb/60-keyboard.hwdb @@ -58,6 +58,8 @@ # KEYBOARD_KEY_<hex scan code>=<key code identifier> # The scan code should be expressed in hex lowercase. The key codes # are retrieved and normalized from the kernel input API header. +# Keycodes are either KEY_* defines in lowercase with the key_ prefix +# optionally removed or BTN_ defines in lowercase with btn_ preserved. # # An '!' as the first character of the key identifier string # will add the scan code to the AT keyboard's list of scan codes diff --git a/hwdb/parse_hwdb.py b/hwdb/parse_hwdb.py index 23809a9f1f..c7b49b83df 100755 --- a/hwdb/parse_hwdb.py +++ b/hwdb/parse_hwdb.py @@ -172,7 +172,9 @@ def check_one_keycode(prop, value): if value != '!' and ecodes is not None: key = 'KEY_' + value.upper() if key not in ecodes: - error('Keycode {} unknown', key) + key = value.upper() + if key not in ecodes: + error('Keycode {} unknown', key) def check_properties(groups): grammar = property_grammar() diff --git a/src/udev/generate-keyboard-keys-gperf.sh b/src/udev/generate-keyboard-keys-gperf.sh index 36ce0bd6cc..5724e4e3dc 100755 --- a/src/udev/generate-keyboard-keys-gperf.sh +++ b/src/udev/generate-keyboard-keys-gperf.sh @@ -6,4 +6,5 @@ awk ' BEGIN { } /^KEY_/ { print tolower(substr($1 ,5)) ", " $1 } + { print tolower($1) ", " $1 } ' < "$1" diff --git a/src/udev/generate-keyboard-keys-list.sh b/src/udev/generate-keyboard-keys-list.sh index 479e493182..83bf4a97d2 100755 --- a/src/udev/generate-keyboard-keys-list.sh +++ b/src/udev/generate-keyboard-keys-list.sh @@ -1,4 +1,4 @@ #!/bin/sh -eu $1 -dM -include linux/input.h - </dev/null | \ - awk '/^#define[ \t]+KEY_[^ ]+[ \t]+[0-9K]/ { if ($2 != "KEY_MAX") { print $2 } }' + awk '/^#define[ \t]+(KEY|BTN)_[^ ]+[ \t]+[0-9BK]/ { if ($2 != "KEY_MAX") { print $2 } }' |