summaryrefslogtreecommitdiffstats
path: root/hwdb.d/60-keyboard.hwdb
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 15:35:18 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 15:35:18 +0000
commitb750101eb236130cf056c675997decbac904cc49 (patch)
treea5df1a06754bdd014cb975c051c83b01c9a97532 /hwdb.d/60-keyboard.hwdb
parentInitial commit. (diff)
downloadsystemd-b750101eb236130cf056c675997decbac904cc49.tar.xz
systemd-b750101eb236130cf056c675997decbac904cc49.zip
Adding upstream version 252.22.upstream/252.22
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'hwdb.d/60-keyboard.hwdb')
-rw-r--r--hwdb.d/60-keyboard.hwdb2195
1 files changed, 2195 insertions, 0 deletions
diff --git a/hwdb.d/60-keyboard.hwdb b/hwdb.d/60-keyboard.hwdb
new file mode 100644
index 0000000..acb23bf
--- /dev/null
+++ b/hwdb.d/60-keyboard.hwdb
@@ -0,0 +1,2195 @@
+# This file is part of systemd.
+#
+# This file contains 3 types of metadata to apply to keyboards and
+# keyboard-like input devices:
+# - Key mapping
+# - Hard-coded layouts
+# - Absence of modifier LEDs
+#
+# The matching process is the same for the different types of metadata.
+#
+# ########################### MATCHING #######################################
+#
+# The lookup keys are composed in:
+# 60-evdev.rules
+#
+# Supported hardware matches are:
+# - Generic input devices match:
+# 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
+# WWWW are the 4-digit hex uppercase vendor, product and version ID and VVVV
+# is a variable-length input-modalias describing the device capabilities.
+# The vendor, product and version ID for a device node "eventX" is listed
+# in /sys/class/input/eventX/device/id.
+#
+# - AT keyboard DMI data matches:
+# evdev:atkbd:dmi:bvn*:bvr*:bd*:svn<vendor>:pn<product>:pvr*
+# <vendor> and <product> are the firmware-provided strings
+# exported by the kernel DMI modalias, see /sys/class/dmi/id/modalias.
+#
+# - Input driver device name and DMI data match:
+# 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 exported
+# by the kernel DMI modalias, see /sys/class/dmi/id/modalias
+#
+# - Extended input driver device name, properties and DMI data match:
+# evdev:name:<input device name>:phys:<phys>:ev:<ev>:dmi:bvn*:bvr*:bd*:svn<vendor>:pn*
+# <input device name> is the name device specified by the
+# driver, <phys> is the physical-device-path, "cat
+# /sys/class/input/input?/phys", <ev> is the event bitmask, "cat
+# /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.
+#
+# To add local entries, create a new file
+# /etc/udev/hwdb.d/61-keyboard-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 keyboard 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.
+
+# ######################### KEY MAPPING ######################################
+#
+# Keyboard mapping of scan codes to key codes, and
+# scan codes to add to the AT keyboard's 'force-release' list.
+#
+# Scan codes are specified as:
+# 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
+# where the driver will synthesize a release event and not expect
+# it to be generated by the hardware.
+#
+# 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.
+
+# A device where the scan code to key code mapping is insufficient and
+# requires a special key code to symbol configuration may specify that with:
+# XKB_FIXED_MODEL=xkbmodel
+# Examples of such devices: Chromebooks where the top row is used for both
+# media and F1-F10 keys.
+
+##########################################
+# Acer
+##########################################
+
+# common keys
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pn*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnGateway*:pnA0A1*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svneMachines:pneMachines*E725:*
+ KEYBOARD_KEY_86=wlan # Fn+F3 or Fn+Q for communication key
+ KEYBOARD_KEY_a5=help # Fn+F1
+ KEYBOARD_KEY_a6=setup # Fn+F2 Acer eSettings
+ KEYBOARD_KEY_a7=battery # Fn+F3 Power Management
+ KEYBOARD_KEY_a9=switchvideomode # Fn+F5
+ KEYBOARD_KEY_b2=www
+ KEYBOARD_KEY_b3=euro
+ KEYBOARD_KEY_b4=dollar
+ KEYBOARD_KEY_ce=brightnessup # Fn+Right
+ KEYBOARD_KEY_d4=bluetooth # (toggle) off-to-on
+ KEYBOARD_KEY_d5=wlan # (toggle) on-to-off
+ KEYBOARD_KEY_d6=wlan # (toggle) off-to-on
+ KEYBOARD_KEY_d7=bluetooth # (toggle) on-to-off
+ KEYBOARD_KEY_d8=bluetooth # (toggle) off-to-on
+ KEYBOARD_KEY_d9=brightnessup # Fn+Right
+ KEYBOARD_KEY_ee=brightnessup # Fn+Right
+ KEYBOARD_KEY_ef=brightnessdown # Fn+Left
+ KEYBOARD_KEY_f1=f22 # Fn+F7 Touchpad toggle (off-to-on)
+ KEYBOARD_KEY_f2=f23 # Fn+F7 Touchpad toggle (on-to-off)
+ KEYBOARD_KEY_f3=prog2 # "P2" programmable button
+ KEYBOARD_KEY_f4=prog1 # "P1" programmable button
+ KEYBOARD_KEY_f5=presentation
+ KEYBOARD_KEY_f6=power # Power button
+ KEYBOARD_KEY_f8=fn
+ KEYBOARD_KEY_f9=prog1 # Launch NTI shadow
+
+# Acer kernel driver
+evdev:name:Acer WMI hotkeys:dmi:bvn*:bvr*:bd*:svn*:pnAcer*:*
+ KEYBOARD_KEY_82=f21 # Touchpad toggle
+
+# Aspire models
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*:*
+ KEYBOARD_KEY_84=bluetooth # sent when bluetooth module missing, and key pressed
+ KEYBOARD_KEY_d9=bluetooth # Bluetooth off
+ KEYBOARD_KEY_92=media # Acer arcade
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*5720*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnZG8*:*
+ KEYBOARD_KEY_f4=prog3 # e-key
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*5920G:*
+ KEYBOARD_KEY_8a=media
+ KEYBOARD_KEY_a6=setup
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*6920:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*8930:*
+ KEYBOARD_KEY_ca=prog3 # key 'HOLD' on CineDash Media Console
+ KEYBOARD_KEY_83=rewind
+ KEYBOARD_KEY_89=fastforward
+ KEYBOARD_KEY_9e=back
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*7750G:*
+ KEYBOARD_KEY_e0=!pageup
+
+# Acer Aspire 3 A317-33
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspireA317-33:*
+ KEYBOARD_KEY_55=power
+
+# Acer Aspire One AO532h
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAO532h:*
+ KEYBOARD_KEY_84=bluetooth
+ KEYBOARD_KEY_ce=unknown # Brightness Up, also emitted by acpi-video, ignore
+ KEYBOARD_KEY_ef=unknown # Brightness Down, also emitted by acpi-video, ignore
+
+# Acer Aspire One AOD270 (Atom N2600) and its Packard Bell Dot SC rebrand
+evdev:name:Acer WMI hotkeys:dmi:bvn*:bvr*:bd*:svnAcer*:pnAOD270*:*
+evdev:name:Acer WMI hotkeys:dmi:*:svnPackardBell:pndots:*:rvnPackardBell:rnSJE01_CT:*
+ KEYBOARD_KEY_61=switchvideomode
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAOD270*:*
+evdev:atkbd:dmi:*:svnPackardBell:pndots:*:rvnPackardBell:rnSJE01_CT:*
+ KEYBOARD_KEY_ce=unknown # Brightness Up, also emitted by acpi-video, ignore
+ KEYBOARD_KEY_ef=unknown # Brightness Down, also emitted by acpi-video, ignore
+
+# Predator PT314-52s
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnPredator*PT314-52s:pvr*
+ KEYBOARD_KEY_66=micmute # Microphone mute button
+
+# Predator PH 315-52
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnPredator*PH*315-52:*
+ KEYBOARD_KEY_ef=kbdillumup # Fn+F10
+ KEYBOARD_KEY_f0=kbdillumdown # Fn+F9
+
+# Travelmate B311-31, B311R-31, B311RN-31
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMateB311-31*:pvr*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMateB311R-31*:pvr*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMateB311RN-31*:pvr*
+ KEYBOARD_KEY_8a=f20 # Microphone mute
+
+# Travelmate C300
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*C3[01]0*:*
+ KEYBOARD_KEY_67=f24 # FIXME: rotate screen
+ KEYBOARD_KEY_68=up
+ KEYBOARD_KEY_69=down
+ KEYBOARD_KEY_6b=fn
+ KEYBOARD_KEY_6c=screenlock # FIXME: lock tablet device/buttons
+
+# Travelmate P648-G2-MG, P648-G3-M and P645-S
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*P648-G2-MG*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*P648-G3-M*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*P645-S*:*
+ KEYBOARD_KEY_8a=f20 # Microphone mute button; should be micmute
+
+# on some models this isn't brightnessup
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pn*5210*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pn*5220*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pn*5610*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pn*5620*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pn*5720*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*4720*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*6593:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire*1640:*
+ KEYBOARD_KEY_ee=screenlock
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnAOA*:*
+ KEYBOARD_KEY_a9=!switchvideomode # Fn+F5
+
+# Packard Bell and Gateway models
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnGateway*:pn*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnPackard*Bell*:pn*:*
+ KEYBOARD_KEY_86=wlan # Fn+F3 or Fn+Q for communication key
+
+# Swift SF314-511
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnSwiftSF314-511:pvr*
+ KEYBOARD_KEY_8a=f20 # Fn+F12, microphone mute
+
+# Predator PHN16-71
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnPredatorPHN16-71:*
+ KEYBOARD_KEY_ef=unknown # Keyboard backlight up
+ KEYBOARD_KEY_f5=prog1 # "predator sense" button
+ KEYBOARD_KEY_66=micmute # Microphone mute button
+
+###########################################################
+# Alienware
+###########################################################
+
+# Alienware/Dell reserves these keys; safe to apply on all their devices
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAlienware*:pn*:*
+ KEYBOARD_KEY_81=f21 # Touchpad toggle
+ KEYBOARD_KEY_8a=ejectcd
+ KEYBOARD_KEY_bf=!prog1 # graphics amplifier, cable plug-in event
+ KEYBOARD_KEY_c1=!prog2 # graphics amplifier, undock-button event
+ KEYBOARD_KEY_c2=!power # graphics amplifier, surprise undock event
+
+# Alienware M17xR3 laptops
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAlienware*:pnM17xR3:*
+ KEYBOARD_KEY_89=ejectcd
+
+###########################################################
+# Asus
+###########################################################
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnASUS:pn*:*
+ KEYBOARD_KEY_ed=volumeup
+ KEYBOARD_KEY_ee=volumedown
+ KEYBOARD_KEY_ef=mute
+
+evdev:name:Asus WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:*
+evdev:name:Eee PC WMI hotkeys:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:*
+evdev:name:Asus Laptop extra buttons:dmi:bvn*:bvr*:bd*:svnASUS*:pn*:*
+ KEYBOARD_KEY_6b=f21 # Touchpad Toggle
+ KEYBOARD_KEY_7c=f20 # Remap micmute to f20
+
+# USB keyboard in Asus FX503VD
+evdev:input:b0003v0B05p1869*
+ KEYBOARD_KEY_ff31007c=f20 # Remap micmute to f20
+
+# Asus TF103C misses the home button in its PNP0C40 GPIO resources
+# causing the volume-button mappings to be off by one, correct this
+evdev:name:gpio-keys:phys:gpio-keys/input0:ev:3:dmi:*:svnASUSTeKCOMPUTERINC.:pnTF103C*:*
+ KEYBOARD_KEY_1=volumeup
+
+evdev:name:gpio-keys:phys:gpio-keys/input0:ev:100003:dmi:*:svnASUSTeKCOMPUTERINC.:pnTF103C*:*
+ KEYBOARD_KEY_0=volumedown
+
+###########################################################
+# BenQ
+###########################################################
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svn*BenQ*:pn*Joybook*R22*:*
+ KEYBOARD_KEY_6e=wlan
+
+###########################################################
+# Clevo
+###########################################################
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnNotebook:pnW65_67SZ:*
+ KEYBOARD_KEY_a0=!mute
+ KEYBOARD_KEY_a2=!playpause
+ KEYBOARD_KEY_ae=!volumedown
+ KEYBOARD_KEY_b0=!volumeup
+
+evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnNS50_70MU:*
+evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnNV4XMB,ME,MZ:*
+evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnNS5x_NS7xPU:*
+evdev:atkbd:dmi:bvn*:bvr*:svnNotebook:pnNV4xPZ:*
+ KEYBOARD_KEY_f7=f21 # Touchpad Toggle
+ KEYBOARD_KEY_f8=f21 # Touchpad Toggle
+
+###########################################################
+# Compal
+###########################################################
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnCOMPAL:pnHEL80I:*
+ KEYBOARD_KEY_84=wlan
+
+###########################################################
+# COMPAQ
+###########################################################
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnCompaq*:pn*E500*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnCompaq*:pn*Evo*N*:*
+ KEYBOARD_KEY_a3=www # I key
+ KEYBOARD_KEY_9a=search
+ KEYBOARD_KEY_9e=email
+ KEYBOARD_KEY_9f=homepage
+
+evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:svnCompaq:pn*:pvr*:rvn*:rnN14KP6*
+ KEYBOARD_KEY_76=f21 # Fn+f2 toggle touchpad
+
+evdev:input:b0003v049Fp0051*
+evdev:input:b0003v049Fp008D*
+ KEYBOARD_KEY_0c0011=presentation
+ KEYBOARD_KEY_0c0012=addressbook
+ KEYBOARD_KEY_0c0013=info
+ KEYBOARD_KEY_0c0014=prog1
+ KEYBOARD_KEY_0c0015=messenger
+
+###########################################################
+# Cube
+###########################################################
+
+evdev:name:gpio-keys:phys:gpio-keys/input0:ev:3:dmi:bvn*:bvr*:bd*:svncube:pni1-TF:*
+ KEYBOARD_KEY_0=leftmeta
+ KEYBOARD_KEY_1=power
+
+###########################################################
+# Dell
+###########################################################
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pn*:*
+ KEYBOARD_KEY_81=playpause # Play/Pause
+ KEYBOARD_KEY_82=stopcd # Stop
+ KEYBOARD_KEY_83=previoussong # Previous song
+ KEYBOARD_KEY_84=nextsong # Next song
+ KEYBOARD_KEY_85=brightnessdown # Fn+Down Brightness Down
+ KEYBOARD_KEY_86=brightnessup # Fn+Up Brightness Up
+ KEYBOARD_KEY_87=battery # Fn+F3 battery icon
+ KEYBOARD_KEY_88=unknown # Fn+F2 Turn On/Off Wireless - handled in hardware
+ KEYBOARD_KEY_89=ejectclosecd # Fn+F10 Eject CD
+ KEYBOARD_KEY_8a=suspend # Fn+F1 hibernate
+ KEYBOARD_KEY_8b=switchvideomode # Fn+F8 CRT/LCD (high keycode: "displaytoggle")
+ KEYBOARD_KEY_8c=unknown # Fn+Right Auto Brightness
+ KEYBOARD_KEY_8f=switchvideomode # Fn+F7 aspect ratio
+ KEYBOARD_KEY_90=previoussong # Front panel previous song
+ KEYBOARD_KEY_91=prog1 # Wi-Fi Catcher (Dell-specific)
+ KEYBOARD_KEY_92=media # MediaDirect button (house icon)
+ KEYBOARD_KEY_93=unknown # FIXME Fn+Left Auto Brightness
+ KEYBOARD_KEY_95=camera # Shutter button - Takes a picture if optional camera available
+ KEYBOARD_KEY_97=email # Tablet email button
+ KEYBOARD_KEY_98=f21 # FIXME: Tablet screen rotation
+ KEYBOARD_KEY_99=nextsong # Front panel next song
+ KEYBOARD_KEY_9a=setup # Tablet tools button
+ KEYBOARD_KEY_9b=switchvideomode # Display toggle button
+ KEYBOARD_KEY_9e=f21 # Touchpad toggle
+ KEYBOARD_KEY_a2=playpause # Front panel play/pause
+ KEYBOARD_KEY_a4=stopcd # Front panel stop
+ KEYBOARD_KEY_ed=media # MediaDirect button
+ KEYBOARD_KEY_d8=screenlock # FIXME: Tablet lock button
+ KEYBOARD_KEY_d9=f21 # Touchpad toggle
+
+#
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*910:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*101[012]:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*1110:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*1210:*
+ KEYBOARD_KEY_84=wlan
+
+# Dell Inspiron 11 3168
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron11-3168:pvr*
+ KEYBOARD_KEY_c7=!home # Fn-LeftArrow
+ KEYBOARD_KEY_cf=!end # Fn-RightArrow
+ KEYBOARD_KEY_c9=!pageup # Fn-UpArrow
+ KEYBOARD_KEY_d1=!pagedown # Fn-DownArrow
+
+# Dell Inspiron 1520 and Latitude 2110
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron*1520:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*2110:*
+ KEYBOARD_KEY_85=unknown # Brightness Down, also emitted by acpi-video, ignore
+ KEYBOARD_KEY_86=unknown # Brightness Up, also emitted by acpi-video, ignore
+
+# Dell Inspiron 537*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnInspiron537*:*
+ KEYBOARD_KEY_88=!wlan # Fn-PrtScr rfkill
+
+# Latitude XT2
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*XT2:*
+ KEYBOARD_KEY_9b=up # tablet rocker up
+ KEYBOARD_KEY_9e=enter # tablet rocker press
+ KEYBOARD_KEY_9f=back # tablet back
+ KEYBOARD_KEY_a3=down # tablet rocker down
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnStudio*155[78]:*
+ KEYBOARD_KEY_a0=! # mute
+ KEYBOARD_KEY_ae=! # volume down
+ KEYBOARD_KEY_b0=! # volume up
+
+# Dell Touchpad
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:*
+ KEYBOARD_KEY_88=! # wireless switch
+ KEYBOARD_KEY_9e=!f21
+
+# Dell Latitude E[67]*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*E6*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*E7*:*
+ KEYBOARD_KEY_88=unknown # Fn-PrtScr rfkill - handled in HW
+
+# Dell XPS
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS*:*
+ KEYBOARD_KEY_8c=!unknown
+
+# Dell XPS L702x
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDellInc.:pnDellSystemXPSL702X:*
+ KEYBOARD_KEY_84=prog1
+ KEYBOARD_KEY_85=prog2
+
+# Dell XPS12 9Q33
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS12-9Q33*:*
+ KEYBOARD_KEY_88=wlan
+ KEYBOARD_KEY_65=direction # Screen Rotate
+
+# Dell G16 microphone mute
+evdev:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnDellG16*:*
+# Dell Latitude microphone mute
+evdev:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*:*
+# Dell Precision microphone mute
+evdev:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:*
+# Dell XPS microphone mute
+evdev:name:Dell WMI hotkeys:dmi:bvn*:bvr*:bd*:svnDell*:pnXPS*:*
+ KEYBOARD_KEY_100150=f20 # Mic mute toggle, should be micmute
+
+# Dell Latitude privacy microphone mute
+evdev:name:Dell Privacy Driver:dmi:bvn*:bvr*:bd*:svnDell*:pnLatitude*:*
+# Dell Precision privacy microphone mute
+evdev:name:Dell Privacy Driver:dmi:bvn*:bvr*:bd*:svnDell*:pnPrecision*:*
+ KEYBOARD_KEY_120001=f20 # Mic mute toggle, should be micmute
+
+# Dell Professional Sound Bar AE515
+evdev:input:b0003v413CpA506*
+ KEYBOARD_KEY_b002f=f20 # Mic mute toggle, should be micmute
+
+###########################################################
+# Everex
+###########################################################
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnEverex:pnXT5000*:*
+ KEYBOARD_KEY_5c=media
+ KEYBOARD_KEY_65=f21 # Fn+F5 Touchpad toggle
+ KEYBOARD_KEY_67=prog3 # Fan speed control button
+ KEYBOARD_KEY_6f=brightnessup
+ KEYBOARD_KEY_7f=brightnessdown
+ KEYBOARD_KEY_b2=www
+ KEYBOARD_KEY_ec=mail
+
+##########################################
+# Fujitsu
+##########################################
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pnAMILO*M*:*
+ KEYBOARD_KEY_97=prog2
+ KEYBOARD_KEY_9f=prog1
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pnAmilo*Li*1718:*
+ KEYBOARD_KEY_d6=wlan
+
+# Amilo Li 2732
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pnAMILO*Li*2732:*
+ KEYBOARD_KEY_d9=brightnessdown # Fn+F8 brightness down
+ KEYBOARD_KEY_ef=brightnessup # Fn+F9 brightness up
+ KEYBOARD_KEY_a9=switchvideomode # Fn+F10 Cycle between available video outputs
+
+# Amilo Pa 2548
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pn*AMILO*Pa*2548*:*
+ KEYBOARD_KEY_e0=volumedown
+ KEYBOARD_KEY_e1=volumeup
+ KEYBOARD_KEY_e5=prog1
+
+# Amilo Pro Edition V3505
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pn*AMILO*Pro*Edition*V3505*:*
+ KEYBOARD_KEY_a5=help # Fn+F1
+ KEYBOARD_KEY_a9=switchvideomode # Fn+F3
+ KEYBOARD_KEY_d9=brightnessdown # Fn+F8
+ KEYBOARD_KEY_e0=brightnessup # Fn+F9
+
+# Amilo Pro v3205
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pn*AMILO*Pro*V3205*:*
+ KEYBOARD_KEY_f4=f21 # FIXME: silent-mode decrease CPU/GPU clock
+ KEYBOARD_KEY_f7=switchvideomode # Fn+F3
+
+# Amilo Si 1520
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pn*Amilo*Si*1520*:*
+ KEYBOARD_KEY_e1=wlan
+ KEYBOARD_KEY_f3=wlan
+ KEYBOARD_KEY_ee=brightnessdown
+ KEYBOARD_KEY_e0=brightnessup
+ KEYBOARD_KEY_e2=bluetooth
+ KEYBOARD_KEY_f7=video
+
+# Esprimo Mobile V5
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pn*ESPRIMO*Mobile*V5*:*
+ KEYBOARD_KEY_a9=switchvideomode
+ KEYBOARD_KEY_d9=brightnessdown
+ KEYBOARD_KEY_df=sleep
+ KEYBOARD_KEY_ef=brightnessup
+
+# Esprimo Mobile V6
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pn*ESPRIMO*Mobile*V6*:*
+ KEYBOARD_KEY_ce=brightnessup
+ KEYBOARD_KEY_ef=brightnessdown
+
+###########################################################
+# GIGABYTE
+###########################################################
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnGIGABYTE:pnU2442:*
+ KEYBOARD_KEY_a0=! # mute
+
+###########################################################
+# Gemini
+###########################################################
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnGeminiDevices:pnNC14V1006:*
+ KEYBOARD_KEY_9c=enter
+
+###########################################################
+# Genius
+###########################################################
+
+# Slimstar 320
+evdev:input:b0003v0458p0708*
+ KEYBOARD_KEY_0900f0=scrollup
+ KEYBOARD_KEY_0900f1=scrolldown
+ KEYBOARD_KEY_0900f3=back
+ KEYBOARD_KEY_0900f2=forward
+ KEYBOARD_KEY_0900f5=wordprocessor
+ KEYBOARD_KEY_0900f6=spreadsheet
+ KEYBOARD_KEY_0900f4=presentation
+ KEYBOARD_KEY_0c0223=www
+ KEYBOARD_KEY_0900f7=chat
+ KEYBOARD_KEY_0900fb=prog1
+ KEYBOARD_KEY_0900f8=close
+ KEYBOARD_KEY_0900f9=graphicseditor
+ KEYBOARD_KEY_0900fd=scale
+ KEYBOARD_KEY_0900fc=screenlock
+
+###########################################################
+# Google
+###########################################################
+
+# Google Hangouts Meet speakermic and Google Meet speakermic
+evdev:input:b0003v18D1p8001*
+evdev:input:b0003v18D1p8007*
+ KEYBOARD_KEY_b002f=reserved # Disable micmute key
+
+###########################################################
+# Haier
+###########################################################
+
+# 7G-Series
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHaierComputer:pn7G-Series:*
+ KEYBOARD_KEY_91=wlan
+
+###########################################################
+# Hewlett Packard
+###########################################################
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pn*:*
+ KEYBOARD_KEY_81=fn_esc
+ KEYBOARD_KEY_89=battery # Fn+F8
+ KEYBOARD_KEY_8a=screenlock # Fn+F6
+ KEYBOARD_KEY_8b=camera
+ KEYBOARD_KEY_8c=media # music
+ KEYBOARD_KEY_8e=dvd
+ KEYBOARD_KEY_b1=help
+ KEYBOARD_KEY_b3=unknown # FIXME: Auto brightness
+ KEYBOARD_KEY_d7=wlan
+ KEYBOARD_KEY_92=brightnessdown # Fn+F7 (Fn+F9 on 6730b)
+ KEYBOARD_KEY_97=brightnessup # Fn+F8 (Fn+F10 on 6730b)
+ KEYBOARD_KEY_ee=switchvideomode # Fn+F4
+
+# Tablet
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[tT][aA][bB][lL][eE][tT]*:*
+ KEYBOARD_KEY_82=prog2 # Funny Key
+ KEYBOARD_KEY_83=prog1 # Q
+ KEYBOARD_KEY_84=tab
+ KEYBOARD_KEY_85=esc
+ KEYBOARD_KEY_86=pageup
+ KEYBOARD_KEY_87=pagedown
+
+# Pavilion
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[pP][aA][vV][iI][lL][iI][oO][nN]*:*
+ KEYBOARD_KEY_88=media # FIXME: quick play
+ KEYBOARD_KEY_b7=print
+ KEYBOARD_KEY_d8=!f23 # touchpad off
+ KEYBOARD_KEY_d9=!f22 # touchpad on
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*Pavilion*dv7*Notebook*PC:*
+ KEYBOARD_KEY_b7=print
+ KEYBOARD_KEY_c2=media # FIXME: quick play
+ KEYBOARD_KEY_c6=break
+ KEYBOARD_KEY_94=reserved
+
+# Pavilion 13 x360 (Tablet mode and SYSRQ key)
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[pP][aA][vV][iI][lL][iI][oO][nN]*13*x360*:*
+ KEYBOARD_KEY_d7=!f22 # touchpad off
+ KEYBOARD_KEY_d9=unknown
+ KEYBOARD_KEY_d2=sysrq # Fn+Print = SYSRQ
+
+# Pavilion gaming 15-dk1* (lid keys)
+evdev:atkbd:dmi:bvn*:bvr*:bd*:br*:efr*:svnHP:pnHPPavilionGamingLaptop15-dk1*:*
+ KEYBOARD_KEY_d7=unknown
+ KEYBOARD_KEY_d8=unknown
+
+# Spectre x360 13 (Prevents random airplane mode activation)
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[sS][pP][eE][cC][tT][rR][eE]*x360*13*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pn*[sS][pP][eE][cC][tT][rR][eE]*x360Convertible*:*
+ KEYBOARD_KEY_d7=unknown
+
+# Spectre x360 13
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPSpectrex360Convertible13*:*
+# ENVY x360 13
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPENVYx360Convertible13*:*
+ KEYBOARD_KEY_82=f20 # Microphone mute button, should be micmute
+
+# Spectre x360 16 2022
+evdev:name:Intel HID events:dmi:bvn*:bvr*:bd*:svnHP*:pn*HP[sS][pP][eE][cC][tT][rR][eE]*x3602-in-1*:*
+# ENVY x360
+evdev:name:Intel HID events:dmi:bvn*:bvr*:bd*:svnHP*:pnHPENVYx360Convertible*:*
+evdev:name:Intel HID events:dmi:bvn*:bvr*:bd*:svnHP*:pnHPENVYx3602-in-1*:*
+ KEYBOARD_KEY_08=unknown # Prevents random airplane mode activation
+
+# HP Elite x2 1013 G3
+evdev:atkbd:dmi:bvn*:bvr*:svnHP*:pnHPElitex21013G3:*
+ KEYBOARD_KEY_f8=unknown # rfkill is also reported by HP Wireless hotkeys
+ KEYBOARD_KEY_64=calendar
+ KEYBOARD_KEY_81=f20 # Microphone mute button
+ KEYBOARD_KEY_ee=switchvideomode # Switch display outputs
+ KEYBOARD_KEY_92=brightnessdown
+ KEYBOARD_KEY_97=brightnessup
+
+# HP Laptop 15s-eq0023nl
+evdev:atkbd:dmi:bvn*:bvr*:svnHP*:pnHPLaptop15s-eq0*:sku9MG38EA*ABZ:*
+ KEYBOARD_KEY_9d=102nd # Greater than/Less than
+
+# Elitebook
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*Compaq*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*EliteBook*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2230s*:*
+ KEYBOARD_KEY_88=presentation
+ KEYBOARD_KEY_d9=help # I key (high keycode: "info")
+
+# Presario
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*Presario*CQ*:*
+ KEYBOARD_KEY_d8=f21
+ KEYBOARD_KEY_d9=f21
+
+# 2510p 2530p
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2510p*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2530p*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*G60*Notebook*PC:*
+ KEYBOARD_KEY_d8=!f23 # touchpad off
+ KEYBOARD_KEY_d9=!f22 # touchpad on
+
+# 2570p
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2570p*:*
+ KEYBOARD_KEY_f8=wlan # Wireless HW switch button
+
+# Elitebook 2760p
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2760p*:*
+ KEYBOARD_KEY_89=battery # Fn+F8
+ KEYBOARD_KEY_f8=unknown # rfkill is also reported by HP Wireless hotkeys
+ KEYBOARD_KEY_86=volumeup
+ KEYBOARD_KEY_87=volumedown
+ KEYBOARD_KEY_92=brightnessdown
+ KEYBOARD_KEY_97=brightnessup
+ KEYBOARD_KEY_d8=!f23 # touchpad off
+ KEYBOARD_KEY_d9=!f22 # touchpad on
+ KEYBOARD_KEY_b3=unknown # FIXME: Auto brightness
+
+# TX2
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[tT][xX]2*:*
+ KEYBOARD_KEY_c2=media
+ KEYBOARD_KEY_d8=!f23 # Toggle touchpad button on tx2 (OFF)
+ KEYBOARD_KEY_d9=!f22 # Toggle touchpad button on tx2 (ON)
+
+# Presario 2100
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnPresario*2100*:*
+ KEYBOARD_KEY_f0=help
+ KEYBOARD_KEY_f1=screenlock
+ KEYBOARD_KEY_f3=search
+
+# Elitebook 8440p
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*EliteBook*8440p:*
+ KEYBOARD_KEY_88=www
+ KEYBOARD_KEY_a0=mute
+ KEYBOARD_KEY_ae=volumedown
+ KEYBOARD_KEY_b0=volumeup
+ KEYBOARD_KEY_ec=mail
+
+# Elitebook 8460p
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*EliteBook*8460p:*
+ KEYBOARD_KEY_f8=wlan # Wireless HW switch button
+ KEYBOARD_KEY_b3=prog1 # Fn+F11 - Ambient Light Sensor button
+ KEYBOARD_KEY_b1=prog2 # Fn+ESC - System information button
+
+# HDX9494nr
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHDX9494NR:*
+ KEYBOARD_KEY_b2=www # Fn+F3
+ KEYBOARD_KEY_d8=!f23 # touchpad off
+ KEYBOARD_KEY_d9=!f22 # touchpad on
+
+# HP EliteBook 725 G2
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPLicrice:*
+# HP EliteBook
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPEliteBook*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPEliteBook*:*
+# HP Elite x360
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPElite*x360*:*
+# HP Elite Dragonfly
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPEliteDragonfly*:*
+# HP ProBook 440 G2
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP440G2:*
+# HP ProBook
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*ProBook*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHP*ProBook*:*
+# HP ZBook
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPZBook*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPZBook*:*
+ KEYBOARD_KEY_81=f20 # Fn+F8; Microphone mute button, should be micmute
+
+# HP ZBook Studio G5
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPZBookStudioG5*:*
+ KEYBOARD_KEY_64=calendar # Calendar icon (Fn + F12)
+ KEYBOARD_KEY_6d=displaytoggle # Display icon
+ KEYBOARD_KEY_66=connect # Pickup phone button → connect → XF86Go
+ KEYBOARD_KEY_65=cancel # Hangup phone button → cancel → Cancel
+
+# HP ZBook 15 G2
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPZBook15G2:*
+ KEYBOARD_KEY_f8=wlan # Wireless HW switch button
+
+# HP ProBook 11 G1
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPProBook11G1:*
+ KEYBOARD_KEY_81=f20 # Fn+F8; Microphone mute button, should be micmute
+ KEYBOARD_KEY_d8=f21 # touchpad toggle
+ KEYBOARD_KEY_d9=f21 # touchpad toggle
+
+# HP ZBook Studio G4
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP:pnHPZBookStudioG4:*
+ KEYBOARD_KEY_f8=wlan # Wireless HW switch button
+
+# HP EliteBook Folio 1040 G2
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHPEliteBookFolio1040G2:*
+ KEYBOARD_KEY_d8=!f23 # touchpad off
+ KEYBOARD_KEY_d9=!f22 # touchpad on
+
+# HP EliteBook Folio G1
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP:pnHPEliteBookFolioG1:*
+ KEYBOARD_KEY_64=calendar
+ KEYBOARD_KEY_81=f20
+
+# HP EliteBook 845 G7
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPEliteBook845G7*:pvr*
+ KEYBOARD_KEY_68=unknown # Fn+F12 HP Programmable Key
+
+# HP ProBook 650
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP*ProBook*650*:*
+ KEYBOARD_KEY_f8=wlan # Wireless HW switch button
+
+# HP ProBook 6555b
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard:pnHPProBook6555b:*
+ KEYBOARD_KEY_b2=www # Earth
+
+# HP ProBook 440 G3
+evdev:atkbd:dmi:bvn*:bvr*:svnHP*:pnHP*ProBook*440*G3*:*
+# HP ProBook 640 G2
+evdev:atkbd:dmi:bvn*:bvr*:svnHP*:pnHP*ProBook*640*G2*:*
+ KEYBOARD_KEY_85=unknown # lid close; also reported via special evdev
+ KEYBOARD_KEY_f8=unknown # rf kill; also reported via special evdev
+
+# HP ProBook 645 G4
+evdev:atkbd:dmi:bvn*:bvr*:svnHP*:pnHP*ProBook*645*G4*:*
+ KEYBOARD_KEY_73=slash # Slash key
+ KEYBOARD_KEY_f8=wlan # Wireless HW switch button
+
+# HP ProBook 455 G5
+evdev:atkbd:dmi:bvn*:bvr*:svnHP*:pnHP*ProBook*455*G5*:*
+ KEYBOARD_KEY_85=unknown # lid close; also reported via special evdev
+ KEYBOARD_KEY_f8=wlan # Wireless HW switch button
+
+# HP ProBook 11G2
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPProBook11G2*:pvr*
+ KEYBOARD_KEY_d8=!f23 # Fn+F2: touchpad off
+ KEYBOARD_KEY_d9=!f22 # Fn+F2: touchpad on
+
+# HP mt44 Mobile Thin Client
+evdev:atkbd:dmi:bvn*:bvr*:svnHP*:pnHP*mt44*Mobile*Thin*Client*:*
+ KEYBOARD_KEY_64=calendar # Calendar icon (Fn + F12)
+ KEYBOARD_KEY_6d=displaytoggle # Display icon
+ KEYBOARD_KEY_66=connect # Pickup phone button → connect → XF86Go
+ KEYBOARD_KEY_65=cancel # Hangup phone button → cancel → Cancel
+ KEYBOARD_KEY_81=f20 # Fn+F8; Microphone mute button, should be micmute
+ KEYBOARD_KEY_85=unknown # lid close; also reported via special evdev
+ KEYBOARD_KEY_f8=wlan # Wireless HW switch button
+
+# HP Stream 7
+# The ACPI tables contains a gpio-keys entry for a non connected GPIO
+# causing spurious events, map this to unknown to disable it
+# older kernels use "ev:23" newer kernels "ev:3"
+evdev:name:gpio-keys:phys:gpio-keys/input0:ev:3:dmi:*:svnHewlett-Packard:pnHPStream7Tablet:*
+evdev:name:gpio-keys:phys:gpio-keys/input0:ev:23:dmi:*:svnHewlett-Packard:pnHPStream7Tablet:*
+ KEYBOARD_KEY_0=unknown
+
+# HP Omen
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP:pnOMEN*:pvr*
+ KEYBOARD_KEY_a1=!calc
+
+# HP Dev One
+evdev:atkbd:dmi:*:rvnHP:rn8A78:*
+ KEYBOARD_KEY_81=f20 # Fn+F8; Microphone mute button
+ KEYBOARD_KEY_f9=prog1 # Fn+F12; Programmable hotkey
+
+# HP Victus
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP:pnVictus*:pvr*
+ KEYBOARD_KEY_a1=!calc
+
+# HP Elite Dragonfly G2
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP*:pnHPEliteDragonflyG2*:pvr*
+ KEYBOARD_KEY_f8=unknown # rfkill is also reported by HP Wireless hotkeys
+ KEYBOARD_KEY_68=prog1 # Fn+F12 HP Programmable Key
+
+# HP Elite Dragonfly G2
+evdev:name:Intel HID events:dmi:bvn*:bvr*:bd*:svnHP*:pnHPEliteDragonflyG2*:pvr*
+ KEYBOARD_KEY_08=unknown # rfkill is also reported by HP Wireless hotkeys
+
+# HP Elite Dragonfly G3
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHP:pnHPEliteDragonfly13.5inchG3NotebookPC:pvr*
+ KEYBOARD_KEY_c9=up
+ KEYBOARD_KEY_d1=down
+ KEYBOARD_KEY_c8=pageup
+ KEYBOARD_KEY_d0=pagedown
+
+##########################################################
+# Huawei
+##########################################################
+
+# Huawei WMI hotkeys driver
+evdev:name:Huawei WMI hotkeys:dmi:bvn*:bvr*:bd*:svnHUAWEI:*
+ KEYBOARD_KEY_287=f20 # Microphone mute button, should be micmute
+
+# Huawei MACH-WX9 and EUL-WX9
+evdev:atkbd:dmi:bvn*:bvr*:svnHUAWEI*:pnMACH-WX9:*
+evdev:atkbd:dmi:bvn*:bvr*:svnHUAWEI*:pnEUL-WX9:*
+ KEYBOARD_KEY_f7=unknown
+ KEYBOARD_KEY_f8=fn
+
+evdev:name:Huawei WMI hotkeys:dmi:bvn*:bvr*:bd*:svnHUAWEI*:pnMACH-WX9:*
+evdev:name:Huawei WMI hotkeys:dmi:bvn*:bvr*:bd*:svnHUAWEI*:pnEUL-WX9:*
+ KEYBOARD_KEY_281=unknown # Brightness Down, also emitted by acpi-video, ignore
+ KEYBOARD_KEY_282=unknown # Brightness Up, also emitted by acpi-video, ignore
+
+###########################################################
+# IBM
+###########################################################
+
+# thinkpad_acpi driver
+evdev:name:ThinkPad Extra Buttons:dmi:bvn*:bvr*:bd*:svnIBM*:pn*:*
+ KEYBOARD_KEY_01=battery # Fn+F2
+ KEYBOARD_KEY_02=screenlock # Fn+F3
+ KEYBOARD_KEY_03=sleep # Fn+F4
+ KEYBOARD_KEY_04=wlan # Fn+F5
+ KEYBOARD_KEY_06=switchvideomode # Fn+F7
+ KEYBOARD_KEY_07=zoom # Fn+F8 screen expand
+ KEYBOARD_KEY_08=f24 # Fn+F9 undock
+ KEYBOARD_KEY_0b=suspend # Fn+F12
+ KEYBOARD_KEY_0f=brightnessup # Fn+Home
+ KEYBOARD_KEY_10=brightnessdown # Fn+End
+ KEYBOARD_KEY_11=kbdillumtoggle # Fn+PgUp - ThinkLight
+ KEYBOARD_KEY_13=zoom # Fn+Space
+ KEYBOARD_KEY_14=volumeup
+ KEYBOARD_KEY_15=volumedown
+ KEYBOARD_KEY_16=mute
+ KEYBOARD_KEY_17=prog1 # ThinkPad/ThinkVantage button (high keycode: "vendor")
+
+# IBM Thinkpad USB Keyboard Trackpoint
+evdev:input:b0003v04B3p301[89]*
+ KEYBOARD_KEY_900f0=screenlock
+ KEYBOARD_KEY_900f1=wlan
+ KEYBOARD_KEY_900f2=switchvideomode
+ KEYBOARD_KEY_900f3=suspend
+ KEYBOARD_KEY_900f4=brightnessup
+ KEYBOARD_KEY_900f5=brightnessdown
+ KEYBOARD_KEY_900f8=zoom
+
+###########################################################
+# Inventec
+###########################################################
+
+# Symphony
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnINVENTEC:pnSYMPHONY*6.0/7.0:*
+ KEYBOARD_KEY_f3=prog2
+ KEYBOARD_KEY_f4=prog1
+
+###########################################################
+# Lenovo
+###########################################################
+
+# thinkpad_acpi driver
+evdev:name:ThinkPad Extra Buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:*
+ KEYBOARD_KEY_01=screenlock
+ KEYBOARD_KEY_02=battery
+ KEYBOARD_KEY_03=sleep
+ KEYBOARD_KEY_04=wlan
+ KEYBOARD_KEY_06=switchvideomode
+ KEYBOARD_KEY_07=f21
+ KEYBOARD_KEY_08=f24
+ KEYBOARD_KEY_0b=suspend
+ KEYBOARD_KEY_0f=brightnessup
+ KEYBOARD_KEY_10=brightnessdown
+ KEYBOARD_KEY_11=kbdillumtoggle
+ KEYBOARD_KEY_13=zoom
+ KEYBOARD_KEY_14=volumeup
+ KEYBOARD_KEY_15=volumedown
+ KEYBOARD_KEY_16=mute
+ KEYBOARD_KEY_17=prog1
+ KEYBOARD_KEY_1a=f20 # Microphone mute button; should be micmute
+ KEYBOARD_KEY_45=bookmarks
+ KEYBOARD_KEY_46=prog2 # Fn + PrtSc, on Windows: Snipping tool
+ KEYBOARD_KEY_4a=prog3 # Fn + Right shift, on Windows: No idea
+ KEYBOARD_KEY_4b=chat # Fn + F9, on Windows: Notifications panel key
+ KEYBOARD_KEY_4c=connect # Fn + F10, on Windows: Answer (Teams) call
+ KEYBOARD_KEY_4d=cancel # Fn + F11, on Windows: Hangup/decline (Teams) call
+
+# ThinkPad Keyboard with TrackPoint
+evdev:input:b0003v17EFp6009*
+ KEYBOARD_KEY_090012=screenlock # Fn+F2
+ KEYBOARD_KEY_090013=battery # Fn+F3
+ KEYBOARD_KEY_090014=wlan # Fn+F5
+ KEYBOARD_KEY_090016=switchvideomode # Fn+F7
+ KEYBOARD_KEY_090017=f21 # Fn+F8 touchpad toggle
+ KEYBOARD_KEY_090019=suspend # Fn+F12
+ KEYBOARD_KEY_09001a=brightnessup # Fn+Home
+ KEYBOARD_KEY_09001b=brightnessdown # Fn+End
+ KEYBOARD_KEY_09001d=zoom # Fn+Space
+ KEYBOARD_KEY_090011=prog1 # ThinkVantage button
+ KEYBOARD_KEY_090015=camera # Fn+F6 headset/camera VoIP key ??
+ KEYBOARD_KEY_090010=f20 # Microphone mute button; should be micmute
+
+# Lenovo 3000
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*3000*:pvr*
+ KEYBOARD_KEY_8b=switchvideomode # Fn+F7 video
+ KEYBOARD_KEY_96=wlan # Fn+F5 wireless
+ KEYBOARD_KEY_97=sleep # Fn+F4 suspend
+ KEYBOARD_KEY_98=suspend # Fn+F12 hibernate
+ KEYBOARD_KEY_b4=prog1 # Lenovo Care
+
+# "Lenovo Care" Key of the 3000 N200
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO:pn0769AP2:pvr3000N200:*
+ KEYBOARD_KEY_b4=prog1
+
+# Lenovo IdeaPad
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*:pvr*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnS10-*:*
+ KEYBOARD_KEY_81=rfkill # does nothing in BIOS
+ KEYBOARD_KEY_83=display_off # BIOS toggles screen state
+ KEYBOARD_KEY_b9=brightnessup # does nothing in BIOS
+ KEYBOARD_KEY_ba=brightnessdown # does nothing in BIOS
+ KEYBOARD_KEY_f1=camera # BIOS toggles camera power
+ KEYBOARD_KEY_f2=f21 # touchpad toggle (key alternately emits F2 and F3)
+ KEYBOARD_KEY_f3=f21
+
+# Lenovo IdeaPad 5
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrIdeaPad5*:*
+ KEYBOARD_KEY_81=insert
+
+# Thinkpad X200_Tablet
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrThinkPad*X2*T*:rvn*
+ KEYBOARD_KEY_5d=menu
+ KEYBOARD_KEY_63=fn
+ KEYBOARD_KEY_66=screenlock
+ KEYBOARD_KEY_67=cyclewindows # bezel circular arrow
+ KEYBOARD_KEY_68=setup # bezel setup / menu
+ KEYBOARD_KEY_6c=direction # rotate screen
+
+# ThinkPad X6 Tablet
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrThinkPad*X6*Tablet*:rvn*
+ KEYBOARD_KEY_6c=direction # rotate
+ KEYBOARD_KEY_68=leftmeta # toolbox
+ KEYBOARD_KEY_6b=esc # escape
+ KEYBOARD_KEY_6d=right # right on d-pad
+ KEYBOARD_KEY_6e=left # left on d-pad
+ KEYBOARD_KEY_71=up # up on d-pad
+ KEYBOARD_KEY_6f=down # down on d-pad
+ KEYBOARD_KEY_69=enter # enter on d-pad
+
+# ThinkPad X41 Tablet
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnIBM*:pn18666TU:*
+ KEYBOARD_KEY_6c=direction # rotate
+ KEYBOARD_KEY_68=leftmeta # toolbox
+ KEYBOARD_KEY_6b=esc # escape
+ KEYBOARD_KEY_69=enter # enter on d-pad
+
+# IdeaPad
+evdev:name:Ideapad extra buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:*
+ KEYBOARD_KEY_0d=rfkill # airplane mode switch (toggle all wireless devices)
+ KEYBOARD_KEY_08=f20 # micmute
+ KEYBOARD_KEY_42=f23
+ KEYBOARD_KEY_43=f22
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*Y550*:pvr*
+ KEYBOARD_KEY_95=media
+ KEYBOARD_KEY_a3=play
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*U300s*:pvr*
+ KEYBOARD_KEY_f1=f21
+ KEYBOARD_KEY_ce=f20 # micmute
+
+evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO*:pn*IdeaPad*Z370*:pvr*
+# Lenovo IdeaPad Flex 5
+evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO:*:pvrIdeaPadFlex5*
+# Lenovo Yoga S940 (9th gen)
+evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO:pn81Q7*:pvrLenovoYogaS940:*
+ KEYBOARD_KEY_a0=!mute
+ KEYBOARD_KEY_ae=!volumedown
+ KEYBOARD_KEY_b0=!volumeup
+
+evdev:atkbd:dmi:*:svnLENOVO:*:pvrLenovoYoga300-11IBR:*
+ KEYBOARD_KEY_62=unknown # Touchpad on, also emitted by "Ideapad extra buttons", ignore
+ KEYBOARD_KEY_63=unknown # Touchpad off, also emitted by "Ideapad extra buttons", ignore
+
+# Lenovo Y50-70
+evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO*:pn*20378*:pvr*
+ KEYBOARD_KEY_f3=f21 # Fn+F6 (toggle touchpad)
+
+# V480
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*Lenovo*V480*:pvr*
+ KEYBOARD_KEY_f1=f21
+
+# Lenovo ThinkCentre M800z/M820z/M920z AIO machines
+# key_scancode 00 is KEY_MICMUTE
+evdev:name:Microphone Mute Button:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:*
+ KEYBOARD_KEY_00=f20
+
+# enhanced USB keyboard
+evdev:input:b0003v04B3p301B*
+ KEYBOARD_KEY_90001=prog1 # ThinkVantage
+ KEYBOARD_KEY_90002=screenlock
+ KEYBOARD_KEY_90003=file
+ KEYBOARD_KEY_90004=wordprocessor
+ KEYBOARD_KEY_90005=spreadsheet
+ KEYBOARD_KEY_90006=calc
+ KEYBOARD_KEY_90007=mail
+ KEYBOARD_KEY_90008=www
+
+# Lenovo Ideapad D330-10IGM
+evdev:name:SIPODEV Lenovo HID Device:dmi:*:svnLENOVO:*:pvrLenovoideapadD330-10IGM:*
+ KEYBOARD_KEY_70073=f21 # Fn+Supr (Touchpad toggle)
+
+evdev:name:SIPODEV Lenovo HID Device Consumer Control:dmi:*:svnLENOVO:*:pvrLenovoideapadD330-10IGM:*
+ KEYBOARD_KEY_c00ff=fn_esc # Fn+Tab (FnLk toggle)
+
+###########################################################
+# LG
+###########################################################
+
+# LG Gram
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLGElectronics:pn1*.AAS*:*
+ KEYBOARD_KEY_a0=!mute
+ KEYBOARD_KEY_ae=!volumedown
+ KEYBOARD_KEY_b0=!volumeup
+
+###########################################################
+# Logitech
+###########################################################
+
+# 27MHz wireless keyboards, these all have a PID of 00?? and all send c10xx
+# logitech custom consumer usage-page codes. The mappings below are the most
+# common, but some mapping may differ, especially the Fn F1-F12 mappings
+evdev:input:b0003v046Dp00*
+ KEYBOARD_KEY_c0183=media # HUT:config, kbd:Media/Music player button
+ KEYBOARD_KEY_c1001=chat # Messenger button
+ KEYBOARD_KEY_c1002=camera # Webcam button
+ KEYBOARD_KEY_c1003=audio # Music Browser button
+ KEYBOARD_KEY_c1004=video # Video Browser button
+ KEYBOARD_KEY_c1005=images # Image Browser button
+ KEYBOARD_KEY_c100a=documents # Document Browser button
+ KEYBOARD_KEY_c100b=rewind # Rewind button
+ KEYBOARD_KEY_c100c=fastforward # Fast Forward button
+ KEYBOARD_KEY_c100f=f14 # Track 1 button → f14 → XF86Launch5
+ KEYBOARD_KEY_c1010=f15 # Track 2 button → f15 → XF86Launch6
+ KEYBOARD_KEY_c1011=channeldown # Playlist back button
+ KEYBOARD_KEY_c1012=channelup # Playlist advance button
+ KEYBOARD_KEY_c1013=camera # Webcam button
+ KEYBOARD_KEY_c1014=coffee # Status button
+ KEYBOARD_KEY_c1015=record # Record symbol button
+ KEYBOARD_KEY_c1016=sound # Flame/CD burning → sound → XF86AudioPreset
+ KEYBOARD_KEY_c1017=ejectcd # Eject button
+ KEYBOARD_KEY_c1018=config # Remote-control ico
+ KEYBOARD_KEY_c1019=f14 # Preset 1 → f14 → XF86Launch5
+ KEYBOARD_KEY_c101a=f15 # Preset 2 → f15 → XF86Launch6
+ KEYBOARD_KEY_c101b=f16 # Preset 3 → f16 → XF86Launch7
+ KEYBOARD_KEY_c101c=cyclewindows # 2 overlapping windows icon
+ KEYBOARD_KEY_c101f=zoomout # zoom - button / - side of zoomrocker
+ KEYBOARD_KEY_c1020=zoomin # zoom + button / + side off zoom rocker
+ KEYBOARD_KEY_c1021=zoomreset # 100% symbol on kbd left side
+ KEYBOARD_KEY_c1023=close # [x] symbol on kbd left side
+ KEYBOARD_KEY_c1027=menu # Hamburger menu icon
+ KEYBOARD_KEY_c1028=angle # Rotate button
+ KEYBOARD_KEY_c1029=shuffle # Shuffle button
+ KEYBOARD_KEY_c102a=back # Back button
+ KEYBOARD_KEY_c102b=cyclewindows # Empty window icon
+ KEYBOARD_KEY_c102c=fn # Fn key
+ KEYBOARD_KEY_c102d=www # www text + magnifierglass icon
+ KEYBOARD_KEY_c1031=connect # Pickup phone button → connect → XF86Go
+ KEYBOARD_KEY_c1032=cancel # Hangup phone button → cancel → Cancel
+ KEYBOARD_KEY_c1041=help # Help text or icon (Fn + F1)
+ KEYBOARD_KEY_c1042=wordprocessor # Word icon (Fn + F2)
+ KEYBOARD_KEY_c1043=spreadsheet # Excel icon (Fn + F3)
+ KEYBOARD_KEY_c1044=presentation # Presentation icon (Fn + F4)
+ KEYBOARD_KEY_c1045=undo # Undo Icon (Fn + F5)
+ KEYBOARD_KEY_c1046=redo # Redo Icon (Fn + F6)
+ KEYBOARD_KEY_c1047=print # Printer Icon (Fn + F7)
+ KEYBOARD_KEY_c1048=save # Floppy Icon (Fn + F8)
+ KEYBOARD_KEY_c1049=prog1 # Smartkey A (Fn + F9) → XF86Launch1
+ KEYBOARD_KEY_c104a=prog2 # Smartkey B (Fn + F10) → XF86Launch2
+ KEYBOARD_KEY_c104b=prog3 # Smartkey C (Fn + F11) → XF86Launch3
+ KEYBOARD_KEY_c104c=prog4 # Smartkey D (Fn + F12) → XF86Launch4
+
+# Cordless Access Keyboard (27 MHz, modelnumber Y-RH35)
+evdev:input:b0003v046Dp0042*
+ KEYBOARD_KEY_c1041=new
+ KEYBOARD_KEY_c1042=reply
+ KEYBOARD_KEY_c1043=forward
+ KEYBOARD_KEY_c1044=send
+ KEYBOARD_KEY_c1045=previoussong
+ KEYBOARD_KEY_c1046=nextsong
+ KEYBOARD_KEY_c1047=playpause
+ KEYBOARD_KEY_c1048=stopcd
+ KEYBOARD_KEY_c1049=file
+ KEYBOARD_KEY_c104a=documents
+ KEYBOARD_KEY_c104b=images
+ KEYBOARD_KEY_c104c=audio
+
+# "Cordless Rechargeable Desktop" keyboard (27 MHz, modelnumber Y-RK49)
+evdev:input:b0003v046Dp0045*
+ KEYBOARD_KEY_c1041=new
+ KEYBOARD_KEY_c1042=reply
+ KEYBOARD_KEY_c1043=forward
+ KEYBOARD_KEY_c1044=send
+ KEYBOARD_KEY_c1049=file
+ KEYBOARD_KEY_c104a=documents
+ KEYBOARD_KEY_c104b=images
+ KEYBOARD_KEY_c104c=audio
+
+# S510 keyboard (27 MHz, modelnumber Y-RAK73)
+evdev:input:b0003v046Dp0056*
+ KEYBOARD_KEY_c1041=battery # Battery icon (Fn + F1)
+
+# MX3000 keyboard (27 MHz, modelnumber Y-RAM74)
+# We ignore the scroll up / down keypress events since these buttons also
+# generate scroll-wheel events and we do not want to generate duplicate events
+# Note if the "Special Button Function" in the HID++ features register gets
+# cleared then the scroll-wheel events for these buttons go away and then
+# tilting the scrollwheel left/right starts sending c1022 / c1024 events
+evdev:input:b0003v046Dp0057*
+ KEYBOARD_KEY_c1041=battery # Battery icon (Fn + F1)
+
+#KEYBOARD_KEY_c101d=scrolldown # Button below scrollwheel (see note above)
+#KEYBOARD_KEY_c101e=scrollup # Button above scrollwheel (see note above)
+#KEYBOARD_KEY_c1022=scrollleft # Left click on scroll-wheel (see note above)
+#KEYBOARD_KEY_c1024=scrollright # Right click on scroll-wheel (see note above)
+
+# MX3200 keyboard (27 MHz, modelnumber Y-RAV80)
+evdev:input:b0003v046Dp005C*
+ KEYBOARD_KEY_c1001=phone # VOIP button
+ KEYBOARD_KEY_c1016=record # Record button
+ KEYBOARD_KEY_c1041=wordprocessor # Word icon (Fn + F1)
+ KEYBOARD_KEY_c1042=spreadsheet # Excel icon (Fn + F2)
+ KEYBOARD_KEY_c1043=calendar # Calendar icon (Fn + F3)
+ KEYBOARD_KEY_c1044=documents # My Documents icon (Fn + F4)
+ KEYBOARD_KEY_c1045=prog1 # Smartkey A (Fn + F5) → XF86Launch1
+ KEYBOARD_KEY_c1046=prog2 # Smartkey B (Fn + F6) → XF86Launch2
+ KEYBOARD_KEY_c1047=prog3 # Smartkey C (Fn + F7) → XF86Launch3
+ KEYBOARD_KEY_c1048=prog4 # Smartkey D (Fn + F8) → XF86Launch4
+
+# EX100 keyboard (27 MHz, modelnumber Y-RBH94)
+evdev:input:b0003v046Dp0065*
+ KEYBOARD_KEY_c104b=battery # Battery icon (Fn + F11)
+ KEYBOARD_KEY_c104c=ejectcd # Eject icon (Fn + F12)
+
+# S520 keyboard (27 MHz, modelnumber Y-RBA97)
+# Note this one uses non-standard codes for FN + F9 - Fn + F12?
+evdev:input:b0003v046Dp0066*
+ KEYBOARD_KEY_c100e=prog4 # Smartkey D (Fn + F12) → XF86Launch4
+ KEYBOARD_KEY_c1019=prog1 # Smartkey A (Fn + F9) → XF86Launch1
+ KEYBOARD_KEY_c101a=prog2 # Smartkey B (Fn + F10) → XF86Launch2
+ KEYBOARD_KEY_c101b=prog3 # Smartkey C (Fn + F11) → XF86Launch3
+ KEYBOARD_KEY_c1041=wordprocessor # Word icon (Fn + F1)
+ KEYBOARD_KEY_c1042=spreadsheet # Excel icon (Fn + F2)
+ KEYBOARD_KEY_c1043=presentation # Presentation icon (Fn + F3)
+ KEYBOARD_KEY_c1044=calendar # Calendar icon (Fn + F4)
+ KEYBOARD_KEY_c1045=homepage # Home icon (Fn + F5)
+ KEYBOARD_KEY_c1046=email # Letter icon (Fn + F6)
+ KEYBOARD_KEY_c1047=search # Magnifying glass icon (Fn + F7)
+ KEYBOARD_KEY_c1048=config # Window with gear icon (Fn + F8)
+ KEYBOARD_KEY_c106f=battery # Battery icon
+
+# S510 remote control (27 MHz)
+evdev:input:b0003v046Dp00FE*
+ KEYBOARD_KEY_c1018=media # Media button
+
+# MX5000 keyboard (HID proxy mode and bluetooth matches)
+evdev:input:b0003v046DpB305*
+evdev:input:b0005v046DpB305*
+ KEYBOARD_KEY_c0183=media # HUT says config, kbd says Media
+ KEYBOARD_KEY_c0230=zoomreset # HUT says fullscreen, kbd says 100%
+ KEYBOARD_KEY_c1004=send # Send and receive / sync button
+ KEYBOARD_KEY_c1006=coffee # Status (online/away) button
+ KEYBOARD_KEY_c1007=camera # Webcam button
+ KEYBOARD_KEY_c100c=kbd_lcd_menu1 # 1st button below the builtin LCD
+ KEYBOARD_KEY_c100d=kbd_lcd_menu4 # 4th button below the builtin LCD
+ KEYBOARD_KEY_c100e=kbd_lcd_menu2 # 2nd button below the builtin LCD
+ KEYBOARD_KEY_c100f=kbd_lcd_menu3 # 3th button below the builtin LCD
+ KEYBOARD_KEY_c1038=prog1 # Smartkey A → XF86Launch1
+ KEYBOARD_KEY_c1039=prog2 # Smartkey B → XF86Launch2
+ KEYBOARD_KEY_c103a=prog3 # Smartkey C → XF86Launch3
+ KEYBOARD_KEY_c103b=prog4 # Smartkey D → XF86Launch4
+ KEYBOARD_KEY_c1040=fn_esc # Fn mode on/off toggle
+
+# Dinovo Edge (HID proxy mode and bluetooth matches)
+evdev:input:b0003v046DpB309*
+evdev:input:b0005v046DpB309*
+ KEYBOARD_KEY_c102c=fn # Fn key
+ KEYBOARD_KEY_c1038=prog1 # Fn + F9 Smartkey A → XF86Launch1
+ KEYBOARD_KEY_c1039=prog2 # Fn + F10 Smartkey B → XF86Launch2
+ KEYBOARD_KEY_c103a=prog3 # Fn + F11 Smartkey C → XF86Launch3
+ KEYBOARD_KEY_c103b=prog4 # Fn + F12 Smartkey D → XF86Launch4
+ KEYBOARD_KEY_c1050=phone # Fn + F1 Phone button
+
+# MX5500 keyboard (HID proxy mode and bluetooth matches)
+evdev:input:b0003v046DpB30B*
+evdev:input:b0005v046DpB30B*
+ KEYBOARD_KEY_c0183=media # HUT says consumer control configuration, kbd says Media Center
+ KEYBOARD_KEY_c100e=images # Camera icon, "Photo Gallery"
+ KEYBOARD_KEY_c100f=config # Window with gear icon
+ KEYBOARD_KEY_c102c=fn # Fn key
+ KEYBOARD_KEY_c1038=prog1 # Smartkey A → XF86Launch1
+ KEYBOARD_KEY_c1039=prog2 # Smartkey B → XF86Launch2
+ KEYBOARD_KEY_c103a=prog3 # Smartkey C → XF86Launch3
+ KEYBOARD_KEY_c103b=prog4 # Smartkey D → XF86Launch4
+
+# Logitech K811
+evdev:input:b0005v046DpB317*
+ KEYBOARD_KEY_70047=brightnessdown
+ KEYBOARD_KEY_70048=brightnessup
+
+# iTouch
+evdev:input:b0003v046DpC308*
+ KEYBOARD_KEY_90001=shop # Shopping
+ KEYBOARD_KEY_90002=config # iTouch
+ KEYBOARD_KEY_90003=finance # Finance
+ KEYBOARD_KEY_90004=prog1 # My Sites
+ KEYBOARD_KEY_90005=prog2 # Community
+ KEYBOARD_KEY_c0183=media # Media
+
+# Cordless Desktop S510
+evdev:input:b0003v046DpC50C*
+ KEYBOARD_KEY_d4=up # zoomin
+ KEYBOARD_KEY_cc=down # zoomout
+
+# Wave cordless
+evdev:input:b0003v046DpC317*
+ KEYBOARD_KEY_9001c=scale # expo
+ KEYBOARD_KEY_9001f=down # zoomout
+ KEYBOARD_KEY_90020=up # zoomin
+ KEYBOARD_KEY_9003d=prog1 # gadget
+ KEYBOARD_KEY_90005=camera
+ KEYBOARD_KEY_90018=media
+ KEYBOARD_KEY_90041=wordprocessor
+ KEYBOARD_KEY_90042=spreadsheet
+ KEYBOARD_KEY_90043=calendar
+ KEYBOARD_KEY_90044=prog2 # fn+f4 (program a)
+ KEYBOARD_KEY_90045=prog3 # fn+f5 (program b)
+ KEYBOARD_KEY_90046=prog4 # fn+f6 (program c)
+ KEYBOARD_KEY_90048=messenger # fn+f8 (msn messenger)
+ KEYBOARD_KEY_9002d=search # fn+f10 (search www)
+ KEYBOARD_KEY_9004b=find # fn+f11 (search pc)
+ KEYBOARD_KEY_9004c=ejectclosecd
+
+# Wave cordless
+evdev:input:b0003v046DpC517*
+ KEYBOARD_KEY_c101f=down # zoomout
+ KEYBOARD_KEY_c1020=up # zoomin
+ KEYBOARD_KEY_c1005=camera
+ KEYBOARD_KEY_c0183=media
+ KEYBOARD_KEY_c1041=wordprocessor
+ KEYBOARD_KEY_c1042=spreadsheet
+ KEYBOARD_KEY_c1043=calendar
+ KEYBOARD_KEY_c1044=prog2 # fn+f4 (program a)
+ KEYBOARD_KEY_c1045=prog3 # fn+f5 (program b)
+ KEYBOARD_KEY_c1046=prog4 # fn+f6 (program c)
+ KEYBOARD_KEY_c1048=messenger # fn+f8 (msn messenger)
+ KEYBOARD_KEY_c104a=find # fn+f10 (search www)
+ KEYBOARD_KEY_c104c=ejectclosecd
+
+# Cordless Wave Pro
+evdev:input:b0003v046DpC529*
+ KEYBOARD_KEY_0c01b6=camera
+ KEYBOARD_KEY_0c0183=media
+ KEYBOARD_KEY_0c0184=wordprocessor
+ KEYBOARD_KEY_0c0186=spreadsheet
+ KEYBOARD_KEY_0c018e=calendar
+ KEYBOARD_KEY_0c0223=homepage
+ KEYBOARD_KEY_0c01bc=messenger
+ KEYBOARD_KEY_0c018a=mail
+ KEYBOARD_KEY_0c0221=search
+ KEYBOARD_KEY_0c00b8=ejectcd
+ KEYBOARD_KEY_0c022d=up # zoomin
+ KEYBOARD_KEY_0c022e=down # zoomout
+
+# Logitech Presenter R400
+evdev:input:b0003v046DpC52D*
+ KEYBOARD_KEY_070029=presentation
+ KEYBOARD_KEY_07003e=presentation
+ KEYBOARD_KEY_070037=displaytoggle
+
+# Internet Navigator
+evdev:input:b0003v046DpC309*
+ KEYBOARD_KEY_90001=chat # Messenger/SMS
+ KEYBOARD_KEY_90002=camera # webcam
+ KEYBOARD_KEY_90003=prog1 # iTouch
+ KEYBOARD_KEY_90004=shop # Shopping
+ KEYBOARD_KEY_c0201=new # New (F1)
+ KEYBOARD_KEY_c0289=reply # Reply mail (F2)
+ KEYBOARD_KEY_c028b=forwardmail # Forward mail (F3)
+ KEYBOARD_KEY_c028c=send # Send (F4)
+ KEYBOARD_KEY_c021a=undo # Undo (F5)
+ KEYBOARD_KEY_c0279=redo # Redo (F6)
+ KEYBOARD_KEY_c0208=print # Print (F7)
+ KEYBOARD_KEY_c0207=save # Save (F8)
+ KEYBOARD_KEY_c0194=file # My Computer (F9)
+ KEYBOARD_KEY_c01a7=documents # My Documents (F10)
+ KEYBOARD_KEY_c01b6=images # My Pictures (F11)
+ KEYBOARD_KEY_c01b7=audio # My Music (F12)
+
+
+###########################################################
+# Maxdata
+###########################################################
+
+# Pro 7000
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMAXDATA:pnPro*7000*:*
+ KEYBOARD_KEY_97=prog2
+ KEYBOARD_KEY_9f=prog1
+ KEYBOARD_KEY_a0=mute # Fn+F5
+ KEYBOARD_KEY_82=www
+ KEYBOARD_KEY_ec=email
+ KEYBOARD_KEY_ae=volumedown # Fn+Down
+ KEYBOARD_KEY_b0=volumeup # Fn+Up
+ KEYBOARD_KEY_df=suspend # Fn+F2
+ KEYBOARD_KEY_f5=help
+
+###########################################################
+# Medion
+###########################################################
+
+# Akoya
+evdev:atkbd:dmi:bvn*:bvr*:svnMEDION*:pnS3409*:*
+evdev:atkbd:dmi:bvn*:bvr*:svnMedion*:pnAkoya*:*
+evdev:atkbd:dmi:bvn*:bvr*:svnMedion*:pnP6669*:*
+ KEYBOARD_KEY_a0=!mute
+ KEYBOARD_KEY_ae=!volumedown
+ KEYBOARD_KEY_b0=!volumeup
+ KEYBOARD_KEY_19=!p
+ KEYBOARD_KEY_df=sleep
+
+# FID2060
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMEDION*:pn*FID2060*:*
+ KEYBOARD_KEY_6b=channeldown # Thottle Down
+ KEYBOARD_KEY_6d=channelup # Thottle Up
+
+# NB-A555
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMEDIONNB:pnA555*:*
+ KEYBOARD_KEY_63=www # N button
+ KEYBOARD_KEY_66=prog1 # link 1 button
+ KEYBOARD_KEY_67=email # envelope button
+ KEYBOARD_KEY_69=prog2 # link 2 button
+
+# Erazer
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMedion*:pnErazer*:*
+ KEYBOARD_KEY_a0=!mute
+ KEYBOARD_KEY_ae=!volumedown
+ KEYBOARD_KEY_b0=!volumeup
+
+###########################################################
+# Microsoft
+###########################################################
+
+# Microsoft Natural Ergonomic Keyboard 4000
+evdev:input:b0003v045Ep00DB*
+ KEYBOARD_KEY_c022d=up # zoomin
+ KEYBOARD_KEY_c022e=down # zoomout
+
+# Microsoft (Razer produced) Reclusa keyboard
+evdev:input:b0003v1532p0200*
+ KEYBOARD_KEY_c01c9=shuffle
+ KEYBOARD_KEY_c01ca=up # zoomin
+ KEYBOARD_KEY_c01cb=down # zoomout
+
+###########################################################
+# MSI (aka "Micro Star")
+###########################################################
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pn*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*:*
+ KEYBOARD_KEY_76=f21 # Toggle touchpad, sends meta+ctrl+toggle
+ KEYBOARD_KEY_91=config # MSIControl Center
+ KEYBOARD_KEY_a0=mute # Fn+F9
+ KEYBOARD_KEY_ae=volumedown # Fn+F7
+ KEYBOARD_KEY_b0=volumeup # Fn+F8
+ KEYBOARD_KEY_b2=www # e button
+ KEYBOARD_KEY_c2=ejectcd
+ KEYBOARD_KEY_df=sleep # Fn+F12
+ KEYBOARD_KEY_e2=bluetooth # satellite dish2
+ KEYBOARD_KEY_e4=f21 # Fn+F3 Touchpad disable
+ KEYBOARD_KEY_ec=email # envelope button
+ KEYBOARD_KEY_ee=camera # Fn+F6 camera disable
+ KEYBOARD_KEY_f1=f20 # Microphone mute
+ KEYBOARD_KEY_f2=rotate_display # Rotate screen
+ KEYBOARD_KEY_f6=wlan # satellite dish1
+ KEYBOARD_KEY_f7=brightnessdown # Fn+F4
+ KEYBOARD_KEY_f8=brightnessup # Fn+F5
+ KEYBOARD_KEY_f9=search
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pnGE60*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pnGE70*:*
+ KEYBOARD_KEY_c2=ejectcd
+
+# some MSI models generate ACPI/input events on the LNXVIDEO input devices,
+# plus some extra synthesized ones on atkbd as an echo of actually changing the
+# brightness; so ignore those atkbd ones, to avoid loops
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pn*U-100*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pn*U100*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pn*N033:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*VR420*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*PR200*:*
+ KEYBOARD_KEY_f7=reserved
+ KEYBOARD_KEY_f8=reserved
+
+# MSI Wind U90/U100 generates separate touchpad on/off keycodes so ignore touchpad toggle keycode.
+# Also ignore Wi-Fi and Bluetooth keycodes, because they are generated when the HW rfkill state
+# changes, but the userspace also toggles the SW rfkill upon receiving these keycodes.
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pnU90/U100:*
+ KEYBOARD_KEY_e4=unknown
+ KEYBOARD_KEY_e2=unknown
+ KEYBOARD_KEY_f6=unknown
+
+# Keymaps MSI Prestige And MSI Modern FnKeys and Special keys
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*Prestige*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*Modern*:*
+ KEYBOARD_KEY_91=prog1 # Fn+F7 Creation Center, sometime F7
+ KEYBOARD_KEY_f2=prog2 # Fn+F12 Screen rotation
+ KEYBOARD_KEY_8d=prog3 # Fn+A Change True Color selections
+ KEYBOARD_KEY_8c=prog4 # Fn+Z Launch True Color
+ KEYBOARD_KEY_f5=fn_esc # Fn+esc Toggle the behaviour of Fn keys
+ KEYBOARD_KEY_97=unknown # Lid close
+ KEYBOARD_KEY_98=unknown # Lid open
+
+evdev:name:MSI Laptop hotkeys:dmi:bvn*:bvr*:bd*:svn*:pnM[iI][cC][rR][oO]-S[tT][aA][rR]*:*
+ KEYBOARD_KEY_0213=f22
+ KEYBOARD_KEY_0214=f23
+
+##########################################
+# NEC
+##########################################
+
+# VersaPro VG-S
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnNEC:pnPC-VK22TGSGS:pvr*
+ KEYBOARD_KEY_a8=f21 # Fn+Space touchpad toggle
+ KEYBOARD_KEY_67=brightnessdown # Fn+F7 brightness down
+ KEYBOARD_KEY_65=brightnessup # Fn+F8 brightness up
+ KEYBOARD_KEY_71=battery # Fn+F4 ECO
+
+###########################################################
+# Olimex
+###########################################################
+
+# Teres-I
+evdev:input:b0003v15BAp003C*
+ KEYBOARD_KEY_70066=sleep # Fn+F1
+ KEYBOARD_KEY_700f6=wlan # Fn+F2
+ KEYBOARD_KEY_700c7=f21 # Fn+F3 touchpad toggle
+ KEYBOARD_KEY_7006f=brightnessdown # Fn+F7
+ KEYBOARD_KEY_70070=brightnessup # Fn+F8
+ KEYBOARD_KEY_7006e=switchvideomode # Fn+F9
+
+###########################################################
+# OLPC
+###########################################################
+
+# XO-1 and XO-1.5
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnOLPC:pnXO:*
+# XO-1.75 and XO-1.4 (sp/ is the Security Processor)
+evdev:name:AT Translated Set 2 keyboard:phys:sp/serio*/input*:ev:120013:*
+ KEYBOARD_LED_CAPSLOCK=0
+ KEYBOARD_LED_NUMLOCK=0
+ KEYBOARD_KEY_59=fn
+ KEYBOARD_KEY_81=fn_esc
+ KEYBOARD_KEY_f9=camera
+ KEYBOARD_KEY_f8=sound # Fn+CAMERA = Mic
+ KEYBOARD_KEY_43=brightnessdown
+ KEYBOARD_KEY_44=brightnessup
+ KEYBOARD_KEY_57=volumedown
+ KEYBOARD_KEY_58=volumeup
+ KEYBOARD_KEY_bb=f1
+ KEYBOARD_KEY_bc=f2
+ KEYBOARD_KEY_bd=f3
+ KEYBOARD_KEY_be=f4
+ KEYBOARD_KEY_bf=f5
+ KEYBOARD_KEY_c0=f6
+ KEYBOARD_KEY_c1=f7
+ KEYBOARD_KEY_c2=f8
+ KEYBOARD_KEY_c3=f9
+ KEYBOARD_KEY_c4=f10
+ KEYBOARD_KEY_d8=f12
+ KEYBOARD_KEY_f7=f13
+ KEYBOARD_KEY_f6=f14
+ KEYBOARD_KEY_f5=f15
+ KEYBOARD_KEY_f4=f16
+ KEYBOARD_KEY_f3=f17
+ KEYBOARD_KEY_f2=f18
+ KEYBOARD_KEY_f1=f19
+ KEYBOARD_KEY_f0=f20 # micmute
+ KEYBOARD_KEY_ef=f21
+ KEYBOARD_KEY_ee=chat
+ KEYBOARD_KEY_e4=chat
+ KEYBOARD_KEY_dd=menu # Frame
+ KEYBOARD_KEY_da=prog1 # Fn+Frame
+ KEYBOARD_KEY_d3=delete
+ KEYBOARD_KEY_d2=insert
+ KEYBOARD_KEY_c9=pageup
+ KEYBOARD_KEY_d1=pagedown
+ KEYBOARD_KEY_c7=home
+ KEYBOARD_KEY_cf=end
+ KEYBOARD_KEY_73=hp
+ KEYBOARD_KEY_7e=hp
+ KEYBOARD_KEY_db=leftmeta # left grab
+ KEYBOARD_KEY_dc=rightmeta # right grab
+ KEYBOARD_KEY_85=rightmeta # Right grab releases on a different scancode
+ KEYBOARD_KEY_d6=kbdillumtoggle # Fn+Space
+ KEYBOARD_KEY_69=rotate_display
+ KEYBOARD_KEY_65=btn_dpad_up
+ KEYBOARD_KEY_66=btn_dpad_down
+ KEYBOARD_KEY_67=btn_dpad_left
+ KEYBOARD_KEY_68=btn_dpad_right
+ KEYBOARD_KEY_e5=btn_north
+ KEYBOARD_KEY_e6=btn_south
+ KEYBOARD_KEY_e7=btn_west
+ KEYBOARD_KEY_e8=btn_east
+
+###########################################################
+# Onkyo
+###########################################################
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnONKYO*CORPORATION:pnONKYOPC:*
+ KEYBOARD_KEY_a0=mute # Fn+D
+ KEYBOARD_KEY_ae=volumedown # Fn+F
+ KEYBOARD_KEY_b0=volumeup # Fn+G
+ KEYBOARD_KEY_df=sleep # Fn+W
+ KEYBOARD_KEY_e0=bluetooth # Fn+H
+ KEYBOARD_KEY_e2=cyclewindows # Fn+Esc
+ KEYBOARD_KEY_ee=battery # Fn+Q
+ KEYBOARD_KEY_f0=media # Fn+R
+ KEYBOARD_KEY_f5=switchvideomode # Fn+E
+ KEYBOARD_KEY_f6=camera # Fn+T
+ KEYBOARD_KEY_f7=f21 # Fn+Y (touchpad toggle)
+ KEYBOARD_KEY_f8=brightnessup # Fn+S
+ KEYBOARD_KEY_f9=brightnessdown # Fn+A
+ KEYBOARD_KEY_fb=wlan # Fn+J
+
+###########################################################
+# OQO
+###########################################################
+
+# Model 2
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnOQO*Inc.*:pnOQO*Model*2*:*
+ KEYBOARD_KEY_8e=wlan
+ KEYBOARD_KEY_f0=switchvideomode
+ KEYBOARD_KEY_f1=mute
+ KEYBOARD_KEY_f2=volumedown
+ KEYBOARD_KEY_f3=volumeup
+
+###########################################################
+# Ortek
+###########################################################
+
+# Adesso AKB-805MAC
+# The key code identifiers used below exactly match the text
+# labels on the keys/buttons (or standard icons on the buttons
+# that have no text labels), except as noted.
+evdev:input:b0003v05A4p9735*
+ KEYBOARD_KEY_c0015=back
+ KEYBOARD_KEY_c0012=forward
+ KEYBOARD_KEY_c000c=stop
+ KEYBOARD_KEY_c0018=refresh
+ KEYBOARD_KEY_c00b9=search
+ KEYBOARD_KEY_c0006=bookmarks # Button labeled "Favorites"
+ KEYBOARD_KEY_c00a8=homepage # Button labeled "Web/Home"
+ KEYBOARD_KEY_c0010=mute
+ KEYBOARD_KEY_c0011=volumedown
+ KEYBOARD_KEY_c0014=volumeup
+ KEYBOARD_KEY_c000e=close
+ KEYBOARD_KEY_c00a7=print
+ KEYBOARD_KEY_c0013=documents # Button labeled "Stickies"
+ KEYBOARD_KEY_c000d=find # Button labeled "Sherlock2"
+ KEYBOARD_KEY_c000f=mail
+ KEYBOARD_KEY_c000a=calc
+ KEYBOARD_KEY_c000b=sleep
+ KEYBOARD_KEY_c0007=previoussong # Button with standard |<< icon
+ KEYBOARD_KEY_c0008=playpause # Button with standad >/|| icon
+ KEYBOARD_KEY_c0009=nextsong # Button with standard >>| icon
+ KEYBOARD_KEY_c00b2=stopcd # Button with standard square box icon
+ KEYBOARD_KEY_c0016=prog1 # Key labeled "pf1"
+ KEYBOARD_KEY_c00bb=prog2 # Key labeled "pf2"
+ KEYBOARD_KEY_c00b8=prog3 # Key labeled "pf3"
+
+###########################################################
+# Pine64
+###########################################################
+
+# Pinebook Pro
+evdev:input:b0003v258Ap001E*
+ KEYBOARD_KEY_700a5=brightnessdown
+ KEYBOARD_KEY_700a6=brightnessup
+ KEYBOARD_KEY_70066=sleep
+
+###########################################################
+# Plantronics
+###########################################################
+
+# Plantronics .Audio 626 DSP
+evdev:input:b0003v047FpC006*
+ KEYBOARD_KEY_b002f=f20 # Microphone mute button; should be micmute
+
+###########################################################
+# Purism
+###########################################################
+
+# If you're using an us layout keyboard in one of the below models of
+# Purism Librem 13 consider copying this file to /etc/systemd/hwdb.d/
+# to enable the following rule according to your model.
+#
+# There's a bug in the keyboards firmware and the additional rule
+# will make your keyboard behave as expected.
+#
+# More info:
+# - https://github.com/systemd/systemd/issues/15360
+# - https://github.com/systemd/systemd/pull/11516
+# - https://tracker.pureos.net/T888
+#
+# # Purism Librem 13 V2
+# evdev:atkbd:dmi:bvn*:bvr*:bd*:svnPurism*:pn*Librem13v2*:*
+# KEYBOARD_KEY_56=backslash
+#
+# # Purism Librem 13 V3
+# evdev:atkbd:dmi:bvn*:bvr*:bd*:svnPurism*:pn*Librem13v3*:*
+# KEYBOARD_KEY_56=backslash
+#
+# # Purism Librem 13 V4
+# evdev:atkbd:dmi:bvn*:bvr*:bd*:svnPurism*:pn*Librem13v4*:*
+# KEYBOARD_KEY_56=backslash
+
+###########################################################
+# Quanta
+###########################################################
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svn*:pn*:pvr*:rvnQuanta:rn30B7:rvr65.2B:*
+ KEYBOARD_KEY_88=media # "quick play
+
+###########################################################
+# Samsung
+###########################################################
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*:*
+ KEYBOARD_KEY_74=prog1 # User key
+ KEYBOARD_KEY_75=www
+ KEYBOARD_KEY_78=mail
+ KEYBOARD_KEY_82=!switchvideomode # Fn+F4 CRT/LCD (high keycode: "displaytoggle")
+ KEYBOARD_KEY_83=!battery # Fn+F2
+ KEYBOARD_KEY_84=!prog1 # Fn+F5 backlight on/off
+ KEYBOARD_KEY_86=!wlan # Fn+F9
+ KEYBOARD_KEY_88=!brightnessup # Fn+Up
+ KEYBOARD_KEY_89=!brightnessdown # Fn+Down
+ KEYBOARD_KEY_b1=!prog2 # Fn+F7 run Samsung Magic Doctor (keypressed event is generated twice)
+ KEYBOARD_KEY_b3=!prog3 # Fn+F8 switch power mode (battery/dynamic/performance)
+ KEYBOARD_KEY_b4=!wlan # Fn+F9 (X60P)
+ KEYBOARD_KEY_c5=!prog3 # Fn+F8 switch power mode (battery/dynamic/performance)
+ KEYBOARD_KEY_d5=!wlan # Fn+F12 wlan/airplane switch
+ KEYBOARD_KEY_f7=!f22 # Fn+F10 Touchpad on
+ KEYBOARD_KEY_f9=!f23 # Fn+F10 Touchpad off
+
+# Series 3
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*300E[457]*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*200E[45]*:*
+ KEYBOARD_KEY_ce=! # Fn+F1 launch control setting
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*356V[45]*:pvr*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*355V[45]*:pvr*
+ KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch control setting
+ KEYBOARD_KEY_89=!brightnessdown # Fn+F2 brightness down
+ KEYBOARD_KEY_88=!brightnessup # Fn+F3 brightness up
+ KEYBOARD_KEY_82=!switchvideomode # Fn+F4 display toggle
+ KEYBOARD_KEY_f7=!f22 # Fn+F5 touchpad on
+ KEYBOARD_KEY_f9=!f23 # Fn+F5 touchpad off
+ KEYBOARD_KEY_a0=!mute # Fn+F6 mute
+ KEYBOARD_KEY_ae=!volumedown # Fn+F7 volume down
+ KEYBOARD_KEY_b0=!volumeup # Fn+F8 volume up
+ KEYBOARD_KEY_b3=!prog2 # Fn+F11 toggle fan/cool mode
+ KEYBOARD_KEY_d5=!wlan # Fn+F12 toggle wifi
+
+# Series 5
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*530U*:*
+ KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings
+ KEYBOARD_KEY_a8=! # Fn Lock - Function lock on
+ KEYBOARD_KEY_a9=! # Fn Lock - Function lock off
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*550P*:*
+ KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings
+ KEYBOARD_KEY_a8=! # Fn Lock - Function lock on
+ KEYBOARD_KEY_a9=! # Fn Lock - Function lock off
+
+# Series 7 / 9
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*350V*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*670Z*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700Z*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700G*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34]*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*940X3G*:*
+ KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings
+ KEYBOARD_KEY_a0=!mute # Fn+F6 mute
+ KEYBOARD_KEY_ae=!volumedown # Fn+F7
+ KEYBOARD_KEY_b0=!volumeup # Fn+F8
+ KEYBOARD_KEY_97=!kbdillumdown # Fn+F9 keyboard backlight down
+ KEYBOARD_KEY_96=!kbdillumup # Fn+F10 keyboard backlight up
+ KEYBOARD_KEY_b3=!prog3 # Fn+F11 fan/cooling mode changer
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X3A*:*
+ KEYBOARD_KEY_ce=! # Fn+F8 keyboard backlight up
+ KEYBOARD_KEY_8d=! # Fn+F7 keyboard backlight down
+ KEYBOARD_KEY_96=! # Fn+F1 performance mode (?)
+ KEYBOARD_KEY_97=! # Fn+F12 Wi-Fi toggle
+ KEYBOARD_KEY_d5=! # Fn+F6 battery life extender
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*90X3A*:*
+ KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings
+ KEYBOARD_KEY_8d=!prog3 # Fn+F6 performance mode
+ KEYBOARD_KEY_97=!kbdillumdown # Fn+F7 keyboard backlight down
+ KEYBOARD_KEY_96=!kbdillumup # Fn+F8 keyboard backlight up
+ KEYBOARD_KEY_d5=!wlan # Fn+F12 Wi-Fi toggle
+
+# Series 7 Ultra
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*7[34]0U3E*:*
+ KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings
+ KEYBOARD_KEY_97=!kbdillumdown # Fn+F9 keyboard backlight down
+ KEYBOARD_KEY_96=!kbdillumup # Fn+F10 keyboard backlight up
+ KEYBOARD_KEY_b3=!prog3 # Fn+F11 fan/cooling mode changer
+ KEYBOARD_KEY_d5=!wlan # Fn+F12 wlan/airplane switch
+
+# ATIV Book 6 / 8
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*[68][78]0Z*:*
+ KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings
+ KEYBOARD_KEY_96=!kbdillumup # Fn+F10 keyboard backlight up
+ KEYBOARD_KEY_97=!kbdillumdown # Fn+F9 keyboard backlight down
+
+# SQ1US
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pnSQ1US:*
+ KEYBOARD_KEY_d4=menu
+ KEYBOARD_KEY_d8=f1
+ KEYBOARD_KEY_d9=f10
+ KEYBOARD_KEY_d6=f3
+ KEYBOARD_KEY_d7=f9
+ KEYBOARD_KEY_e4=f5
+ KEYBOARD_KEY_ee=f11
+
+# SX20S
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*SX20S*:*
+ KEYBOARD_KEY_74=mute
+ KEYBOARD_KEY_75=mute
+ KEYBOARD_KEY_77=f22 # Touchpad on
+ KEYBOARD_KEY_79=f23 # Touchpad off
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700T*:*
+ KEYBOARD_KEY_ad=leftmeta
+
+# Galaxy Book (2021) NP750XDA-KD4SE
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn750XDA:pvr*
+ KEYBOARD_KEY_81=!esc
+ KEYBOARD_KEY_ce=!prog1 # Fn+F1 launch settings
+ KEYBOARD_KEY_ae=!volumedown # Fn+F7 volume down
+ KEYBOARD_KEY_b0=!volumeup # Fn+F8 volume up
+
+
+###########################################################
+# SONY
+###########################################################
+
+# sony-laptop driver
+evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*:*
+ KEYBOARD_KEY_06=mute # Fn+F2
+ KEYBOARD_KEY_07=volumedown # Fn+F3
+ KEYBOARD_KEY_08=volumeup # Fn+F4
+ KEYBOARD_KEY_09=brightnessdown # Fn+F5
+ KEYBOARD_KEY_0a=brightnessup # Fn+F6
+ KEYBOARD_KEY_0b=switchvideomode # Fn+F7
+ KEYBOARD_KEY_0e=zoom # Fn+F10
+ KEYBOARD_KEY_10=suspend # Fn+F12
+
+evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*PCG-C1*:*
+evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*PCG-K25*:*
+evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*PCG-F[1-6]*:*
+evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*PCG-FX*:*
+evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*PCG-FRV*:*
+evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*PCG-GR*:*
+evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*PCG-TR*:*
+evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*PCG-NV*:*
+evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*PCG-Z*:*
+evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*VGN-S360*:*
+ KEYBOARD_KEY_06=battery
+ KEYBOARD_KEY_07=mute
+
+evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVGN-AR71*:*
+evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVGN-FW*:*
+evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVGN-Z21*:*
+ KEYBOARD_KEY_00=brightnessdown # Fn+F5
+ KEYBOARD_KEY_10=brightnessup # Fn+F6
+ KEYBOARD_KEY_11=switchvideomode # Fn+F7
+ KEYBOARD_KEY_12=down # zoomout
+ KEYBOARD_KEY_14=up # zoomin
+ KEYBOARD_KEY_15=suspend # Fn+F12
+ KEYBOARD_KEY_17=prog1
+ KEYBOARD_KEY_20=media
+
+evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVGN-FW250*:*
+ KEYBOARD_KEY_10=suspend # Fn+F12
+
+evdev:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVPC*:*
+ KEYBOARD_KEY_05=f21 # Fn+F1 -> KEY_F21 (The actual touchpad toggle)
+ KEYBOARD_KEY_0d=down # Fn+F9 zoomout
+ KEYBOARD_KEY_0e=up # Fn+F10 zoomin
+
+###########################################################
+# System76
+###########################################################
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnSystem76*:pn*:*
+ KEYBOARD_KEY_f7=f21 # Touchpad toggle
+ KEYBOARD_KEY_f8=f21 # Touchpad toggle
+
+# Pangolin 12
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnSystem76*:pnPangolin*:pvrpang12*
+ KEYBOARD_KEY_76=f21 # Touchpad toggle
+
+###########################################################
+# T-bao
+###########################################################
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnT-bao:pnTbookair:*
+ KEYBOARD_KEY_76=f21 # Touchpad toggle
+
+###########################################################
+# Toshiba
+###########################################################
+
+# Satellite A100
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSATELLITE*A100:*
+ KEYBOARD_KEY_a4=stopcd
+ KEYBOARD_KEY_b2=www
+
+# Satellite A110
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite*A110:*
+ KEYBOARD_KEY_92=stop
+ KEYBOARD_KEY_93=www
+ KEYBOARD_KEY_94=media
+ KEYBOARD_KEY_9e=f22 # Touchpad on
+ KEYBOARD_KEY_9f=f23 # Touchpad off
+ KEYBOARD_KEY_b9=nextsong
+ KEYBOARD_KEY_d9=brightnessup
+ KEYBOARD_KEY_ee=screenlock
+ KEYBOARD_KEY_f4=previoussong
+ KEYBOARD_KEY_f7=playpause
+
+# Satellite M30X
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite*M30X:*
+ KEYBOARD_KEY_ef=brightnessdown
+ KEYBOARD_KEY_d9=brightnessup
+ KEYBOARD_KEY_ee=screenlock
+ KEYBOARD_KEY_93=media
+ KEYBOARD_KEY_9e=f22 # touchpad enable
+ KEYBOARD_KEY_9f=f23 # touchpad disable
+
+# Satellite P75-A
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite*P75-A:*
+ KEYBOARD_KEY_ef=brightnessdown
+ KEYBOARD_KEY_ee=brightnessup
+ KEYBOARD_KEY_a9=switchvideomode # switch display outputs
+ KEYBOARD_KEY_d4=wlan # RF Switch Off
+
+# Satellite U940
+evdev:name:Toshiba*input*device:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSATELLITEU940:*
+ KEYBOARD_KEY_13c=brightnessdown
+ KEYBOARD_KEY_13d=brightnessup
+ KEYBOARD_KEY_13e=switchvideomode
+ KEYBOARD_KEY_13f=f21 # Touchpad toggle
+
+# Satellite P75-A7200
+evdev:name:Toshiba*input*device:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite*P75-A:*
+ KEYBOARD_KEY_13c=brightnessdown
+ KEYBOARD_KEY_13d=brightnessup
+ KEYBOARD_KEY_13e=switchvideomode
+ KEYBOARD_KEY_13f=f21 # Touchpad toggle
+ KEYBOARD_KEY_9e=wlan
+
+###########################################################
+# VIA
+###########################################################
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnVIA:pnK8N800:*
+ KEYBOARD_KEY_81=prog1
+
+###########################################################
+# VIOS
+###########################################################
+
+evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:bd*:svnVIOS:pnLTH17:*
+ KEYBOARD_KEY_70073=f21 # Touchpad toggle
+
+###########################################################
+# WeiHeng
+###########################################################
+
+# P325J
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnINET:pnP325J:*
+ KEYBOARD_KEY_76=f21 # Touchpad toggle
+
+###########################################################
+# Zepto
+###########################################################
+
+# Znote
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnZepto:pnZnote:*
+ KEYBOARD_KEY_93=switchvideomode # Fn+F3 Toggle Video Output
+ KEYBOARD_KEY_95=brightnessdown # Fn+F4 Brightness Down
+ KEYBOARD_KEY_91=brightnessup # Fn+F5 Brightness Up
+ KEYBOARD_KEY_a5=f23 # Fn+F6 Disable Touchpad
+ KEYBOARD_KEY_a6=f22 # Fn+F6 Enable Touchpad
+ KEYBOARD_KEY_a7=bluetooth # Fn+F10 Enable Bluetooth
+ KEYBOARD_KEY_a9=bluetooth # Fn+F10 Disable Bluetooth
+ KEYBOARD_KEY_f1=wlan # RF Switch Off
+ KEYBOARD_KEY_f2=wlan # RF Switch On
+ KEYBOARD_KEY_f4=prog1 # P1 Button
+ KEYBOARD_KEY_f3=prog2 # P2 Button
+ KEYBOARD_KEY_a0=! # mute
+ KEYBOARD_KEY_ae=! # volume down
+ KEYBOARD_KEY_b0=! # volume up
+
+# Znote 6615WD
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnZepto:pnZnote*6615WD:*
+ KEYBOARD_KEY_a0=! # mute
+ KEYBOARD_KEY_ae=! # volume down
+ KEYBOARD_KEY_b0=! # volume up
+
+##########################################
+# Ideazon
+##########################################
+
+# Ideazon Zboard Merc
+evdev:input:b0003v1038p0210*
+ KEYBOARD_KEY_c0227=q
+ KEYBOARD_KEY_c0223=w
+ KEYBOARD_KEY_c0221=e
+ KEYBOARD_KEY_c0224=a
+ KEYBOARD_KEY_c0226=s
+ KEYBOARD_KEY_c0225=d
+ KEYBOARD_KEY_c0192=tab
+ KEYBOARD_KEY_c018a=leftalt
+ KEYBOARD_KEY_c022a=r
+ KEYBOARD_KEY_c0183=f10
+ KEYBOARD_KEY_70059=1
+ KEYBOARD_KEY_7005a=2
+ KEYBOARD_KEY_7005b=3
+ KEYBOARD_KEY_7005c=4
+ KEYBOARD_KEY_7005d=5
+ KEYBOARD_KEY_7005e=6
+ KEYBOARD_KEY_7005f=7
+ KEYBOARD_KEY_70060=8
+ KEYBOARD_KEY_70061=9
+ KEYBOARD_KEY_70062=0
+ KEYBOARD_KEY_70057=equal
+ KEYBOARD_KEY_70077=capslock
+ KEYBOARD_KEY_70054=leftshift
+ KEYBOARD_KEY_70063=leftctrl
+ KEYBOARD_KEY_7006b=t
+ KEYBOARD_KEY_70067=f
+ KEYBOARD_KEY_7006c=g
+ KEYBOARD_KEY_7006d=v
+ KEYBOARD_KEY_7006e=b
+ KEYBOARD_KEY_70074=p
+ KEYBOARD_KEY_7006f=c
+ KEYBOARD_KEY_70055=space
+ KEYBOARD_KEY_70076=f9
+ KEYBOARD_KEY_70046=f11
+ KEYBOARD_KEY_70079=f6
+
+# Ideazon Zboard Fang
+evdev:input:b0003v1038p0310*
+ KEYBOARD_KEY_70059=1
+ KEYBOARD_KEY_7005b=3
+ KEYBOARD_KEY_70040=equal
+ KEYBOARD_KEY_70042=l
+ KEYBOARD_KEY_7002b=tab
+ KEYBOARD_KEY_7005e=capslock
+ KEYBOARD_KEY_700e2=leftalt
+ KEYBOARD_KEY_700e1=leftshift
+ KEYBOARD_KEY_700e0=leftctrl
+ KEYBOARD_KEY_70038=z
+ KEYBOARD_KEY_7003e=t
+ KEYBOARD_KEY_70015=r
+ KEYBOARD_KEY_70010=g
+ KEYBOARD_KEY_70050=n
+ KEYBOARD_KEY_70030=f9
+ KEYBOARD_KEY_7002f=f11
+ KEYBOARD_KEY_70046=f6
+
+###########################################################
+# CZC
+###########################################################
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnCZC:pnODEON*TPC-10:*
+ KEYBOARD_KEY_01=leftmeta # Home button held for 2s
+ KEYBOARD_KEY_db=prog1 # Home button
+ KEYBOARD_KEY_dd=rfkill # Second button labeled Wi-Fi
+
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnViewSonic:pnVPAD10:*
+ KEYBOARD_KEY_01=leftmeta # Home button held for 2s
+ KEYBOARD_KEY_db=prog1 # Home button
+ KEYBOARD_KEY_dd=back # Second button labeled Back
+
+###########################################################
+# Positivo-Vaio
+###########################################################
+# Vaio Pro (VJPW11F11X, VJPW12F11X)
+evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:bd*:svnPositivoBahia-VAIO:pnVJPW1[12]F11X*:pvr*:*
+# Vaio FE14 (VJFE41F11X, VJE42F11X, VJFE44F11X, VJFE54F11X)
+evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:bd*:svnPositivoBahia-VAIO:pnVJFE*:pvr*:*
+ KEYBOARD_KEY_76=f21 # Fn+F1 toggle touchpad
+
+###########################################################
+# Positivo
+###########################################################
+# Positivo MASTER-N1110
+evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:svnPositivoTecnologiaSA:pn*:pvr*:rvnPositivoTecnologiaSA:rnNP11G-E*
+# Positivo (CF40CM-V2)
+evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:svnPositivoTecnologiaSA:pn*:pvr*:rvnPositivoTecnologiaSA:rnCF40CM-V2*
+# Positivo DUO (k116)
+evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:svnPositivoTecnologiaSA:pn*:pvr*:rvnPositivoTecnologiaSA:rnK116*
+ KEYBOARD_KEY_76=f21 # Fn+F1 toggle touchpad
+
+# Positivo (CG15D)
+evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn*:pvr*:rvn*:rnCG15D*
+# Positivo Motion (N14DP6, N14DP7, N14DP7-V2, N14DP9, N14JP6, N14KP6)
+evdev:name:AT Translated Set 2 keyboard:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn*:pvr*:rvn*:rnN14[DJK]P*
+ KEYBOARD_KEY_76=f21 # Fn+f2 toggle touchpad
+ KEYBOARD_KEY_67=prog1 # Programmable button
+ KEYBOARD_KEY_68=prog2 # Programmable button
+ KEYBOARD_KEY_69=prog3 # Programmable button
+ KEYBOARD_KEY_6a=prog4 # Programmable button
+
+# Positivo Motion (K142, K142-V2)
+evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn*:pvr*:rvn*:rnK142*
+# Positivo Motion (N14ZP6, N14ZP7)
+evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn*:pvr*:rvn*:rnN14ZP[67]*
+# Positivo Motion (N14EP6)
+evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:br*:svnPositivoTecnologiaSA:pn*:pvr*:rvn*:rnN14EP6*
+# Positivo Motion (CW14Q01P) (CW14Q01P-V2)
+evdev:name:SIPODEV USB Composite Device:dmi:bvn*:bvr*:svnPositivoTecnologiaSA:pn*:pvr*:rvn*:rnCW14Q01P*
+ KEYBOARD_KEY_70073=f21 # Fn+f2 toggle touchpad
+ KEYBOARD_KEY_7006b=prog1 # Programmable button
+ KEYBOARD_KEY_7006c=prog2 # Programmable button
+ KEYBOARD_KEY_7006d=prog3 # Programmable button
+ KEYBOARD_KEY_7006e=prog4 # Programmable button
+
+###########################################################
+# Other
+###########################################################
+
+# Common Volume Keys
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnFUJITSU*SIEMENS:pnAMILO*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnFOXCONN:pnQBOOK:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMTC:pn*:pvrA0:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMio*Technology:pnN890:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnPEGATRON*CORP.:pnSpring*Peak:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnTOSHIBA:pnSatellite*[uU][35]0[05]*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnTOSHIBA:pnSATELLITE*[uU][35]0[05]*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnTOSHIBA:pnSatellite*Pro*[uU]300*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnTOSHIBA:pnEQUIUM [uU][35]0[05]*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnViooo*Corporation:pnPT17:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHANNspree:pnSN10E100:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnGIGABYTE:pni1520M:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnBenQ:pn*nScreen*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnBenQ:pnJoybook*Lite*:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnDIXONSP:pnDIXON*:*
+ KEYBOARD_KEY_a0=! # mute
+ KEYBOARD_KEY_ae=! # volume down
+ KEYBOARD_KEY_b0=! # volume up
+
+######################### FIXED LAYOUT DEVICES #############################
+# This section lists devices for which only one keyboard layout is possible
+# or useful such as devices which "type" expecting the user's keymap to match
+# a particular one. For example, barcode readers and OTP keys.
+#
+# The layout must be an xkb compatible layout (defined with XKB_FIXED_LAYOUT),
+# with an accompanying variant (defined with XKB_FIXED_VARIANT) if necessary.
+
+# Yubico Yubico Yubikey II"
+evdev:input:b0003v1050p0010*
+# Yubico Yubikey NEO OTP+CCID
+evdev:input:b0003v1050p0111*
+# Yubico Yubikey NEO OTP+U2F+CCID
+evdev:input:b0003v1050p0116*
+# OKE Electron Company USB barcode reader
+evdev:input:b0003v05FEp1010*
+ XKB_FIXED_LAYOUT=us
+ XKB_FIXED_VARIANT=
+
+######################### LACK OF MODIFIER LEDS ############################
+# This section lists keyboard which do not have their own LEDs for some
+# modifiers. Only Caps-Lock (KEYBOARD_LED_CAPSLOCK) and Num-Lock
+# (KEYBOARD_LED_CAPSLOCK) are currently handled and need their values set
+# to "0" to indicate the absence of LED.
+#
+# Presence of a LED is implicit when the property is absent.
+
+# Logitech K750
+evdev:input:b0003v046Dp4002*
+ KEYBOARD_LED_NUMLOCK=0
+ KEYBOARD_LED_CAPSLOCK=0
+
+# PFU Limited HHKB Professional JP
+evdev:input:b0003v04FEp000D*
+ KEYBOARD_LED_NUMLOCK=0
+ KEYBOARD_LED_CAPSLOCK=0
+
+# Lenovo ThinkPad T430s
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadT430s:*
+ KEYBOARD_LED_CAPSLOCK=0
+
+# Lenovo ThinkPad T440s
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadT440s:*
+ KEYBOARD_LED_CAPSLOCK=0
+
+# Lenovo ThinkPad T450s
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadT450s:*
+ KEYBOARD_LED_CAPSLOCK=0
+
+# Lenovo ThinkPad T560s
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadT560s:*
+ KEYBOARD_LED_CAPSLOCK=0
+ KEYBOARD_LED_NUMLOCK=0
+
+# Lenovo ThinkPad X1 Carbon 3rd Gen
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*:pvrThinkPadX1Carbon3rd:*
+ KEYBOARD_LED_CAPSLOCK=0
+
+######################### FIXED MODEL DEVICES #############################
+# This section lists devices which require special handling in their key
+# code to keysym mapping by setting the xkb model.
+# The model must be an xkb compatible model (defined with XKB_FIXED_MODEL).
+
+# Chromebooks
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnFalco:*
+evdev:atkbd:dmi:bvn*:bvr*:bd*:svnAcer*:pnPeppy:*
+ XKB_FIXED_MODEL=chromebook