# 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 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

###########################################################
# 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 E7*
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

# 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

##########################################################
# 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*:*
 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*:*
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*:*
 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*:*
 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*:*
 KEYBOARD_KEY_95=media
 KEYBOARD_KEY_a3=play

evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*U300s*:*
 KEYBOARD_KEY_f1=f21
 KEYBOARD_KEY_ce=f20                                    # micmute

evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO*:pn*IdeaPad*Z370*:*
 KEYBOARD_KEY_a0=!mute
 KEYBOARD_KEY_ae=!volumedown
 KEYBOARD_KEY_b0=!volumeup

evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO*:pn*IdeaPadFlex5*:*
 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

# Fix for volume keys on Lenovo Yoga S940
# For 10th gen it should be pn81Q8 instead of pn81Q7 but
# I don't have a device to test
# perhaps pn81Q* would work for both generations
evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO:pn81Q7*:pvrLenovoYogaS940:*
 KEYBOARD_KEY_a0=!mute
 KEYBOARD_KEY_ae=!volumedown
 KEYBOARD_KEY_b0=!volumeup

# Lenovo Y50-70
evdev:atkbd:dmi:bvn*:bvr*:svnLENOVO*:pn*20378*:*
 KEYBOARD_KEY_f3=f21                                    # Fn+F6 (toggle touchpad)

# V480
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*Lenovo*V480*:*
 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)

###########################################################
# 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
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pnU90/U100:*
 KEYBOARD_KEY_e4=reserved

# 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 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 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 (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
