# 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
#
# Note: The format of the "evdev:" prefix match key is a contract between the
# rules file and the hardware data, it might change in later revisions to
# support more or better matches, it is not necessarily expected to be a stable
# ABI.
#
# 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 an arbitrary 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

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

# To update this file, create a new file
#   /etc/udev/hwdb.d/70-keyboard.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 reload all input rules
#   udevadm trigger --verbose --sysname-match="event*"
#
# 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.

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

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

# USB keyboard in Asus FX503VD
evdev:input:b0003v0B05p1869*
 KEYBOARD_KEY_ff31007c=f20                              # Remap micmute to f20

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

###########################################################
# 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:input:b0003v049Fp0051*
 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 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*:*
 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*:*
 KEYBOARD_KEY_120001=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

###########################################################
# Hewlett Packard
###########################################################

evdev:name:Intel HID events:dmi:bvn*:bvr*:bd*:svnHP*:pn*:*
 KEYBOARD_KEY_8=unknown                                 # Use hp-wireless instead

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

# 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

evdev:name:Intel HID events:dmi:bvn*:bvr*:svnHP*:pnHPElitex21013G3:*
 KEYBOARD_KEY_08=unknown                               # rfkill is also reported by HP Wireless hotkeys

# 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

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

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

# 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

# Thinkpad X200_Tablet
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*:pvrThinkPad*X2*Tablet*:*
 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:*: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)


###########################################################
# 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_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_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_f1=f20                                    # Fn+F5 Micmute
 KEYBOARD_KEY_76=f21                                    # Fn+F4 Toggle touchpad, sends meta+ctrl+toggle
 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

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

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

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

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