Index: precise/Makefile.am =================================================================== --- precise.orig/Makefile.am 2012-03-28 11:58:26.416868307 +0200 +++ precise/Makefile.am 2012-03-28 11:59:51.416872421 +0200 @@ -493,6 +493,7 @@ extras/keymap/keymaps/dell \ extras/keymap/keymaps/dell-latitude-xt2 \ extras/keymap/keymaps/everex-xt5000 \ + extras/keymap/keymaps/fujitsu-amilo_li_2732 \ extras/keymap/keymaps/fujitsu-amilo_pa_2548 \ extras/keymap/keymaps/fujitsu-amilo_pro_edition_v3505 \ extras/keymap/keymaps/fujitsu-amilo_pro_v3205 \ @@ -542,8 +543,10 @@ udevkeymapforcereldir = $(libexecdir)/keymaps/force-release dist_udevkeymapforcerel_DATA = \ extras/keymap/force-release-maps/dell-touchpad \ + extras/keymap/force-release-maps/dell-xps \ extras/keymap/force-release-maps/hp-other \ extras/keymap/force-release-maps/samsung-other \ + extras/keymap/force-release-maps/samsung-90x3a \ extras/keymap/force-release-maps/common-volume-keys extras/keymap/keys.txt: $(INCLUDE_PREFIX)/linux/input.h Index: precise/extras/keymap/95-keymap.rules =================================================================== --- precise.orig/extras/keymap/95-keymap.rules 2012-03-28 11:58:26.444868309 +0200 +++ precise/extras/keymap/95-keymap.rules 2012-03-28 11:59:12.012870514 +0200 @@ -79,7 +79,7 @@ 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 X20* Tablet*", ATTR{[dmi/id]product_version}=="* Tablet", RUN+="keymap $name lenovo-thinkpad_x200_tablet" +ENV{DMI_VENDOR}=="LENOVO*", ATTR{[dmi/id]product_version}=="ThinkPad X2[02]* Tablet*", ATTR{[dmi/id]product_version}=="* Tablet", RUN+="keymap $name lenovo-thinkpad_x200_tablet" ENV{DMI_VENDOR}=="LENOVO*", ATTR{[dmi/id]product_version}=="*IdeaPad*", RUN+="keymap $name lenovo-ideapad" ENV{DMI_VENDOR}=="LENOVO*", ATTR{[dmi/id]product_name}=="S10-*", RUN+="keymap $name lenovo-ideapad" ENV{DMI_VENDOR}=="LENOVO", ATTR{[dmi/id]product_version}=="*IdeaPad Y550*", RUN+="keymap $name 0x95 media 0xA3 play" @@ -88,10 +88,12 @@ 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}=="*Presario*CQ*", RUN+="keymap $name 0xD8 f21 0xD9 f21" ENV{DMI_VENDOR}=="Hewlett-Packard*", ATTR{[dmi/id]product_name}=="*2510p*|*2530p*|HP G60 Notebook PC", 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" ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="HP G62 Notebook PC", RUN+="keymap $name 0xB2 www" +ENV{DMI_VENDOR}=="Hewlett-Packard", ATTR{[dmi/id]product_name}=="HP ProBook*", RUN+="keymap $name 0xF8 rfkill" # 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 @@ -120,6 +122,7 @@ 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}=="FUJITSU*", ATTR{[dmi/id]product_name}=="AMILO Li 2732", RUN+="keymap $name fujitsu-amilo_li_2732" ENV{DMI_VENDOR}=="LG*", ATTR{[dmi/id]product_name}=="*X110*", RUN+="keymap $name lg-x110" @@ -140,6 +143,8 @@ ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", 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}=="*700Z*", RUN+="keymap $name 0xBA ejectcd 0x96 keyboardbrightnessup 0x97 keyboardbrightnessdown" +ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*90X3A*", RUN+="keymap $name samsung-90x3a" 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" @@ -161,4 +166,6 @@ ENV{DMI_VENDOR}=="OLPC", ATTR{[dmi/id]product_name}=="XO", RUN+="keymap $name olpc-xo" +ENV{DMI_VENDOR}=="Alienware*", ATTR{[dmi/id]product_name}=="M14xR1", RUN+="keymap $name 0x8A ejectcd" + LABEL="keyboard_end" Index: precise/extras/keymap/findkeyboards =================================================================== --- precise.orig/extras/keymap/findkeyboards 2012-03-28 11:58:26.568868315 +0200 +++ precise/extras/keymap/findkeyboards 2012-03-28 11:59:12.012870514 +0200 @@ -16,54 +16,53 @@ # returns OK if $1 contains $2 strstr() { - [ "${1#*$2*}" != "$1" ] + [ "${1#*$2*}" != "$1" ] } # returns OK if $1 contains $2 at the beginning str_starts() { - [ "${1#$2*}" != "$1" ] + [ "${1#$2*}" != "$1" ] } str_line_starts() { - while read a; do str_starts "$a" "$1" && return 0;done - return 1; + while read a; do str_starts "$a" "$1" && return 0;done + return 1; } # print a list of input devices which are keyboard-like keyboard_devices() { - # standard AT keyboard - for dev in `udevadm trigger --dry-run --verbose --property-match=ID_INPUT_KEYBOARD=1`; do - walk=`udevadm info --attribute-walk --path=$dev` - env=`udevadm info --query=env --path=$dev` - # filter out non-event devices, such as the parent input devices which - # have no devnode - if ! echo "$env" | str_line_starts 'DEVNAME='; then - continue - fi - if strstr "$walk" 'DRIVERS=="atkbd"'; then - echo -n 'AT keyboard: ' - elif echo "$env" | str_line_starts 'ID_USB_DRIVER=usbhid'; then - echo -n 'USB keyboard: ' - else - echo -n 'Unknown type: ' - fi - udevadm info --query=name --path=$dev - done - - # modules - module=$(udevadm trigger --verbose --dry-run --subsystem-match=input --attr-match=name='*Extra Buttons') - module="$module -$(udevadm trigger --verbose --dry-run --subsystem-match=input --attr-match=name='*extra buttons')" - module="$module -$(udevadm trigger --verbose --dry-run --subsystem-match=input --attr-match=name='Sony Vaio Keys')" - for m in $module; do - for evdev in $m/event*/dev; do - if [ -e "$evdev" ]; then - echo -n 'module: ' - udevadm info --query=name --path=${evdev%%/dev} - fi - done - done + # standard AT keyboard + for dev in `udevadm trigger --dry-run --verbose --property-match=ID_INPUT_KEYBOARD=1`; do + walk=`udevadm info --attribute-walk --path=$dev` + env=`udevadm info --query=env --path=$dev` + # filter out non-event devices, such as the parent input devices which have no devnode + if ! echo "$env" | str_line_starts 'DEVNAME='; then + continue + fi + if strstr "$walk" 'DRIVERS=="atkbd"'; then + echo -n 'AT keyboard: ' + elif echo "$env" | str_line_starts 'ID_USB_DRIVER=usbhid'; then + echo -n 'USB keyboard: ' + else + echo -n 'Unknown type: ' + fi + udevadm info --query=name --path=$dev + done + + # modules + module=$(udevadm trigger --verbose --dry-run --subsystem-match=input --attr-match=name='*Extra Buttons') + module="$module + $(udevadm trigger --verbose --dry-run --subsystem-match=input --attr-match=name='*extra buttons')" + module="$module + $(udevadm trigger --verbose --dry-run --subsystem-match=input --attr-match=name='Sony Vaio Keys')" + for m in $module; do + for evdev in $m/event*/dev; do + if [ -e "$evdev" ]; then + echo -n 'module: ' + udevadm info --query=name --path=${evdev%%/dev} + fi + done + done } keyboard_devices Index: precise/extras/keymap/keymaps/acer-aspire_5720 =================================================================== --- precise.orig/extras/keymap/keymaps/acer-aspire_5720 2012-03-28 11:58:26.512868312 +0200 +++ precise/extras/keymap/keymaps/acer-aspire_5720 2012-03-28 11:59:12.012870514 +0200 @@ -1,5 +1,4 @@ 0x84 bluetooth # sent when bluetooth module missing, and key pressed -0x92 media # acer arcade +0x92 media # acer arcade 0xD4 bluetooth # bluetooth on 0xD9 bluetooth # bluetooth off - Index: precise/extras/keymap/keymaps/acer-aspire_8930 =================================================================== --- precise.orig/extras/keymap/keymaps/acer-aspire_8930 2012-03-28 11:58:26.552868314 +0200 +++ precise/extras/keymap/keymaps/acer-aspire_8930 2012-03-28 11:59:12.012870514 +0200 @@ -3,4 +3,3 @@ 0x89 fastforward 0x92 media # key 'ARCADE' on cine dash media console 0x9E back - Index: precise/extras/keymap/keymaps/fujitsu-amilo_li_2732 =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ precise/extras/keymap/keymaps/fujitsu-amilo_li_2732 2012-03-28 11:59:12.012870514 +0200 @@ -0,0 +1,3 @@ +0xD9 brightnessdown # Fn+F8 brightness down +0xEF brightnessup # Fn+F9 brightness up +0xA9 switchvideomode # Fn+F10 Cycle between available video outputs Index: precise/extras/keymap/keymaps/lenovo-ideapad =================================================================== --- precise.orig/extras/keymap/keymaps/lenovo-ideapad 2012-03-28 11:58:26.524868313 +0200 +++ precise/extras/keymap/keymaps/lenovo-ideapad 2012-03-28 11:59:12.012870514 +0200 @@ -1,7 +1,8 @@ # Key codes observed on S10-3, assumed valid on other IdeaPad models -0x81 rfkill # does nothing in BIOS -0x83 display_off # BIOS toggles screen state -0xB9 brightnessup # does nothing in BIOS -0xBA brightnessdown # does nothing in BIOS -0xF1 camera # BIOS toggles camera power -0xf2 unknown # trackpad enable/disable (does nothing in BIOS) +0x81 rfkill # does nothing in BIOS +0x83 display_off # BIOS toggles screen state +0xB9 brightnessup # does nothing in BIOS +0xBA brightnessdown # does nothing in BIOS +0xF1 camera # BIOS toggles camera power +0xf2 f21 # touchpad toggle (key alternately emits f2 and f3) +0xf3 f21 Index: precise/extras/keymap/keymaps/lenovo-thinkpad-usb-keyboard-trackpoint =================================================================== --- precise.orig/extras/keymap/keymaps/lenovo-thinkpad-usb-keyboard-trackpoint 2012-03-28 11:58:26.500868311 +0200 +++ precise/extras/keymap/keymaps/lenovo-thinkpad-usb-keyboard-trackpoint 2012-03-28 11:59:12.012870514 +0200 @@ -10,4 +10,4 @@ 0x90011 prog1 # Thinkvantage button 0x90015 camera # Fn+F6 headset/camera VoIP key ?? -0x90010 micmute # Microphone mute button +0x90010 micmute # Microphone mute button Index: precise/extras/keymap/keymaps/samsung-sq1us =================================================================== --- precise.orig/extras/keymap/keymaps/samsung-sq1us 2012-03-28 11:58:26.472868310 +0200 +++ precise/extras/keymap/keymaps/samsung-sq1us 2012-03-28 11:59:12.016870514 +0200 @@ -1,6 +1,6 @@ 0xD4 menu 0xD8 f1 -0xD9 f10 +0xD9 f10 0xD6 f3 0xD7 f9 0xE4 f5 Index: precise/extras/keymap/keymaps/toshiba-satellite_m30x =================================================================== --- precise.orig/extras/keymap/keymaps/toshiba-satellite_m30x 2012-03-28 11:58:26.536868313 +0200 +++ precise/extras/keymap/keymaps/toshiba-satellite_m30x 2012-03-28 11:59:12.016870514 +0200 @@ -4,4 +4,3 @@ 0x93 media 0x9e f22 #touchpad_enable 0x9f f23 #touchpad_disable - Index: precise/extras/keymap/95-keyboard-force-release.rules =================================================================== --- precise.orig/extras/keymap/95-keyboard-force-release.rules 2012-03-28 11:58:26.456868309 +0200 +++ precise/extras/keymap/95-keyboard-force-release.rules 2012-03-28 11:59:12.016870514 +0200 @@ -5,10 +5,10 @@ # 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. +# in /usr/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 +# /usr/lib/udev/keymap -i /dev/input/eventX # on a Linux vt to find out. ACTION=="remove", GOTO="force_release_end" @@ -19,9 +19,11 @@ ENV{DMI_VENDOR}="$attr{[dmi/id]sys_vendor}" ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", RUN+="keyboard-force-release.sh $devpath samsung-other" +ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*90X3A*", RUN+="keyboard-force-release.sh $devpath samsung-90x3a" 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}=="Dell Inc.", ATTR{[dmi/id]product_name}=="Latitude E*|Precision M*", RUN+="keyboard-force-release.sh $devpath dell-touchpad" +ENV{DMI_VENDOR}=="Dell Inc.", ATTR{[dmi/id]product_name}=="XPS*", RUN+="keyboard-force-release.sh $devpath dell-xps" ENV{DMI_VENDOR}=="FUJITSU SIEMENS", ATTR{[dmi/id]product_name}=="AMILO Si 1848+u|AMILO Xi 2428", RUN+="keyboard-force-release.sh $devpath common-volume-keys" Index: precise/extras/keymap/force-release-maps/dell-xps =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ precise/extras/keymap/force-release-maps/dell-xps 2012-03-28 11:59:12.016870514 +0200 @@ -0,0 +1 @@ +0x8C Index: precise/extras/keymap/force-release-maps/samsung-90x3a =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ precise/extras/keymap/force-release-maps/samsung-90x3a 2012-03-28 11:59:12.016870514 +0200 @@ -0,0 +1,6 @@ +# list of scancodes (hex or decimal), optional comment +0xCE # Fn+F8 keyboard backlit up +0x8D # Fn+F7 keyboard backlit down +0x97 # Fn+F12 wifi on/off +0x96 # Fn+F1 performance mode (?) +0xD5 # Fn+F6 battery life extender Index: precise/extras/keymap/keymaps/samsung-90x3a =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ precise/extras/keymap/keymaps/samsung-90x3a 2012-03-28 11:59:12.016870514 +0200 @@ -0,0 +1,5 @@ +0x96 kbdillumup         # Fn+F8 keyboard backlit up +0x97 kbdillumdown       # Fn+F7 keyboard backlit down +0xD5 wlan               # Fn+F12 wifi on/off +0xCE prog1              # Fn+F1 performance mode +0x8D prog2              # Fn+F6 battery life extender