Package: udev
Version: 158-1
Severity: wishlist
Tags: patch

The udev rules in 95-keymap.rules do not include the Samsung X460 model in the
rule on line 113 to load the keycodes in file samsung-other. So I added another
rule to load the keycodes in file samsung-x460.keymap which only include the
keys actually present for the keyboard of the X460 model. The file samsung-
other contains some more keys which the X460 does not have. The majority of the
Fn keys do not generate the release scancode, so I've also added a rule in file
95-keyboard-force-release.rules to generate these from file samsung-x460.force-
release through sysfs. These keycodes are actually identical with the ones
listed in file samsung-other in folder force-release, but to make it more clear
I've copied them to a new file.

By applying those changes I've enabled especially the brightness up and
brightness down buttons which did not work before and made it hard to work with
the LED screen under Xorg. These can now be easily assigned to a command like
"sudo nvclock -S +5" to increase the brightness by 5%.



-- System Information:
Debian Release: squeeze/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.32-5-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages udev depends on:
ii  debconf [debconf-2.0]        1.5.33      Debian configuration management sy
ii  libc6                        2.11.2-2    Embedded GNU C Library: Shared lib
ii  libselinux1                  2.0.94-1    SELinux runtime shared libraries
ii  libusb-0.1-4                 2:0.1.12-15 userspace USB programming library
ii  lsb-base                     3.2-23.1    Linux Standard Base 3.2 init scrip
ii  util-linux                   2.17.2-3.1  Miscellaneous system utilities

Versions of packages udev recommends:
ii  pciutils                      1:3.1.7-4  Linux PCI Utilities
ii  usbutils                      0.87-5     Linux USB utilities

udev suggests no packages.

-- debconf information:
  udev/new_kernel_needed: false
  udev/title/upgrade:
  udev/reboot_needed:

*** /home/alex/Documents/keyboard/95-keyboard-force-release.rules
# Set model specific atkbd force_release quirk
#
# Several laptops have hotkeys which don't generate release events,
# which can cause problems with software key repeat.
# The atkbd driver has a quirk handler for generating synthetic
# release events, which can be configured via sysfs since 2.6.32.
# Simply add a file with a list of scancodes for your laptop model
# in /lib/udev/keymaps, and add a rule here.
# If the hotkeys also need a keymap assignment you can copy the
# scancodes from the keymap file, otherwise you can run
# /lib/udev/keymap -i /dev/input/eventX
# on a Linux vt to find out.

ACTION=="remove", GOTO="force_release_end"
SUBSYSTEM!="serio", GOTO="force_release_end"
KERNEL!="serio*", GOTO="force_release_end"
DRIVER!="atkbd", GOTO="force_release_end"

ENV{DMI_VENDOR}="$attr{[dmi/id]sys_vendor}"


ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*",
ATTR{[dmi/id]product_name}=="*N128*|*N130*|*N140*|*N210*|*SR70S/SR71S*|*Q210/P210*",
RUN+="keyboard-force-release.sh $devpath samsung-other"

ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*",
ATTR{[dmi/id]product_name}=="*X460*", RUN+="keyboard-force-release.sh $devpath
samsung-x460"

ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="Studio 1557|Studio
1558", RUN+="keyboard-force-release.sh $devpath common-volume-keys"

ENV{DMI_VENDOR}=="FUJITSU SIEMENS", ATTR{[dmi/id]product_name}=="AMILO Si
1848+u", RUN+="keyboard-force-release.sh $devpath common-volume-keys"

ENV{DMI_VENDOR}=="FOXCONN", ATTR{[dmi/id]product_name}=="QBOOK", RUN
+="keyboard-force-release.sh $devpath common-volume-keys"

ENV{DMI_VENDOR}=="MTC", ATTR{[dmi/id]product_version}=="A0", RUN+="keyboard-
force-release.sh $devpath common-volume-keys"

ENV{DMI_VENDOR}=="PEGATRON CORP.", ATTR{[dmi/id]product_name}=="Spring Peak",
RUN+="keyboard-force-release.sh $devpath common-volume-keys"




*** /home/alex/Documents/keyboard/samsung-x460.force-release
# list of scancodes (hex or decimal), optional comment
0x82 # Fn+F4 CRT/LCD
0x83 # Fn+F2 battery
0x84 # Fn+F5 backlight on/off
0x86 # Fn+F9 WLAN
0x88 # Fn-Up brightness up
0x89 # Fn-Down brightness down
0xB3 # Fn+F8 switch power mode (battery/dynamic/performance)




*** /home/alex/Documents/keyboard/samsung-x460.keymap
0x82 switchvideomode # Fn+F4 CRT/LCD (high keycode: "displaytoggle")
0x83 battery # Fn+F2
0x84 prog1 # Fn+F5 backlight on/off
0x86 wlan # Fn+F9
0x88 brightnessup # Fn-Up
0x89 brightnessdown # Fn-Down
0xB1 prog2 # Fn+F7 Samsung Magic Doctor (keypressed event is generated twice)
0xB3 prog3 # Fn+F8 switch power mode (battery/dynamic/performance)




*** /home/alex/Documents/keyboard/95-keymap.rules
# Set model specific hotkey keycodes.
#
# Key map overrides can be specified by either giving scancode/keyname pairs
# directly as keymap arguments (if there are just one or two to change), or as
# a file name (in /lib/udev/keymaps), which has to contain scancode/keyname
# pairs.

ACTION=="remove", GOTO="keyboard_end"
SUBSYSTEM!="input", GOTO="keyboard_end"
KERNEL!="event*", GOTO="keyboard_end"

SUBSYSTEMS=="usb", ENV{ID_VENDOR}=="", IMPORT{program}="usb_id --export %p"
SUBSYSTEMS=="usb", GOTO="keyboard_usbcheck"
GOTO="keyboard_modulecheck"

#
# The following are external USB keyboards
#

LABEL="keyboard_usbcheck"

ENV{ID_VENDOR}=="Logitech*", ATTRS{name}=="Logitech USB Multimedia Keyboard",
RUN+="keymap $name logitech-wave"
ENV{ID_VENDOR}=="Logitech*", ATTRS{name}=="Logitech USB Receiver", RUN+="keymap
$name logitech-wave-cordless"
ENV{ID_VENDOR}=="Lite-On_Technology_Corp*", ATTRS{name}=="Lite-On Technology
Corp. ThinkPad USB Keyboard with TrackPoint", RUN+="keymap $name lenovo-
thinkpad-usb-keyboard-trackpoint"

GOTO="keyboard_end"

#
# The following are exposed as separate input devices with low key codes, thus
# we need to check their input device product name
#

LABEL="keyboard_modulecheck"

ENV{DMI_VENDOR}="$attr{[dmi/id]sys_vendor}"
ENV{DMI_VENDOR}=="", GOTO="keyboard_end"

ENV{DMI_VENDOR}=="IBM*", KERNELS=="input*", ATTRS{name}=="ThinkPad Extra
Buttons", RUN+="keymap $name module-ibm"
ENV{DMI_VENDOR}=="LENOVO*", KERNELS=="input*", ATTRS{name}=="ThinkPad Extra
Buttons", RUN+="keymap $name module-lenovo"
ENV{DMI_VENDOR}=="ASUS*", KERNELS=="input*", ATTRS{name}=="Asus Extra Buttons",
ATTR{[dmi/id]product_name}=="W3J", RUN+="keymap $name module-asus-w3j"
ENV{DMI_VENDOR}=="Sony*", KERNELS=="input*", ATTRS{name}=="Sony Vaio Keys",
RUN+="keymap $name module-sony"

# Older Vaios have some different keys
ENV{DMI_VENDOR}=="Sony*",
ATTR{[dmi/id]product_name}=="*PCG-C1*|*PCG-K25*|*PCG-F1*|*PCG-F2*|*PCG-F3*|*PCG-F4*|*PCG-F5*|*PCG-F6
*|*PCG-FX*|*PCG-FRV*|*PCG-GR*|*PCG-TR*|*PCG-NV*|*PCG-Z*|*VGN-S360*|*VGN-
SZ2HP_B*", ATTRS{name}=="Sony Vaio Keys", RUN+="keymap $name module-sony-old"

#
# The following rules belong to standard i8042 AT keyboard with high key codes.
#

DRIVERS=="atkbd", GOTO="keyboard_vendorcheck"
GOTO="keyboard_end"

LABEL="keyboard_vendorcheck"

ENV{DMI_VENDOR}=="Dell*", RUN+="keymap $name dell"
ENV{DMI_VENDOR}=="Dell*", ATTR{[dmi/id]product_name}=="Inspiron 910|Inspiron
1010|Inspiron 1011|Inspiron 1012|Inspiron 1110|Inspiron 1210", RUN+="keymap
$name 0x84 wlan"

ENV{DMI_VENDOR}=="Compaq*", ATTR{[dmi/id]product_name}=="*E500*|*Evo N*",
RUN+="keymap $name compaq-e_evo"

ENV{DMI_VENDOR}=="LENOVO*", ATTR{[dmi/id]product_version}=="*3000*",
RUN+="keymap $name lenovo-3000"
ENV{DMI_VENDOR}=="LENOVO*", ATTR{[dmi/id]product_version}=="ThinkPad X6*",
ATTR{[dmi/id]product_version}=="* Tablet" RUN+="keymap $name lenovo-
thinkpad_x6_tablet"
ENV{DMI_VENDOR}=="LENOVO*", ATTR{[dmi/id]product_version}=="ThinkPad X200
Tablet*", ATTR{[dmi/id]product_version}=="* Tablet" RUN+="keymap $name lenovo-
thinkpad_x200_tablet"

ENV{DMI_VENDOR}=="Hewlett-Packard*", RUN+="keymap $name hewlett-packard"
ENV{DMI_VENDOR}=="Hewlett-Packard*",
ATTR{[dmi/id]product_name}=="*[tT][aA][bB][lL][eE][tT]*", RUN+="keymap $name
hewlett-packard-tablet"
ENV{DMI_VENDOR}=="Hewlett-Packard*",
ATTR{[dmi/id]product_name}=="*[pP][aA][vV][iI][lL][iI][oO][nN]*", RUN+="keymap
$name hewlett-packard-pavilion"
ENV{DMI_VENDOR}=="Hewlett-Packard*",
ATTR{[dmi/id]product_name}=="*Compaq*|*EliteBook*|*2230s*", RUN+="keymap $name
hewlett-packard-compaq_elitebook"
ENV{DMI_VENDOR}=="Hewlett-Packard*",
ATTR{[dmi/id]product_name}=="*2510p*|*2530p*", RUN+="keymap $name hewlett-
packard-2510p_2530p"
ENV{DMI_VENDOR}=="Hewlett-Packard*", ATTR{[dmi/id]product_name}=="*[tT][xX]2*",
RUN+="keymap $name hewlett-packard-tx2"
ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="Presario
2100*", RUN+="keymap $name hewlett-packard-presario-2100"
# HP Pavillion dv6315ea has empty DMI_VENDOR
ATTR{[dmi/id]board_vendor}=="Quanta", ATTR{[dmi/id]board_name}=="30B7",
ATTR{[dmi/id]board_version}=="65.2B", RUN+="keymap $name 0x88 media" # "quick
play

# Gateway clone of Acer Aspire One AOA110/AOA150
ENV{DMI_VENDOR}=="Gateway*", ATTR{[dmi/id]product_name}=="*AOA1*", RUN+="keymap
$name acer"

ENV{DMI_VENDOR}=="Acer*", RUN+="keymap $name acer"
ENV{DMI_VENDOR}=="Acer*", ATTR{[dmi/id]product_name}=="Extensa*",
ATTR{[dmi/id]product_name}=="*5210*|*5220*|*5610*|*5620*|*5720*", RUN+="keymap
$name 0xEE screenlock"
ENV{DMI_VENDOR}=="Acer*", ATTR{[dmi/id]product_name}=="TravelMate*C300*",
RUN+="keymap $name acer-travelmate_c300"
ENV{DMI_VENDOR}=="Acer*",
ATTR{[dmi/id]product_name}=="TravelMate*6292*|TravelMate*8471*|TravelMate*4720*|Aspire
1810T*|AO751h|AO531h", RUN+="keymap $name 0xD9 bluetooth"
ENV{DMI_VENDOR}=="Acer*", ATTR{[dmi/id]product_name}=="TravelMate 6593|Aspire
1640", RUN+="keymap $name 0xB2 www 0xEE screenlock"
ENV{DMI_VENDOR}=="Acer*", ATTR{[dmi/id]product_name}=="Aspire 6920",
RUN+="keymap $name acer-aspire_6920"
ENV{DMI_VENDOR}=="Acer*", ATTR{[dmi/id]product_name}=="Aspire 5920G",
RUN+="keymap $name acer-aspire_5920g"
ENV{DMI_VENDOR}=="Acer*", ATTR{[dmi/id]product_name}=="Aspire 5720*",
RUN+="keymap $name acer-aspire_5720"

ENV{DMI_VENDOR}=="*BenQ*", ATTR{[dmi/id]product_name}=="*Joybook R22*",
RUN+="keymap $name 0x6E wlan"

ENV{DMI_VENDOR}=="FUJITSU*", ATTR{[dmi/id]product_name}=="*AMILO Pro V3205*",
RUN+="keymap $name fujitsu-amilo_pro_v3205"
ENV{DMI_VENDOR}=="FUJITSU*", ATTR{[dmi/id]product_name}=="*AMILO Pa 2548*",
RUN+="keymap $name fujitsu-amilo_pa_2548"
ENV{DMI_VENDOR}=="FUJITSU*", ATTR{[dmi/id]product_name}=="*ESPRIMO Mobile V5*",
RUN+="keymap $name fujitsu-esprimo_mobile_v5"
ENV{DMI_VENDOR}=="FUJITSU*", ATTR{[dmi/id]product_name}=="*ESPRIMO Mobile V6*",
RUN+="keymap $name fujitsu-esprimo_mobile_v6"
ENV{DMI_VENDOR}=="FUJITSU*", ATTR{[dmi/id]product_name}=="*AMILO Pro Edition
V3505*", RUN+="keymap $name fujitsu-amilo_pro_edition_v3505"
ENV{DMI_VENDOR}=="FUJITSU*", ATTR{[dmi/id]product_name}=="*Amilo Si 1520*",
RUN+="keymap $name fujitsu-amilo_si_1520"
ENV{DMI_VENDOR}=="FUJITSU*", ATTR{[dmi/id]product_name}=="AMILO*M*",
RUN+="keymap $name 0x97 prog2 0x9F prog1"
ENV{DMI_VENDOR}=="FUJITSU*", ATTR{[dmi/id]product_name}=="Amilo Li 1718",
RUN+="keymap $name 0xD6 wlan"

ENV{DMI_VENDOR}=="LG*", ATTR{[dmi/id]product_name}=="*X110*", RUN+="keymap
$name lg-x110"

ENV{DMI_VENDOR}=="MEDION*", ATTR{[dmi/id]product_name}=="*FID2060*",
RUN+="keymap $name medion-fid2060"
ENV{DMI_VENDOR}=="MEDIONNB", ATTR{[dmi/id]product_name}=="A555*", RUN+="keymap
$name medionnb-a555"

ENV{DMI_VENDOR}=="MICRO-STAR*", RUN+="keymap $name micro-star"

# 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
ENV{DMI_VENDOR}=="MICRO-STAR*",
ATTR{[dmi/id]product_name}=="*U-100*|*U100*|*N033", RUN+="keymap $name 0xF7
reserved 0xF8 reserved"

ENV{DMI_VENDOR}=="INVENTEC", ATTR{[dmi/id]product_name}=="SYMPHONY 6.0/7.0",
RUN+="keymap $name inventec-symphony_6.0_7.0"

ENV{DMI_VENDOR}=="MAXDATA", ATTR{[dmi/id]product_name}=="Pro 7000*",
RUN+="keymap $name maxdata-pro_7000"

ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*",
ATTR{[dmi/id]product_name}=="*NC10*|*NC20*|*N128*|*N130*|*N210*|*SP55S*|*SQ45S70S*|*SX60P*|*SX22S*|*SX30S*|*R59P/R60P/R61P*|*SR70S/SR71S*|*Q210*|*Q310*|*X05*|*P560*|*R560*",
RUN+="keymap $name samsung-other"
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*",
ATTR{[dmi/id]product_name}=="*SX20S*", RUN+="keymap $name samsung-sx20s"
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*",
ATTR{[dmi/id]product_name}=="SQ1US", RUN+="keymap $name samsung-sq1us"
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*",
ATTR{[dmi/id]product_name}=="*X460*", RUN+="keymap $name samsung-x460"

ENV{DMI_VENDOR}=="TOSHIBA", ATTR{[dmi/id]product_name}=="SATELLITE A100",
RUN+="keymap $name toshiba-satellite_a100"
ENV{DMI_VENDOR}=="TOSHIBA", ATTR{[dmi/id]product_name}=="Satellite A110",
RUN+="keymap $name toshiba-satellite_a110"
ENV{DMI_VENDOR}=="TOSHIBA", ATTR{[dmi/id]product_name}=="Satellite M30X",
RUN+="keymap $name toshiba-satellite_m30x"

ENV{DMI_VENDOR}=="OQO Inc.*", ATTR{[dmi/id]product_name}=="OQO Model 2*",
RUN+="keymap $name oqo-model2"

ENV{DMI_VENDOR}=="ASUS", RUN+="keymap $name asus"

ENV{DMI_VENDOR}=="VIA", ATTR{[dmi/id]product_name}=="K8N800",
ATTR{[dmi/id]product_version}=="VT8204B", RUN+="keymap $name 0x81 prog1"

ENV{DMI_VENDOR}=="Zepto", ATTR{[dmi/id]product_name}=="Znote",
ATTR{[dmi/id]product_version}=="62*|63*", RUN+="keymap $name zepto-znote"

ENV{DMI_VENDOR}=="Everex", ATTR{[dmi/id]product_name}=="XT5000*", RUN+="keymap
$name everex-xt5000"

ENV{DMI_VENDOR}=="COMPAL", ATTR{[dmi/id]product_name}=="HEL80I", RUN+="keymap
$name 0x84 wlan"

ENV{DMI_VENDOR}=="OLPC", ATTR{[dmi/id]product_name}=="XO", RUN+="keymap $name
olpc-xo"
# Set model specific hotkey keycodes.
#
# Key map overrides can be specified by either giving scancode/keyname pairs
# directly as keymap arguments (if there are just one or two to change), or as
# a file name (in /lib/udev/keymaps), which has to contain scancode/keyname
# pairs.

ACTION=="remove", GOTO="keyboard_end"
SUBSYSTEM!="input", GOTO="keyboard_end"
KERNEL!="event*", GOTO="keyboard_end"

SUBSYSTEMS=="usb", ENV{ID_VENDOR}=="", IMPORT{program}="usb_id --export %p"
SUBSYSTEMS=="usb", GOTO="keyboard_usbcheck"
GOTO="keyboard_modulecheck"

#
# The following are external USB keyboards
#

LABEL="keyboard_usbcheck"

ENV{ID_VENDOR}=="Logitech*", ATTRS{name}=="Logitech USB Multimedia Keyboard", 
RUN+="keymap $name logitech-wave"
ENV{ID_VENDOR}=="Logitech*", ATTRS{name}=="Logitech USB Receiver", RUN+="keymap 
$name logitech-wave-cordless"
ENV{ID_VENDOR}=="Lite-On_Technology_Corp*", ATTRS{name}=="Lite-On Technology 
Corp. ThinkPad USB Keyboard with TrackPoint", RUN+="keymap $name 
lenovo-thinkpad-usb-keyboard-trackpoint"

GOTO="keyboard_end"

#
# The following are exposed as separate input devices with low key codes, thus
# we need to check their input device product name
#

LABEL="keyboard_modulecheck"

ENV{DMI_VENDOR}="$attr{[dmi/id]sys_vendor}"
ENV{DMI_VENDOR}=="", GOTO="keyboard_end"

ENV{DMI_VENDOR}=="IBM*", KERNELS=="input*", ATTRS{name}=="ThinkPad Extra 
Buttons", RUN+="keymap $name module-ibm"
ENV{DMI_VENDOR}=="LENOVO*", KERNELS=="input*", ATTRS{name}=="ThinkPad Extra 
Buttons", RUN+="keymap $name module-lenovo"
ENV{DMI_VENDOR}=="ASUS*", KERNELS=="input*", ATTRS{name}=="Asus Extra Buttons", 
ATTR{[dmi/id]product_name}=="W3J", RUN+="keymap $name module-asus-w3j"
ENV{DMI_VENDOR}=="Sony*", KERNELS=="input*", ATTRS{name}=="Sony Vaio Keys", 
RUN+="keymap $name module-sony"

# Older Vaios have some different keys
ENV{DMI_VENDOR}=="Sony*", 
ATTR{[dmi/id]product_name}=="*PCG-C1*|*PCG-K25*|*PCG-F1*|*PCG-F2*|*PCG-F3*|*PCG-F4*|*PCG-F5*|*PCG-F6*|*PCG-FX*|*PCG-FRV*|*PCG-GR*|*PCG-TR*|*PCG-NV*|*PCG-Z*|*VGN-S360*|*VGN-SZ2HP_B*",
 ATTRS{name}=="Sony Vaio Keys", RUN+="keymap $name module-sony-old"

#
# The following rules belong to standard i8042 AT keyboard with high key codes.
#

DRIVERS=="atkbd", GOTO="keyboard_vendorcheck"
GOTO="keyboard_end"

LABEL="keyboard_vendorcheck"

ENV{DMI_VENDOR}=="Dell*", RUN+="keymap $name dell"
ENV{DMI_VENDOR}=="Dell*", ATTR{[dmi/id]product_name}=="Inspiron 910|Inspiron 
1010|Inspiron 1011|Inspiron 1012|Inspiron 1110|Inspiron 1210", RUN+="keymap 
$name 0x84 wlan"

ENV{DMI_VENDOR}=="Compaq*", ATTR{[dmi/id]product_name}=="*E500*|*Evo N*", 
RUN+="keymap $name compaq-e_evo"

ENV{DMI_VENDOR}=="LENOVO*", ATTR{[dmi/id]product_version}=="*3000*", 
RUN+="keymap $name lenovo-3000"
ENV{DMI_VENDOR}=="LENOVO*", ATTR{[dmi/id]product_version}=="ThinkPad X6*", 
ATTR{[dmi/id]product_version}=="* Tablet" RUN+="keymap $name 
lenovo-thinkpad_x6_tablet"
ENV{DMI_VENDOR}=="LENOVO*", ATTR{[dmi/id]product_version}=="ThinkPad X200 
Tablet*", ATTR{[dmi/id]product_version}=="* Tablet" RUN+="keymap $name 
lenovo-thinkpad_x200_tablet"

ENV{DMI_VENDOR}=="Hewlett-Packard*", RUN+="keymap $name hewlett-packard"
ENV{DMI_VENDOR}=="Hewlett-Packard*", 
ATTR{[dmi/id]product_name}=="*[tT][aA][bB][lL][eE][tT]*", RUN+="keymap $name 
hewlett-packard-tablet"
ENV{DMI_VENDOR}=="Hewlett-Packard*", 
ATTR{[dmi/id]product_name}=="*[pP][aA][vV][iI][lL][iI][oO][nN]*", RUN+="keymap 
$name hewlett-packard-pavilion"
ENV{DMI_VENDOR}=="Hewlett-Packard*", 
ATTR{[dmi/id]product_name}=="*Compaq*|*EliteBook*|*2230s*", RUN+="keymap $name 
hewlett-packard-compaq_elitebook"
ENV{DMI_VENDOR}=="Hewlett-Packard*", 
ATTR{[dmi/id]product_name}=="*2510p*|*2530p*", RUN+="keymap $name 
hewlett-packard-2510p_2530p"
ENV{DMI_VENDOR}=="Hewlett-Packard*", ATTR{[dmi/id]product_name}=="*[tT][xX]2*", 
RUN+="keymap $name hewlett-packard-tx2"
ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="Presario 
2100*", RUN+="keymap $name hewlett-packard-presario-2100"
# HP Pavillion dv6315ea has empty DMI_VENDOR
ATTR{[dmi/id]board_vendor}=="Quanta", ATTR{[dmi/id]board_name}=="30B7", 
ATTR{[dmi/id]board_version}=="65.2B", RUN+="keymap $name 0x88 media" # "quick 
play

# Gateway clone of Acer Aspire One AOA110/AOA150
ENV{DMI_VENDOR}=="Gateway*", ATTR{[dmi/id]product_name}=="*AOA1*", RUN+="keymap 
$name acer"

ENV{DMI_VENDOR}=="Acer*", RUN+="keymap $name acer"
ENV{DMI_VENDOR}=="Acer*", ATTR{[dmi/id]product_name}=="Extensa*", 
ATTR{[dmi/id]product_name}=="*5210*|*5220*|*5610*|*5620*|*5720*", RUN+="keymap 
$name 0xEE screenlock"
ENV{DMI_VENDOR}=="Acer*", ATTR{[dmi/id]product_name}=="TravelMate*C300*", 
RUN+="keymap $name acer-travelmate_c300"
ENV{DMI_VENDOR}=="Acer*", 
ATTR{[dmi/id]product_name}=="TravelMate*6292*|TravelMate*8471*|TravelMate*4720*|Aspire
 1810T*|AO751h|AO531h", RUN+="keymap $name 0xD9 bluetooth"
ENV{DMI_VENDOR}=="Acer*", ATTR{[dmi/id]product_name}=="TravelMate 6593|Aspire 
1640", RUN+="keymap $name 0xB2 www 0xEE screenlock"
ENV{DMI_VENDOR}=="Acer*", ATTR{[dmi/id]product_name}=="Aspire 6920", 
RUN+="keymap $name acer-aspire_6920"
ENV{DMI_VENDOR}=="Acer*", ATTR{[dmi/id]product_name}=="Aspire 5920G", 
RUN+="keymap $name acer-aspire_5920g"
ENV{DMI_VENDOR}=="Acer*", ATTR{[dmi/id]product_name}=="Aspire 5720*", 
RUN+="keymap $name acer-aspire_5720"

ENV{DMI_VENDOR}=="*BenQ*", ATTR{[dmi/id]product_name}=="*Joybook R22*", 
RUN+="keymap $name 0x6E wlan"

ENV{DMI_VENDOR}=="FUJITSU*", ATTR{[dmi/id]product_name}=="*AMILO Pro V3205*", 
RUN+="keymap $name fujitsu-amilo_pro_v3205"
ENV{DMI_VENDOR}=="FUJITSU*", ATTR{[dmi/id]product_name}=="*AMILO Pa 2548*", 
RUN+="keymap $name fujitsu-amilo_pa_2548"
ENV{DMI_VENDOR}=="FUJITSU*", ATTR{[dmi/id]product_name}=="*ESPRIMO Mobile V5*", 
RUN+="keymap $name fujitsu-esprimo_mobile_v5"
ENV{DMI_VENDOR}=="FUJITSU*", ATTR{[dmi/id]product_name}=="*ESPRIMO Mobile V6*", 
RUN+="keymap $name fujitsu-esprimo_mobile_v6"
ENV{DMI_VENDOR}=="FUJITSU*", ATTR{[dmi/id]product_name}=="*AMILO Pro Edition 
V3505*", RUN+="keymap $name fujitsu-amilo_pro_edition_v3505"
ENV{DMI_VENDOR}=="FUJITSU*", ATTR{[dmi/id]product_name}=="*Amilo Si 1520*", 
RUN+="keymap $name fujitsu-amilo_si_1520"
ENV{DMI_VENDOR}=="FUJITSU*", ATTR{[dmi/id]product_name}=="AMILO*M*", 
RUN+="keymap $name 0x97 prog2 0x9F prog1"
ENV{DMI_VENDOR}=="FUJITSU*", ATTR{[dmi/id]product_name}=="Amilo Li 1718", 
RUN+="keymap $name 0xD6 wlan"

ENV{DMI_VENDOR}=="LG*", ATTR{[dmi/id]product_name}=="*X110*", RUN+="keymap 
$name lg-x110"

ENV{DMI_VENDOR}=="MEDION*", ATTR{[dmi/id]product_name}=="*FID2060*", 
RUN+="keymap $name medion-fid2060"
ENV{DMI_VENDOR}=="MEDIONNB", ATTR{[dmi/id]product_name}=="A555*", RUN+="keymap 
$name medionnb-a555"

ENV{DMI_VENDOR}=="MICRO-STAR*", RUN+="keymap $name micro-star"

# 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
ENV{DMI_VENDOR}=="MICRO-STAR*", 
ATTR{[dmi/id]product_name}=="*U-100*|*U100*|*N033", RUN+="keymap $name 0xF7 
reserved 0xF8 reserved"

ENV{DMI_VENDOR}=="INVENTEC", ATTR{[dmi/id]product_name}=="SYMPHONY 6.0/7.0", 
RUN+="keymap $name inventec-symphony_6.0_7.0"

ENV{DMI_VENDOR}=="MAXDATA", ATTR{[dmi/id]product_name}=="Pro 7000*", 
RUN+="keymap $name maxdata-pro_7000"

ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", 
ATTR{[dmi/id]product_name}=="*NC10*|*NC20*|*N128*|*N130*|*N210*|*SP55S*|*SQ45S70S*|*SX60P*|*SX22S*|*SX30S*|*R59P/R60P/R61P*|*SR70S/SR71S*|*Q210*|*Q310*|*X05*|*P560*|*R560*",
 RUN+="keymap $name samsung-other"
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", 
ATTR{[dmi/id]product_name}=="*SX20S*", RUN+="keymap $name samsung-sx20s"
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", 
ATTR{[dmi/id]product_name}=="SQ1US", RUN+="keymap $name samsung-sq1us"
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", 
ATTR{[dmi/id]product_name}=="*X460*", RUN+="keymap $name samsung-x460"

ENV{DMI_VENDOR}=="TOSHIBA", ATTR{[dmi/id]product_name}=="SATELLITE A100", 
RUN+="keymap $name toshiba-satellite_a100"
ENV{DMI_VENDOR}=="TOSHIBA", ATTR{[dmi/id]product_name}=="Satellite A110", 
RUN+="keymap $name toshiba-satellite_a110"
ENV{DMI_VENDOR}=="TOSHIBA", ATTR{[dmi/id]product_name}=="Satellite M30X", 
RUN+="keymap $name toshiba-satellite_m30x"

ENV{DMI_VENDOR}=="OQO Inc.*", ATTR{[dmi/id]product_name}=="OQO Model 2*", 
RUN+="keymap $name oqo-model2"

ENV{DMI_VENDOR}=="ASUS", RUN+="keymap $name asus"

ENV{DMI_VENDOR}=="VIA", ATTR{[dmi/id]product_name}=="K8N800", 
ATTR{[dmi/id]product_version}=="VT8204B", RUN+="keymap $name 0x81 prog1"

ENV{DMI_VENDOR}=="Zepto", ATTR{[dmi/id]product_name}=="Znote", 
ATTR{[dmi/id]product_version}=="62*|63*", RUN+="keymap $name zepto-znote"

ENV{DMI_VENDOR}=="Everex", ATTR{[dmi/id]product_name}=="XT5000*", RUN+="keymap 
$name everex-xt5000"

ENV{DMI_VENDOR}=="COMPAL", ATTR{[dmi/id]product_name}=="HEL80I", RUN+="keymap 
$name 0x84 wlan"

ENV{DMI_VENDOR}=="OLPC", ATTR{[dmi/id]product_name}=="XO", RUN+="keymap $name 
olpc-xo"

LABEL="keyboard_end"

Reply via email to