diff options
author | Martin Pitt <martin.pitt@ubuntu.com> | 2016-12-01 14:32:32 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-01 14:32:32 +0100 |
commit | b06662e85397448a5aba45ae7c698be6b6b86ee0 (patch) | |
tree | 765d6d7b2d04979d1d4b232d8ff28bc9d07f2dbc | |
parent | dc68fed25db7d7a84b4da0e7ed4e73152773a561 (diff) | |
parent | 086c001e29a86287d7b639cb71d1fc6408920c53 (diff) |
Merge pull request #4778 from whot/xkb-fixed-layout
Xkb fixed layout
-rw-r--r-- | hwdb/60-keyboard.hwdb | 20 | ||||
-rwxr-xr-x | hwdb/parse_hwdb.py | 7 |
2 files changed, 24 insertions, 3 deletions
diff --git a/hwdb/60-keyboard.hwdb b/hwdb/60-keyboard.hwdb index c4031ab587..5f81be5c47 100644 --- a/hwdb/60-keyboard.hwdb +++ b/hwdb/60-keyboard.hwdb @@ -4,7 +4,7 @@ # scan codes to add to the AT keyboard's 'force-release' list. # # The lookup keys are composed in: -# 60-keyboard.rules +# 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 @@ -42,6 +42,13 @@ # # To debug key presses and access scan code mapping data of # an input device use the commonly available tool: evtest(1). + +# A device with a fixed keyboard layout that must not be changed by +# the desktop environment may specify that layout as: +# XKB_FIXED_LAYOUT="us" +# XKB_FIXED_VARIANT="" +# Examples of such devices: the Yubikey or other key-code generating +# devices. # # To update this file, create a new file # /etc/udev/hwdb.d/70-keyboard.hwdb @@ -1244,3 +1251,14 @@ evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDIXONSP:pnDIXON*:pvr* KEYBOARD_KEY_a0=! # mute KEYBOARD_KEY_ae=! # volume down KEYBOARD_KEY_b0=! # volume up + +########################################################### +# Fixed layout devices +########################################################### + +# Yubico Yubico Yubikey II" +evdev:input:b0003v1050p0010* +# Yubico Yubikey NEO OTP+CCID +evdev:input:b0003v1050p0111* + XKB_FIXED_LAYOUT="us" + XKB_FIXED_VARIANT="" diff --git a/hwdb/parse_hwdb.py b/hwdb/parse_hwdb.py index d94d8d13d8..97c796863f 100755 --- a/hwdb/parse_hwdb.py +++ b/hwdb/parse_hwdb.py @@ -37,7 +37,7 @@ try: LineStart, LineEnd, ZeroOrMore, OneOrMore, Combine, Or, Optional, Suppress, Group, nums, alphanums, printables, - stringEnd, pythonStyleComment, + stringEnd, pythonStyleComment, QuotedString, ParseBaseException) except ImportError: print('pyparsing is not available') @@ -59,6 +59,7 @@ EOL = LineEnd().suppress() EMPTYLINE = LineEnd() COMMENTLINE = pythonStyleComment + EOL INTEGER = Word(nums) +STRING = QuotedString('"') REAL = Combine((INTEGER + Optional('.' + Optional(INTEGER))) ^ ('.' + INTEGER)) UDEV_TAG = Word(string.ascii_uppercase, alphanums + '_') @@ -76,7 +77,7 @@ def hwdb_grammar(): for category, conn in TYPES.items()) matchline = Combine(prefix + Word(printables + ' ' + '®')) + EOL propertyline = (White(' ', exact=1).suppress() + - Combine(UDEV_TAG - '=' - Word(alphanums + '_=:@*.! ') - Optional(pythonStyleComment)) + + Combine(UDEV_TAG - '=' - Word(alphanums + '_=:@*.! "') - Optional(pythonStyleComment)) + EOL) propertycomment = White(' ', exact=1) + pythonStyleComment + EOL @@ -103,6 +104,8 @@ def property_grammar(): ('POINTINGSTICK_SENSITIVITY', INTEGER), ('POINTINGSTICK_CONST_ACCEL', REAL), ('ID_INPUT_TOUCHPAD_INTEGRATION', Or(('internal', 'external'))), + ('XKB_FIXED_LAYOUT', STRING), + ('XKB_FIXED_VARIANT', STRING) ) fixed_props = [Literal(name)('NAME') - Suppress('=') - val('VALUE') for name, val in props] |