From 5b5ba3a997589efcf447616148b5686d10ae4e97 Mon Sep 17 00:00:00 2001 From: Ian Stakenvicius Date: Wed, 24 Jul 2013 14:00:06 -0400 Subject: [PATCH] Switch from external keymaps to internal (hwdb) keymaps This commit imports the new internal keyboard handling from upstream. This is a combination of many upstream commits, including those that added code, removed old code, and updated the hwdb. Some commits (hwdb ones specifically) were unrelated but brought in anyways to keep the whole hwdb consistent. Each upstream commit included is as follows: 9d7d42bc406a2ac04639674281ce3ff6beeda790 - internal keymap support 0c959b39175b126fdb70ae00de37ca6d9c8ca3a1 - hwdb: keyboard -- add file e8193554925a22b63bef0e77b8397b56d63a91ff - hwdb: keyboard -- update comments c79d894d590fc9df4861738555cc43c477e33376 - hwdb: import data aedc2eddd16e48d468e6ad0aea2caf00c7d37365 - hwdb: keyboard update 97a9313cafccf772ce03f5ebd36fe4d9d8412583 - hwdb: drop non-existant Samsung 900XC3 from keymap ddc77f62244bb41d5c8261517e2e1ff1b763fc94 - switch from udev keymaps to hwdb 0c3815773331b263713f4f7b9d80bc1ca159338e - also remove keymaps-force-release directory 1b6bce89b3383904d0dab619dd38bff673f7286e - keymap: re-add Logitech USB corded/cordless models bf89b99c5a39115112c2eda4c2103e2db54988d2 - 60-keyboard.hwdb: Fix syntax error ce39bb6909578017aa10031638e724e038f0b859 - hwdb: data update, upstream 884c86812c51479496edd50b278383d7bb67baf0 - rules: keyboard - use builtin command All code from each of the above commits is attributed to the original authors. There were some adjustments made in order to support the code differences between upstream and eudev, which was done by myself. Also of note is that the code can still be disabled via the --disable-keymaps configure option, which was removed from upstream. --- .gitignore | 11 +- Makefile.am | 6 - UPSTREAM-206-commit-todo | 164 +++ UPSTREAM.notes | 8 + configure.ac | 8 +- hwdb/20-OUI.hwdb | 189 ++- hwdb/20-pci-vendor-model.hwdb | 76 +- hwdb/60-keyboard.hwdb | 1011 +++++++++++++++++ hwdb/Makefile.am | 5 + keymaps-force-release/Makefile.am | 10 - keymaps-force-release/common-volume-keys | 3 - keymaps-force-release/dell-touchpad | 1 - keymaps-force-release/dell-xps | 1 - keymaps-force-release/hp-other | 3 - keymaps-force-release/samsung-other | 10 - keymaps-force-release/samsung-series-3 | 2 - keymaps-force-release/samsung-series-9 | 6 - keymaps/Makefile.README | 3 - keymaps/Makefile.am | 73 -- keymaps/acer | 22 - keymaps/acer-aspire_5720 | 5 - keymaps/acer-aspire_5920g | 5 - keymaps/acer-aspire_6920 | 5 - keymaps/acer-aspire_8930 | 5 - keymaps/acer-travelmate_c300 | 5 - keymaps/asus | 3 - keymaps/compaq-e_evo | 4 - keymaps/dell | 29 - keymaps/dell-latitude-xt2 | 4 - keymaps/everex-xt5000 | 7 - keymaps/fujitsu-amilo_li_2732 | 3 - keymaps/fujitsu-amilo_pa_2548 | 3 - keymaps/fujitsu-amilo_pro_edition_v3505 | 4 - keymaps/fujitsu-amilo_pro_v3205 | 2 - keymaps/fujitsu-amilo_si_1520 | 6 - keymaps/fujitsu-esprimo_mobile_v5 | 4 - keymaps/fujitsu-esprimo_mobile_v6 | 2 - keymaps/genius-slimstar-320 | 35 - keymaps/hewlett-packard | 12 - keymaps/hewlett-packard-2510p_2530p | 2 - keymaps/hewlett-packard-compaq_elitebook | 2 - keymaps/hewlett-packard-hdx9494nr | 3 - keymaps/hewlett-packard-pavilion | 3 - keymaps/hewlett-packard-presario-2100 | 3 - keymaps/hewlett-packard-tablet | 6 - keymaps/hewlett-packard-tx2 | 3 - keymaps/hewlett-packard_elitebook-8440p | 5 - keymaps/hewlett-packard_elitebook-8460p | 3 - keymaps/ibm-thinkpad-usb-keyboard-trackpoint | 7 - keymaps/inventec-symphony_6.0_7.0 | 2 - keymaps/lenovo-3000 | 5 - keymaps/lenovo-ideapad | 8 - .../lenovo-thinkpad-usb-keyboard-trackpoint | 13 - keymaps/lenovo-thinkpad_x200_tablet | 6 - keymaps/lenovo-thinkpad_x6_tablet | 8 - keymaps/lg-x110 | 12 - keymaps/logitech-usb | 6 - keymaps/logitech-wave | 16 - keymaps/logitech-wave-cordless | 15 - keymaps/logitech-wave-pro-cordless | 12 - keymaps/maxdata-pro_7000 | 9 - keymaps/medion-fid2060 | 2 - keymaps/medionnb-a555 | 4 - keymaps/micro-star | 13 - keymaps/module-asus-w3j | 11 - keymaps/module-ibm | 16 - keymaps/module-lenovo | 17 - keymaps/module-sony | 8 - keymaps/module-sony-old | 2 - keymaps/module-sony-vgn | 8 - keymaps/module-sony-vpc | 4 - keymaps/olpc-xo | 74 -- keymaps/onkyo | 14 - keymaps/oqo-model2 | 5 - keymaps/samsung-other | 14 - keymaps/samsung-series-3 | 3 - keymaps/samsung-series-9 | 5 - keymaps/samsung-sq1us | 7 - keymaps/samsung-sx20s | 4 - keymaps/toshiba-satellite_a100 | 2 - keymaps/toshiba-satellite_a110 | 10 - keymaps/toshiba-satellite_m30x | 6 - keymaps/zepto-znote | 11 - rules/60-keyboard.rules | 22 + rules/Makefile.am | 3 +- src/Makefile.am | 5 - src/keymap/Makefile.am | 58 - src/keymap/README.keymap.txt | 97 -- src/keymap/check-keymaps.sh.in | 45 - src/keymap/findkeyboards | 68 -- src/keymap/keyboard-force-release.sh.in | 22 - src/keymap/keymap.c | 453 -------- src/udev/Makefile.am | 35 + src/udev/udev-builtin-keyboard.c | 163 +++ src/udev/udev-builtin.c | 3 + src/udev/udev.h | 6 + 96 files changed, 1684 insertions(+), 1440 deletions(-) create mode 100644 UPSTREAM-206-commit-todo create mode 100644 hwdb/60-keyboard.hwdb delete mode 100644 keymaps-force-release/Makefile.am delete mode 100644 keymaps-force-release/common-volume-keys delete mode 100644 keymaps-force-release/dell-touchpad delete mode 100644 keymaps-force-release/dell-xps delete mode 100644 keymaps-force-release/hp-other delete mode 100644 keymaps-force-release/samsung-other delete mode 100644 keymaps-force-release/samsung-series-3 delete mode 100644 keymaps-force-release/samsung-series-9 delete mode 100644 keymaps/Makefile.README delete mode 100644 keymaps/Makefile.am delete mode 100644 keymaps/acer delete mode 100644 keymaps/acer-aspire_5720 delete mode 100644 keymaps/acer-aspire_5920g delete mode 100644 keymaps/acer-aspire_6920 delete mode 100644 keymaps/acer-aspire_8930 delete mode 100644 keymaps/acer-travelmate_c300 delete mode 100644 keymaps/asus delete mode 100644 keymaps/compaq-e_evo delete mode 100644 keymaps/dell delete mode 100644 keymaps/dell-latitude-xt2 delete mode 100644 keymaps/everex-xt5000 delete mode 100644 keymaps/fujitsu-amilo_li_2732 delete mode 100644 keymaps/fujitsu-amilo_pa_2548 delete mode 100644 keymaps/fujitsu-amilo_pro_edition_v3505 delete mode 100644 keymaps/fujitsu-amilo_pro_v3205 delete mode 100644 keymaps/fujitsu-amilo_si_1520 delete mode 100644 keymaps/fujitsu-esprimo_mobile_v5 delete mode 100644 keymaps/fujitsu-esprimo_mobile_v6 delete mode 100644 keymaps/genius-slimstar-320 delete mode 100644 keymaps/hewlett-packard delete mode 100644 keymaps/hewlett-packard-2510p_2530p delete mode 100644 keymaps/hewlett-packard-compaq_elitebook delete mode 100644 keymaps/hewlett-packard-hdx9494nr delete mode 100644 keymaps/hewlett-packard-pavilion delete mode 100644 keymaps/hewlett-packard-presario-2100 delete mode 100644 keymaps/hewlett-packard-tablet delete mode 100644 keymaps/hewlett-packard-tx2 delete mode 100644 keymaps/hewlett-packard_elitebook-8440p delete mode 100644 keymaps/hewlett-packard_elitebook-8460p delete mode 100644 keymaps/ibm-thinkpad-usb-keyboard-trackpoint delete mode 100644 keymaps/inventec-symphony_6.0_7.0 delete mode 100644 keymaps/lenovo-3000 delete mode 100644 keymaps/lenovo-ideapad delete mode 100644 keymaps/lenovo-thinkpad-usb-keyboard-trackpoint delete mode 100644 keymaps/lenovo-thinkpad_x200_tablet delete mode 100644 keymaps/lenovo-thinkpad_x6_tablet delete mode 100644 keymaps/lg-x110 delete mode 100644 keymaps/logitech-usb delete mode 100644 keymaps/logitech-wave delete mode 100644 keymaps/logitech-wave-cordless delete mode 100644 keymaps/logitech-wave-pro-cordless delete mode 100644 keymaps/maxdata-pro_7000 delete mode 100644 keymaps/medion-fid2060 delete mode 100644 keymaps/medionnb-a555 delete mode 100644 keymaps/micro-star delete mode 100644 keymaps/module-asus-w3j delete mode 100644 keymaps/module-ibm delete mode 100644 keymaps/module-lenovo delete mode 100644 keymaps/module-sony delete mode 100644 keymaps/module-sony-old delete mode 100644 keymaps/module-sony-vgn delete mode 100644 keymaps/module-sony-vpc delete mode 100644 keymaps/olpc-xo delete mode 100644 keymaps/onkyo delete mode 100644 keymaps/oqo-model2 delete mode 100644 keymaps/samsung-other delete mode 100644 keymaps/samsung-series-3 delete mode 100644 keymaps/samsung-series-9 delete mode 100644 keymaps/samsung-sq1us delete mode 100644 keymaps/samsung-sx20s delete mode 100644 keymaps/toshiba-satellite_a100 delete mode 100644 keymaps/toshiba-satellite_a110 delete mode 100644 keymaps/toshiba-satellite_m30x delete mode 100644 keymaps/zepto-znote create mode 100644 rules/60-keyboard.rules delete mode 100644 src/keymap/Makefile.am delete mode 100644 src/keymap/README.keymap.txt delete mode 100644 src/keymap/check-keymaps.sh.in delete mode 100755 src/keymap/findkeyboards delete mode 100644 src/keymap/keyboard-force-release.sh.in delete mode 100644 src/keymap/keymap.c create mode 100644 src/udev/udev-builtin-keyboard.c diff --git a/.gitignore b/.gitignore index f523ba12d..3f8ef4803 100644 --- a/.gitignore +++ b/.gitignore @@ -53,13 +53,10 @@ src/gudev/gudevmarshal.h src/gudev/GUdev-1.0.gir src/gudev/GUdev-1.0.typelib -src/keymap/check-keymaps.sh -src/keymap/keyboard-force-release.sh -src/keymap/keymap -src/keymap/keys-from-name.gperf -src/keymap/keys-from-name.h -src/keymap/keys-to-name.h -src/keymap/keys.txt +src/udev/keyboard-keys-from-name.gperf +src/udev/keyboard-keys-from-name.h +src/udev/keyboard-keys-to-name.h +src/udev/keyboard-keys.txt test/test-libudev test/test-udev diff --git a/Makefile.am b/Makefile.am index 4b07a365d..509447ac0 100644 --- a/Makefile.am +++ b/Makefile.am @@ -8,12 +8,6 @@ SUBDIRS = \ docs \ test -if ENABLE_KEYMAP -SUBDIRS += \ - keymaps \ - keymaps-force-release -endif - if ENABLE_MANPAGES SUBDIRS += \ man diff --git a/UPSTREAM-206-commit-todo b/UPSTREAM-206-commit-todo new file mode 100644 index 000000000..64a62978c --- /dev/null +++ b/UPSTREAM-206-commit-todo @@ -0,0 +1,164 @@ +21bf2ab082b42f03df5b4685df2fddc4d6e0d572 +0778c3db87383ffcbe0fd303019c8b7e96b75394 +f4f8f7b546508e1e7c94b072df685ac1342e8d7e +251cc8194228ac86c9a7a4c75a54a94cea2095c7 +33b521be152f67cd722695ba9a2966eda5ee6765 +efa3c0af8e0c8a9c7e3059bde65081b0020dfa6c +28f5c779e5513ab1301ac103471009711b0961e0 +7e380bba1cd517570655c0e653e2239e33988cd1 +ef7e6e0598b1711d7ccf741bb8e4e07a02ef33a7 +408f281bc7d65c86563f46e99e07efd1a1d9e03a +fbce11397f4d19821a9dfe66ee3ebe11cad90057 + orthographical mishaps that appeared in man/ in recent commits. +44affdc5fd20f812c25bc9d2b1a9fc04215274a1 +3c475ce44e6b3b5bd6b22cff11a1322dabd95ba0 +eb75d0ed059f56f0b5a8dcb8d490fae7063c76ca +459da00fe6496a77dcc31df964b59a17e9746c94 +bf7f800f2b3e93ccd1229d4717166f3a4d3af72f +e7c431d3bcfdeeec5dcae0707145edb9a3f749aa +d4d60b316914770e9e671122394f96521841eac7 +19cace379f3f680d3201cd257ab3ca6708b2d45d +83787333bd75f3fb5d2d844a5d5dbf68d93f7f3f +847ae0ae7f29e7bfb245d692409fc2948eab7d1d +9365b048c0c9f62ef7f696216ba049e6b4c2f2e5 +3e2f69b779aa0f3466ebb45837e8507baa0832f7 +7f0386f62c128896519aafa203caa1b3aafd4393 +1ec96668dd0dcb19cc2f7b99cbf73df0d769c97d +60211b35070a20ed0e78a83f39619139d56f7745 +f7f74d8ec46532f13a1dc418d550eaf76b339fa3 +431c72dc3d482732a01d3ab929aa9b2c36422d46 +3803cde44c3d949765bdf0e8bce06886224d40b4 +dc7adf202b82fc0054c457ce6ca3bcedb88dde57 +e2f2fb786059fbed410938f16e5cc8b851366b14 +ef89eef77ee098a6828169a6d0d74128e236bcbd +86d7de36869429f20d75e34bb3ddb2cfd2470e75 +aea38d8047a7a9370f8545007d242ede4a5cede1 +6aaa8c2f783cd1b3ac27c5ce40625d032e7e3d71 +61ad59b1314060958c6e1b1b480074e230b6ed3e +bc5cb1d525461c75e69ce1f82a52e223309cca7c +085b90af43fefd9ed195902c4b55f1da3c568554 +e1b7e7ec9b34ae6ae54a4c8084395cbf2bfe9960 +5d48cd27270e74f878f6ed3fe119e4cf3ef7f84e +98653cfb5005d0f505c48287d233d270ae6e75d6 +466784c8710e5cb0e0b86a16506d992d7ec5b619 +f04ca8c214e02e58877e994e5d1fa29a6abe5157 +d4ac85c6f6d8547f8b835009ae431438de72df28 +2f5df74a5ec135ab2baebf26af6f088e5b4b8205 +9b9b3d36b8ffe5b41c1455bffd44a9d11efc8aee +44bc6e1fe0171af19451b5586f7fdd08853ccf5b +a54e3b3d6a4fe28a39729f4c5ad11cd26706110c +c2654883624885696edccd2a202873998ec208f1 +059b7a9aad6c2e60957761b8f63267861c859be8 +52990c2e0eabd1c11280f553f858062d4165b92f +4b744dfabebd10bf0f13b64060f44b1bd6c82704 +d121b396ccb19dc33aacfc75a7f7a719914267c8 +affba8e90243526be673ad9f9b306a740b8824a6 +1070f974f7a1b6ba012e352b9d635d3902eca244 +2ce982f9b1a9f409b10fc4c0f3faa6b594b58df9 +20422497109aaba1d214f1597530de8b8788a526 +c3bb87dbab8b79bb9253407cb5b7f3e6fe8db395 +c961869ac580f5a3aea3737f9e45af71b0983662 +c72aadd1851096ea979f68b4e32cca71746ccdc4 +956eaf2b8d6c9999024705ddadc7393bc707de02 +69af45035913e7119cffd94c542bd3039600e45d +4ad16808c02e3eb6c1ec8500b3d086cc28e9b75a +248fc619b5e3e24d78f171f95b85916eee7987bd +dd94c17e7da89fa612952119ac825116dc5a8deb +32b2634edf218e250b84615bbf106b2baf42d69b +c5757cc8dbcddb3e8b13ebba4ea4b36589bfd3db +83a05f2c89d228a9a92b998b1cbd4a51f3693711 +db0c1e3bd39c9151ba4ac8e029ec77a4ec923bd1 +6b78df0a6ec75f25705a0f78ef895b95ab75a7ea +84b6ad702e64db534f67ce32d4dd2fec00a16784 +6cf2f1d94dc7749bcdff5385838bdc8eba9c3001 +e7256c5c137e58fb3dc1ebca8e5845733a5f733c +042e33ae3a7feb08c8105f1345fd244315109405 +a65f06bb27688a6738f2f94b7f055f4c66768d63 +daabe5491ee0c78b735336c9e69b7f6ea57464e0 +21c72713ae89cfc2c4096c383af9bb482665e0a6 +9c33d34fe4cd0bc58ea12e5258e595647c9e0b29 +6ed80a4e346883b99263a1a13505ef6afcbc09c3 +a331b5e6d4724365bad9edeb9420c7e26e7f50da +18d4e7c26e7806ac363d19989df7144d5058ce41 +7080ea16b5a0bfd71bfcdffc998e91f5273d47f9 +36c0868b67a9387d39c97983d3d22cfce0fedc62 +f3c19b70fa970321ec06d3bd2497f5abd525efc9 + Revert 90fc91d0065 again. There is no 900XC3 model, that's 900X3C and +b31c6d8d4f33502d6060e708f5252ee2ea8648ad +7801356442578ff6e1c65844eb9e65c819af4660 +3a83211689bdf4ab617a4fb79e11980c50918123 +fa7deadb074dfbe473cf3bd942768dbd94cbf7c3 +65cd79f7f574532e5f91d581aaff923c29655bbd +31a7eb86f18b0466681d6fbe80c148f96c551c80 +77a9e8de6572db6ba5ca49023937b67fc835f356 +8cf3ca80680b43015971cbbf4625517ae859d50c +10fb4e35fd8a44340f695e49230dc61b5766d47a +e7d90b71272f921b2d5a8f73a26fdd19f546ad07 +dac70dc77769f32b202ab07984687593de22f6b3 +d907c2086716681936755f28ac80b3445c6d0196 +248aa28ff27418ad074439014d476ed8cd2e01db +36398225b44367c89f11f42810e4f79652b09a09 + travis: Add a travis.yml for doing CI after commits +b4ecc959733d9d258d8ed0e8179368ee844a5578 +b8547c10c82994f2b8eab4510629139439b49371 +6c5a28255bea4385289149b4617c86a24eec519f +3eb1395706ca0a00ac15d59098a0250b0377e6b5 +bf502e636be8f76e05b0334b4e78ea7a398ba241 +6aea6d10f460853111ca8744201ec8dade97de3c +7aa4fa34f76b0d9b031f0a5ea941c7fa10cebbee +92d430a9e03056c0f62ed49149d59aed0046d0dd +6a75304e41e4487d840057a0e5f9972e141e4540 +b98e3866fddf2edfa13fc1b4323aa84f89336ff2 +3d56f7df4411684404470d36ddec0d90649a13a3 +9f64229f9ca69f5652b238a67531432e56108bd6 + This reverts cd3069559a09b4e4f85a6f02aa8f0521f48359ca. +d7b478b448d16b0f755e7e1c2eb4df83859034b2 +b463b81399f0bc0d54107ef819cc0f843473c7d7 +d868475ad62547f0a034dfaf038aff31b3d05372 +479fe882ae92e4c2eac3c995cd0d23d4c604889f +b54022fb92580022c5e830fbe4280992f5b3a770 +433dd100442e8197868def975c6fd38b48dc6439 +47a1454f707dff2e5d1db2f8bfcc406805d4d450 +cd3069559a09b4e4f85a6f02aa8f0521f48359ca +66a69314941b5020f57cda943095413c40d677d8 +f440e1bb8a0b1262c7649da502d0e9358019b968 +1e1ddecf405fdeb5a073c0696fafb50946af60d2 +b9ec9359369f224bfb13db616f97401a6a177bd8 +665f8316f435772ed539be5e164a85cd188f84b4 +8e7076caae32a560a11c1643b53fc4f12db4a6b1 +554604b3073467af75dc94fac9e2343148603289 +c14901bdebb311531fb85b02c7c6eebf6e8e4388 +042f9f5e5e76cf0e3cbfd009abd2add0366cdeca +9d12709626bccc0cae677a7035f62efe6aabb4ab +05b23cae8ebf6fbafd23ab8a0b0cfed747745d15 +d7bd3de0654669e65b9642c248c5fa6d1d9a9f61 +8a84192905a9845fda31b65cc433127f9c2f95ae +be2c1bd2a843aa61901086fccbae15b3aa085fb1 +a8833944647bfd10e43569646be954db5cbac54e +e2ca86cf78f911a8be51f0224796e24883019139 +852752fca2f73323e3c25b33348b3c92458665ae +f7db7a691c3f532cf60886312459f2baea755283 +4c5420a0c1429de866c4dfbe2f973cfa241bdbe4 +049b4474b35d0b854f87b0795a5113665413f6a4 +8aa75193662d0e18d7c21ee9d546b7f3c8b8bc14 +befb5b6a71c175d523644edbddd01b4b722fe956 +f6940be7825755d77ade4cd42231aab9e3580623 +bafb15bab99887d1b6b8a35136531bac6c3876a6 +aa1936ea1a89c2bb968ba33e3274898a4eeae771 +8577e67245fc5d38bfdc32349388769895202bc4 +66713f77e851c12452729d37e22ef66673852b8f +ac9ef33358b6e6277cfca86a85a49a022824549e +49998ede042907b0ba7f5e85e02fa569da26bc04 +7fb3ee51c1b37738fd0ea2c81dfd6c336144698a +f2d4f98d5873e0649b79b04b967fc9625ab3a350 +6797c324a653f119a3d7133122648aaa4878ddd6 +72673e866a83e6aafdbb599eb3eff2617b7dc79d +b9316fb0f39fff3df792e4e72eb491ec4265b91f +71445ae75b0e9954d141e5f0ee97803b406ea332 +d0ede8f1c555500dceebd3cc8a8e877ed1d89de6 +94c01aeb1049a87435e046245b8e5d975b778c60 +0c5778a26b14093c79bfc9e8b34e2aeeb1d79b87 +b170dd803d334234ad7edd0dc7bb34860832bc07 +6fa4853328e3d78d092172fa54effb7e785d0a85 +376dd21dc0757e8a6d3f60d6d21bb802a90f1983 +bdeeb6b543a2a2d0a494f17b85f1498859cdfc2f diff --git a/UPSTREAM.notes b/UPSTREAM.notes index 7cb12e32f..e2e1cadd9 100644 --- a/UPSTREAM.notes +++ b/UPSTREAM.notes @@ -1,3 +1,11 @@ +2013-07-24 + + * Incorporate migration from external to internal keymaps. About 13 commits were cherry-picked + out of upstream, after and including 9d7d42bc406a2ac04639674281ce3ff6beeda790, to assemble + this commit in eudev. Note that between this commit and upstream release 206 there are still + many commits that need to be evaluated -- the commits are temporarily stored in the file + 'UPSTREAM-206-commit-todo'. + 2013-07-11 * Prepare 1.1 release. Uptream imports are up to date as of 2013-07-10. All commits diff --git a/configure.ac b/configure.ac index 3e5c53f9c..52e241fa7 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ AC_PREREQ([2.68]) -AC_INIT([eudev],[1.1],[https://github.com/gentoo/eudev/issues]) +AC_INIT([eudev],[1.2],[https://github.com/gentoo/eudev/issues]) AC_SUBST(UDEV_VERSION, 205) AC_CONFIG_SRCDIR([src/udev/udevd.c]) @@ -231,6 +231,7 @@ if test "x$enable_keymap" = "xyes"; then if test -z "$GPERF" ; then AC_MSG_ERROR([*** gperf not found]) fi + AC_DEFINE([ENABLE_KEYMAP], [1], [Define if we are enabling rule generator]) fi AM_CONDITIONAL([ENABLE_KEYMAP], [test "x$enable_keymap" = "xyes"]) @@ -313,8 +314,6 @@ AC_CONFIG_FILES([Makefile docs/libudev/Makefile docs/libudev/version.xml hwdb/Makefile - keymaps-force-release/Makefile - keymaps/Makefile man/Makefile rules/Makefile rule_generator/Makefile @@ -330,9 +329,6 @@ AC_CONFIG_FILES([Makefile src/v4l_id/Makefile src/gudev/Makefile src/gudev/gudev-1.0.pc - src/keymap/Makefile - src/keymap/check-keymaps.sh - src/keymap/keyboard-force-release.sh src/libudev/Makefile src/libudev/libudev.pc src/udev/Makefile diff --git a/hwdb/20-OUI.hwdb b/hwdb/20-OUI.hwdb index 8b402f9b4..5ebd6413b 100644 --- a/hwdb/20-OUI.hwdb +++ b/hwdb/20-OUI.hwdb @@ -7295,7 +7295,7 @@ OUI:0050C298C* ID_OUI_FROM_DATABASE=MGM-Devices Oy OUI:0050C298D* - ID_OUI_FROM_DATABASE=Mecos Traxler AG + ID_OUI_FROM_DATABASE=Mecos AG OUI:0050C298E* ID_OUI_FROM_DATABASE=Link Technologies, Inc @@ -13099,6 +13099,48 @@ OUI:40D85512D* OUI:40D85512E* ID_OUI_FROM_DATABASE=Canfield Scientific, Inc. +OUI:40D855130* + ID_OUI_FROM_DATABASE=GSP Sprachtechnologie GmbH + +OUI:40D855131* + ID_OUI_FROM_DATABASE=EMAC, INC. + +OUI:40D855132* + ID_OUI_FROM_DATABASE=AeroVision Avionics, Inc + +OUI:40D855133* + ID_OUI_FROM_DATABASE=Tattile srl + +OUI:40D855134* + ID_OUI_FROM_DATABASE=digitech GmbH & Co. KG + +OUI:40D855135* + ID_OUI_FROM_DATABASE=GLOBALCOM ENGINEERING SRL + +OUI:40D855136* + ID_OUI_FROM_DATABASE=Devriecom B.V. + +OUI:40D855137* + ID_OUI_FROM_DATABASE=GDE Polska + +OUI:40D855138* + ID_OUI_FROM_DATABASE=Calon Associates Limited + +OUI:40D855139* + ID_OUI_FROM_DATABASE=WOW System + +OUI:40D85513A* + ID_OUI_FROM_DATABASE=Supplier Ind. e Com de Eletroeletrônicos + +OUI:40D85513B* + ID_OUI_FROM_DATABASE=Davin Technologies Co.,Ltd + +OUI:40D85513C* + ID_OUI_FROM_DATABASE=shanghai anjian Information technology co. , ltd. + +OUI:40D85513D* + ID_OUI_FROM_DATABASE=Perm Scientific-Industrial Instrument Making Company JSC + OUI:000000* ID_OUI_FROM_DATABASE=XEROX CORPORATION @@ -14675,7 +14717,7 @@ OUI:00020D* ID_OUI_FROM_DATABASE=Micronpc.com OUI:00020E* - ID_OUI_FROM_DATABASE=ECI Telecom, Ltd., NSD-US + ID_OUI_FROM_DATABASE=ECI Telecom, Ltd OUI:00020F* ID_OUI_FROM_DATABASE=AATR @@ -46093,6 +46135,9 @@ OUI:0075E1* OUI:00789E* ID_OUI_FROM_DATABASE=SAGEMCOM +OUI:007DFA* + ID_OUI_FROM_DATABASE=Volkswagen Group of America + OUI:007F28* ID_OUI_FROM_DATABASE=Actiontec Electronics, Inc @@ -51148,6 +51193,9 @@ OUI:044BFF* OUI:044CEF* ID_OUI_FROM_DATABASE=Fujian Sanao Technology Co.,Ltd +OUI:044F8B* + ID_OUI_FROM_DATABASE=Adapteva, Inc. + OUI:044FAA* ID_OUI_FROM_DATABASE=Ruckus Wireless @@ -52102,6 +52150,9 @@ OUI:0C57EB* OUI:0C5A19* ID_OUI_FROM_DATABASE=Axtion Sdn Bhd +OUI:0C5CD8* + ID_OUI_FROM_DATABASE=DOLI Elektronik GmbH + OUI:0C6076* ID_OUI_FROM_DATABASE=Hon Hai Precision Ind. Co.,Ltd. @@ -52171,6 +52222,9 @@ OUI:0C93FB* OUI:0C96BF* ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd +OUI:0C9B13* + ID_OUI_FROM_DATABASE=Shanghai Magic Mobile Telecommunication Co.Ltd. + OUI:0C9D56* ID_OUI_FROM_DATABASE=Consort Controls Ltd @@ -52618,6 +52672,9 @@ OUI:141BF0* OUI:1423D7* ID_OUI_FROM_DATABASE=EUTRONIX CO., LTD. +OUI:142BD2* + ID_OUI_FROM_DATABASE=Armtel Ltd. + OUI:142D8B* ID_OUI_FROM_DATABASE=Incipio Technologies, Inc @@ -52924,6 +52981,9 @@ OUI:187A93* OUI:187C81* ID_OUI_FROM_DATABASE=Valeo Vision Systems +OUI:187ED5* + ID_OUI_FROM_DATABASE=shenzhen kaism technology Co. Ltd + OUI:1880CE* ID_OUI_FROM_DATABASE=Barberry Solutions Ltd @@ -53122,6 +53182,9 @@ OUI:1C48F9* OUI:1C4AF7* ID_OUI_FROM_DATABASE=AMON INC +OUI:1C4BB9* + ID_OUI_FROM_DATABASE=SMG ENTERPRISE, LLC + OUI:1C4BD6* ID_OUI_FROM_DATABASE=AzureWave @@ -53608,6 +53671,9 @@ OUI:245FDF* OUI:246278* ID_OUI_FROM_DATABASE=sysmocom - systems for mobile communications GmbH +OUI:2464EF* + ID_OUI_FROM_DATABASE=CYG SUNRI CO.,LTD. + OUI:246511* ID_OUI_FROM_DATABASE=AVM GmbH @@ -53626,6 +53692,9 @@ OUI:24767D* OUI:247703* ID_OUI_FROM_DATABASE=Intel Corporate +OUI:248000* + ID_OUI_FROM_DATABASE=Westcontrol AS + OUI:2481AA* ID_OUI_FROM_DATABASE=KSH International Co., Ltd. @@ -53833,6 +53902,9 @@ OUI:284846* OUI:284C53* ID_OUI_FROM_DATABASE=Intune Networks +OUI:284D92* + ID_OUI_FROM_DATABASE=Luminator + OUI:284FCE* ID_OUI_FROM_DATABASE=Liaoning Wontel Science and Technology Development Co.,Ltd. @@ -54109,12 +54181,18 @@ OUI:2C44FD* OUI:2C542D* ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. +OUI:2C553C* + ID_OUI_FROM_DATABASE=Gainspeed, Inc. + OUI:2C59E5* ID_OUI_FROM_DATABASE=Hewlett Packard OUI:2C5AA3* ID_OUI_FROM_DATABASE=PROMATE ELECTRONIC CO.LTD +OUI:2C5FF3* + ID_OUI_FROM_DATABASE=Pertronic Industries + OUI:2C625A* ID_OUI_FROM_DATABASE=Finest Security Systems Co., Ltd @@ -54526,6 +54604,9 @@ OUI:3451C9* OUI:345B11* ID_OUI_FROM_DATABASE=EVI HEAT AB +OUI:346178* + ID_OUI_FROM_DATABASE=The Boeing Company + OUI:34684A* ID_OUI_FROM_DATABASE=Teraworks Co., Ltd. @@ -54958,6 +55039,9 @@ OUI:3C0FC1* OUI:3C106F* ID_OUI_FROM_DATABASE=ALBAHITH TECHNOLOGIES +OUI:3C15EA* + ID_OUI_FROM_DATABASE=TESCOM CO., LTD. + OUI:3C1915* ID_OUI_FROM_DATABASE=GFI Chrono Time @@ -56140,6 +56224,9 @@ OUI:50252B* OUI:502690* ID_OUI_FROM_DATABASE=Fujitsu Limited +OUI:5027C7* + ID_OUI_FROM_DATABASE=TECHNART Co.,Ltd + OUI:502A7E* ID_OUI_FROM_DATABASE=Smart electronic GmbH @@ -56284,6 +56371,9 @@ OUI:50AF73* OUI:50B7C3* ID_OUI_FROM_DATABASE=Samsung Electronics CO., LTD +OUI:50B888* + ID_OUI_FROM_DATABASE=wi2be Tecnologia S/A + OUI:50B8A2* ID_OUI_FROM_DATABASE=ImTech Technologies LLC, @@ -56480,7 +56570,7 @@ OUI:54A51B* ID_OUI_FROM_DATABASE=Shenzhen Huawei Communication Technologies Co., Ltd OUI:54A54B* - ID_OUI_FROM_DATABASE=NSC Communiaction Siberia Ltd + ID_OUI_FROM_DATABASE=NSC Communications Siberia Ltd OUI:54A619* ID_OUI_FROM_DATABASE=Alcatel-Lucent Shanghai Bell Co., Ltd @@ -56614,6 +56704,9 @@ OUI:5856E8* OUI:58570D* ID_OUI_FROM_DATABASE=Danfoss Solar Inverters +OUI:58639A* + ID_OUI_FROM_DATABASE=TPL SYSTEMES + OUI:5865E6* ID_OUI_FROM_DATABASE=INFOMARK CO., LTD. @@ -56686,6 +56779,9 @@ OUI:589835* OUI:58986F* ID_OUI_FROM_DATABASE=Revolution Display +OUI:58A2B5* + ID_OUI_FROM_DATABASE=LG Electronics + OUI:58A76F* ID_OUI_FROM_DATABASE=iD corporation @@ -57037,6 +57133,9 @@ OUI:601E02* OUI:6021C0* ID_OUI_FROM_DATABASE=Murata Manufactuaring Co.,Ltd. +OUI:6024C1* + ID_OUI_FROM_DATABASE=Jiangsu Zhongxun Electronic Technology Co., Ltd + OUI:602A54* ID_OUI_FROM_DATABASE=CardioTek B.V. @@ -57157,6 +57256,9 @@ OUI:60A10A* OUI:60A44C* ID_OUI_FROM_DATABASE=ASUSTek COMPUTER INC. +OUI:60A9B0* + ID_OUI_FROM_DATABASE=Merchandising Technologies, Inc + OUI:60B185* ID_OUI_FROM_DATABASE=ATH system @@ -57895,6 +57997,9 @@ OUI:6C5779* OUI:6C5A34* ID_OUI_FROM_DATABASE=Shenzhen Haitianxiong Electronic Co., Ltd. +OUI:6C5AB5* + ID_OUI_FROM_DATABASE=TCL Technoly Electronics (Huizhou) Co., Ltd. + OUI:6C5CDE* ID_OUI_FROM_DATABASE=SunReports, Inc. @@ -58687,6 +58792,9 @@ OUI:78593E* OUI:78595E* ID_OUI_FROM_DATABASE=Samsung Electronics Co.,Ltd +OUI:785968* + ID_OUI_FROM_DATABASE=Hon Hai Precision Ind.Co.,Ltd. + OUI:785C72* ID_OUI_FROM_DATABASE=Hioso Technology Co., Ltd. @@ -58840,6 +58948,9 @@ OUI:78D5B5* OUI:78D6F0* ID_OUI_FROM_DATABASE=Samsung Electro Mechanics +OUI:78D99F* + ID_OUI_FROM_DATABASE=NuCom HK Ltd. + OUI:78DAB3* ID_OUI_FROM_DATABASE=GBO Technology @@ -58909,6 +59020,9 @@ OUI:7C0507* OUI:7C051E* ID_OUI_FROM_DATABASE=RAFAEL LTD. +OUI:7C0623* + ID_OUI_FROM_DATABASE=Ultra Electronics, CIS + OUI:7C08D9* ID_OUI_FROM_DATABASE=Shanghai Engineering Research Center for Broadband Technologies and Applications @@ -59416,12 +59530,18 @@ OUI:8400D2* OUI:840B2D* ID_OUI_FROM_DATABASE=SAMSUNG ELECTRO-MECHANICS CO., LTD +OUI:840F45* + ID_OUI_FROM_DATABASE=Shanghai GMT Digital Technologies Co., Ltd + OUI:841715* ID_OUI_FROM_DATABASE=GP Electronics (HK) Ltd. OUI:841888* ID_OUI_FROM_DATABASE=Juniper Networks +OUI:841B38* + ID_OUI_FROM_DATABASE=Shenzhen Excelsecu Data Technology Co.,Ltd + OUI:841B5E* ID_OUI_FROM_DATABASE=NETGEAR @@ -59689,6 +59809,9 @@ OUI:8841C1* OUI:8843E1* ID_OUI_FROM_DATABASE=CISCO SYSTEMS, INC. +OUI:8844F6* + ID_OUI_FROM_DATABASE=Nokia Corporation + OUI:88462A* ID_OUI_FROM_DATABASE=Telechips Inc. @@ -59725,6 +59848,9 @@ OUI:887398* OUI:887556* ID_OUI_FROM_DATABASE=Cisco +OUI:88789C* + ID_OUI_FROM_DATABASE=Game Technologies SA + OUI:8886A0* ID_OUI_FROM_DATABASE=Simton Technologies, Ltd. @@ -60562,6 +60688,9 @@ OUI:94DE0E* OUI:94DE80* ID_OUI_FROM_DATABASE=GIGA-BYTE TECHNOLOGY CO.,LTD. +OUI:94DF4E* + ID_OUI_FROM_DATABASE=Wistron InfoComm(Kunshan)Co.,Ltd. + OUI:94DF58* ID_OUI_FROM_DATABASE=IJ Electron CO.,Ltd. @@ -60979,6 +61108,9 @@ OUI:9C9811* OUI:9C9C1D* ID_OUI_FROM_DATABASE=Starkey Labs Inc. +OUI:9CA10A* + ID_OUI_FROM_DATABASE=SCLE SFE + OUI:9CA134* ID_OUI_FROM_DATABASE=Nike, Inc. @@ -62410,6 +62542,9 @@ OUI:B439D6* OUI:B43DB2* ID_OUI_FROM_DATABASE=Degreane Horizon +OUI:B43E3B* + ID_OUI_FROM_DATABASE=Viableware, Inc + OUI:B4417A* ID_OUI_FROM_DATABASE=ShenZhen Gongjin Electronics Co.,Ltd @@ -62488,6 +62623,9 @@ OUI:B4A4E3* OUI:B4A5A9* ID_OUI_FROM_DATABASE=MODI GmbH +OUI:B4A82B* + ID_OUI_FROM_DATABASE=Histar + OUI:B4A95A* ID_OUI_FROM_DATABASE=Avaya, Inc @@ -63037,6 +63175,9 @@ OUI:BC926B* OUI:BC9680* ID_OUI_FROM_DATABASE=Shenzhen Gongjin Electronics Co.,Ltd +OUI:BC9889* + ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. + OUI:BC99BC* ID_OUI_FROM_DATABASE=FonSee Technology Inc. @@ -63307,6 +63448,9 @@ OUI:C0C3B6* OUI:C0C520* ID_OUI_FROM_DATABASE=Ruckus Wireless +OUI:C0C687* + ID_OUI_FROM_DATABASE=Cisco SPVTG + OUI:C0C946* ID_OUI_FROM_DATABASE=MITSUYA LABORATORIES INC. @@ -63514,6 +63658,9 @@ OUI:C49300* OUI:C49313* ID_OUI_FROM_DATABASE=100fio networks technology llc +OUI:C49380* + ID_OUI_FROM_DATABASE=Speedytel technology + OUI:C495A2* ID_OUI_FROM_DATABASE=SHENZHEN WEIJIU INDUSTRY AND TRADE DEVELOPMENT CO., LTD @@ -64177,6 +64324,9 @@ OUI:D023DB* OUI:D02788* ID_OUI_FROM_DATABASE=Hon Hai Precision Ind.Co.Ltd +OUI:D02C45* + ID_OUI_FROM_DATABASE=littleBits Electronics, Inc. + OUI:D02DB3* ID_OUI_FROM_DATABASE=Huawei Technologies Co., Ltd @@ -64267,6 +64417,9 @@ OUI:D08CFF* OUI:D093F8* ID_OUI_FROM_DATABASE=Stonestreet One LLC +OUI:D095C7* + ID_OUI_FROM_DATABASE=Pantech Co., Ltd. + OUI:D09B05* ID_OUI_FROM_DATABASE=Emtronix @@ -64588,6 +64741,9 @@ OUI:D4AAFF* OUI:D4AC4E* ID_OUI_FROM_DATABASE=BODi rS, LLC +OUI:D4AD2D* + ID_OUI_FROM_DATABASE=Fiberhome Telecommunication Tech.Co.,Ltd. + OUI:D4AE52* ID_OUI_FROM_DATABASE=Dell Inc @@ -64714,6 +64870,9 @@ OUI:D824BD* OUI:D826B9* ID_OUI_FROM_DATABASE=Guangdong Coagent Electronics S &T Co., Ltd. +OUI:D8270C* + ID_OUI_FROM_DATABASE=MaxTronic International Co., Ltd. + OUI:D828C9* ID_OUI_FROM_DATABASE=General Electric Consumer and Industrial @@ -65134,6 +65293,9 @@ OUI:DCF858* OUI:DCFAD5* ID_OUI_FROM_DATABASE=STRONG Ges.m.b.H. +OUI:DCFB02* + ID_OUI_FROM_DATABASE=Buffalo Inc. + OUI:E005C5* ID_OUI_FROM_DATABASE=TP-LINK Technologies Co.,Ltd. @@ -65302,6 +65464,9 @@ OUI:E0ABFE* OUI:E0AE5E* ID_OUI_FROM_DATABASE=ALPS Co,. Ltd. +OUI:E0AEB2* + ID_OUI_FROM_DATABASE=Bender GmbH & Co.KG + OUI:E0AEED* ID_OUI_FROM_DATABASE=LOENK @@ -65920,6 +66085,9 @@ OUI:EC233D* OUI:EC2368* ID_OUI_FROM_DATABASE=IntelliVoice Co.,Ltd. +OUI:EC2AF0* + ID_OUI_FROM_DATABASE=Ypsomed AG + OUI:EC2C49* ID_OUI_FROM_DATABASE=University of Tokyo @@ -66646,6 +66814,9 @@ OUI:F80F84* OUI:F81037* ID_OUI_FROM_DATABASE=Atopia Systems, LP +OUI:F81547* + ID_OUI_FROM_DATABASE=Avaya, Inc + OUI:F81654* ID_OUI_FROM_DATABASE=Intel Corporate @@ -66694,6 +66865,9 @@ OUI:F83DFF* OUI:F842FB* ID_OUI_FROM_DATABASE=Yasuda Joho Co.,ltd. +OUI:F845AD* + ID_OUI_FROM_DATABASE=Konka Group Co., Ltd. + OUI:F8462D* ID_OUI_FROM_DATABASE=SYNTEC Incorporation @@ -66703,6 +66877,9 @@ OUI:F8472D* OUI:F84897* ID_OUI_FROM_DATABASE=Hitachi, Ltd. +OUI:F84A7F* + ID_OUI_FROM_DATABASE=Innometriks Inc + OUI:F84ABF* ID_OUI_FROM_DATABASE=HUAWEI TECHNOLOGIES CO.,LTD @@ -66718,6 +66895,9 @@ OUI:F8516D* OUI:F852DF* ID_OUI_FROM_DATABASE=VNL Europe AB +OUI:F854AF* + ID_OUI_FROM_DATABASE=ECI Telecom Ltd. + OUI:F85BC9* ID_OUI_FROM_DATABASE=M-Cube Spa @@ -66787,6 +66967,9 @@ OUI:F89FB8* OUI:F8A03D* ID_OUI_FROM_DATABASE=Dinstar Technologies Co., Ltd. +OUI:F8A45F* + ID_OUI_FROM_DATABASE=Beijing Xiaomi communications co.,ltd + OUI:F8A9DE* ID_OUI_FROM_DATABASE=PUISSANCE PLUS diff --git a/hwdb/20-pci-vendor-model.hwdb b/hwdb/20-pci-vendor-model.hwdb index de0b27cb3..2436a29e9 100644 --- a/hwdb/20-pci-vendor-model.hwdb +++ b/hwdb/20-pci-vendor-model.hwdb @@ -1898,6 +1898,9 @@ pci:v00001002d00004242* pci:v00001002d00004242sv00001002sd000002AA* ID_MODEL_FROM_DATABASE=Radeon 8500 AIW DV Edition +pci:v00001002d00004243* + ID_MODEL_FROM_DATABASE=R200 PCI Bridge [All-in-Wonder Radeon 8500DV] + pci:v00001002d00004336* ID_MODEL_FROM_DATABASE=RS100 [Radeon IGP 320M] @@ -3920,6 +3923,9 @@ pci:v00001002d00005A20* pci:v00001002d00005A23* ID_MODEL_FROM_DATABASE=RD990 I/O Memory Management Unit (IOMMU) +pci:v00001002d00005A31* + ID_MODEL_FROM_DATABASE=RC410 Host Bridge + pci:v00001002d00005A33* ID_MODEL_FROM_DATABASE=Radeon Xpress 200 Host Bridge @@ -6183,7 +6189,7 @@ pci:v00001002d00006840sv000017AAsd00005103* ID_MODEL_FROM_DATABASE=Radeon HD 7670M pci:v00001002d00006841* - ID_MODEL_FROM_DATABASE=Thames [Radeon 7550M/7570M/7650M] + ID_MODEL_FROM_DATABASE=Thames [Radeon HD 7550M/7570M/7650M] pci:v00001002d00006841sv00001028sd00000561* ID_MODEL_FROM_DATABASE=Radeon HD 7650M @@ -8372,6 +8378,45 @@ pci:v00001002d00009552sv0000174Bsd00003000* pci:v00001002d00009553* ID_MODEL_FROM_DATABASE=RV710/M92 [Mobility Radeon HD 4530/4570/545v] +pci:v00001002d00009553sv00001025sd0000015E* + ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 + +pci:v00001002d00009553sv00001025sd0000017D* + ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 + +pci:v00001002d00009553sv00001025sd00000205* + ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 + +pci:v00001002d00009553sv00001025sd00000206* + ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 + +pci:v00001002d00009553sv00001025sd00000237* + ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 + +pci:v00001002d00009553sv00001028sd000002BE* + ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 + +pci:v00001002d00009553sv00001028sd000002E8* + ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4530 + +pci:v00001002d00009553sv0000103Csd00003624* + ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4530 + +pci:v00001002d00009553sv0000103Csd00003628* + ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4530 + +pci:v00001002d00009553sv0000103Csd00003636* + ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4530 + +pci:v00001002d00009553sv00001043sd00001B32* + ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 + +pci:v00001002d00009553sv00001043sd00001B42* + ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 + +pci:v00001002d00009553sv0000104Dsd00009056* + ID_MODEL_FROM_DATABASE=Mobility Radeon HD 4570 + pci:v00001002d00009553sv00001179sd0000FF82* ID_MODEL_FROM_DATABASE=Satellite L505-13T GPU (Mobility Radeon HD 5145) @@ -10904,6 +10949,12 @@ pci:v00001022d00007813* pci:v00001022d00007814* ID_MODEL_FROM_DATABASE=FCH USB XHCI Controller +pci:v00001022d00007900* + ID_MODEL_FROM_DATABASE=CZ SATA Controller [IDE mode] + +pci:v00001022d0000790B* + ID_MODEL_FROM_DATABASE=CZ SMBus Controller + pci:v00001022d00009600* ID_MODEL_FROM_DATABASE=RS780 Host Bridge @@ -43791,7 +43842,7 @@ pci:v000014E4d00004720* ID_MODEL_FROM_DATABASE=BCM4712 MIPS CPU pci:v000014E4d00004727* - ID_MODEL_FROM_DATABASE=BCM4313 802.11b/g/n Wireless LAN Controller + ID_MODEL_FROM_DATABASE=BCM4313 802.11bgn Wireless Network Adapter pci:v000014E4d00004727sv00001028sd00000010* ID_MODEL_FROM_DATABASE=Inspiron M5010 / XPS 8300 @@ -49016,6 +49067,9 @@ pci:v000018F7d00000025* pci:v000018F7d00000026* ID_MODEL_FROM_DATABASE=SuperFSCC-LVDS Serial PCI Adapter [Fastcom] +pci:v000018F7d00000027* + ID_MODEL_FROM_DATABASE=FSCC/4 Serial PCIe Adapter [Fastcom] + pci:v000018FB* ID_VENDOR_FROM_DATABASE=Resilience Corporation @@ -50384,6 +50438,21 @@ pci:v00001AE8d00000A44* pci:v00001AE8d00000E44* ID_MODEL_FROM_DATABASE=microEnable IV-GigE x4 +pci:v00001AE9* + ID_VENDOR_FROM_DATABASE=Wilocity Ltd. + +pci:v00001AE9d00000101* + ID_MODEL_FROM_DATABASE=Wil6200 PCI Express Root Port + +pci:v00001AE9d00000200* + ID_MODEL_FROM_DATABASE=Wil6200 PCI Express Port + +pci:v00001AE9d00000201* + ID_MODEL_FROM_DATABASE=Wil6200 Wireless PCI Express Port + +pci:v00001AE9d00000301* + ID_MODEL_FROM_DATABASE=Wil6200 802.11ad Wireless Network Adapter + pci:v00001AEC* ID_VENDOR_FROM_DATABASE=Wolfson Microelectronics @@ -50663,6 +50732,9 @@ pci:v00001BB0* pci:v00001BB0d00000002* ID_MODEL_FROM_DATABASE=OmniCube Accelerator OA-3000 +pci:v00001BB0d00000010* + ID_MODEL_FROM_DATABASE=OmniCube Accelerator OA-3000-2 + pci:v00001BB3* ID_VENDOR_FROM_DATABASE=Bluecherry diff --git a/hwdb/60-keyboard.hwdb b/hwdb/60-keyboard.hwdb new file mode 100644 index 000000000..0ee65d792 --- /dev/null +++ b/hwdb/60-keyboard.hwdb @@ -0,0 +1,1011 @@ +# This file is part of systemd. +# +# Keyboard mapping of scan codes to key codes, and +# scan codes to add to the AT keyboard's 'force-release' list. +# +# The lookup keys are composed in: +# 60-keyboard.rules +# +# Note: The format of the "keyboard:" 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: +# - USB keyboards identified by the usb kernel modalias: +# keyboard:usb:vXXXXpYYYY* +# XXXX is the 4-digit hex uppercase vendor, and YYYY +# the 4-digit hex uppercase product. +# +# - AT keyboard DMI data matches: +# keyboard:dmi:bvn*:bvr*:bd*:svn:pn:pvr* +# and are the firmware-provided strings +# exported by the kernel DMI modalias. +# +# - Platform driver device name and DMI data match: +# keyboard:name::dmi:bvn*:bvr*:bd*:svn:pn* +# is the name device specified by the +# driver, is the firmware-provided string exported +# by the kernel DMI modalias. +# +# Scan codes are specified as: +# KEYBOARD_KEY_= +# The scan code should be expressed in hex lowercase and in +# full bytes, a multiple of 2 digits. The key codes are retrieved +# and normalized from the kernel input API header. +# +# A '!' as the first charcter 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). + +########################################## +# Acer +########################################## + +# Acer platform kernel driver +keyboard:name:Acer WMI hotkeys:dmi:bvn*:bvr*:bd*:svn*:pnAcer*:pvr* + KEYBOARD_KEY_82=f21 + +# Aspire 5720 +keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire 5720*:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnZG8*:pvr* + KEYBOARD_KEY_84=bluetooth # sent when bluetooth module missing, and key pressed + KEYBOARD_KEY_92=media # Acer arcade + KEYBOARD_KEY_d4=bluetooth # Bluetooth on + KEYBOARD_KEY_d9=bluetooth # Bluetooth off + KEYBOARD_KEY_f4=prog3 # e-key + +# Aspire 5920g +keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire 5920G:* + KEYBOARD_KEY_8a=media + KEYBOARD_KEY_92=media + KEYBOARD_KEY_a6=setup + KEYBOARD_KEY_b2=www + KEYBOARD_KEY_d9=bluetooth # (toggle) on-to-off + +# Aspire 6920 +keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire 6920:* + KEYBOARD_KEY_d9=bluetooth # (toggle) on-to-off + KEYBOARD_KEY_92=media + KEYBOARD_KEY_9e=back + KEYBOARD_KEY_83=rewind + KEYBOARD_KEY_89=fastforward + +# Aspire 8930 +keyboard: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_92=media # key 'ARCADE' on CineDash Media Console + KEYBOARD_KEY_9e=back + +# Travelmate C300 +keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*C3[01]0*:pvr* + 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 + +# +keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pn* +keyboard:dmi:bvn*:bvr*:bd*:svnGateway*:pnA0A1*:pvr* + 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_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_f8=fn + KEYBOARD_KEY_f9=f23 # Launch NTI shadow + +# +keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pn*5210*:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pn*5220*:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pn*5610*:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pn*5620*:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pn*5720*:pvr* + KEYBOARD_KEY_ee=screenlock + +# +keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*6292*:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*8471*:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*4720*:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*7720*:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire 1810T*:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnAO751h:* +keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnAO531h:* + KEYBOARD_KEY_d9=bluetooth + +# +keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate*4720*:pvr* + KEYBOARD_KEY_b2=www + KEYBOARD_KEY_ee=screenlock + +# +keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnTravelMate 6593:* +keyboard:dmi:bvn*:bvr*:bd*:svnAcer*:pnAspire 1640:* + KEYBOARD_KEY_b2=www + KEYBOARD_KEY_ee=screenlock" + +########################################################### +# Alienware +########################################################### + +keyboard:dmi:bvn*:bvr*:bd*:svnAlienware*:pn* + KEYBOARD_KEY_8a=ejectcd + +########################################################### +# Asus +########################################################### + +keyboard:dmi:bvn*:bvr*:bd*:svnASUS:* + KEYBOARD_KEY_ed=volumeup + KEYBOARD_KEY_ee=volumedown + KEYBOARD_KEY_ef=mute + +########################################################### +# BenQ +########################################################### + +keyboard:dmi:bvn*:bvr*:bd*:svn*BenQ*:pn*Joybook R22*:pvr* + KEYBOARD_KEY_6e=wlan + +########################################################### +# Compal +########################################################### + +keyboard:dmi:bvn*:bvr*:bd*:svnCOMPAL:pnHEL80I:* + KEYBOARD_KEY_84=wlan + +########################################################### +# COMPAQ +########################################################### + +keyboard:dmi:bvn*:bvr*:bd*:svnCompaq*:pn*E500*:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnCompaq*:pn*Evo N*:pvr* + KEYBOARD_KEY_a3=www # I key + KEYBOARD_KEY_9a=search + KEYBOARD_KEY_9e=email + KEYBOARD_KEY_9f=homepage + +########################################################### +# Dell +########################################################### + +keyboard:dmi:bvn*:bvr*:bd*:svnDell:pvr* + 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=f23 # 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=f23 # 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 + +# +keyboard:dmi:bvn*:bvr*:bd*:svnDell:pnInspiron 910:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnDell:pnInspiron 101[012]:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnDell:pnInspiron 1110:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnDell:pnInspiron 1210:pvr* + KEYBOARD_KEY_84=wlan + +# Latitude XT2 +keyboard:dmi:bvn*:bvr*:bd*:svnDell:pnLatitude XT2:pvr* + 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 + +keyboard:dmi:bvn*:bvr*:bd*:svnDell Inc.:pnStudio 155[78]:pvr* + KEYBOARD_KEY_a0=! # mute + KEYBOARD_KEY_ae=! # volume down + KEYBOARD_KEY_b0=! # volume up + +# Dell Touchpad +keyboard:dmi:bvn*:bvr*:bd*:svnDell Inc.:pn:*Latitude*:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnDell Inc.:pn:*Precision*:pvr* + KEYBOARD_KEY_9e=! + +# Dell XPS +keyboard:dmi:bvn*:bvr*:bd*:svnDell Inc.:pnXPS*:pvr* + KEYBOARD_KEY_8c=! + +########################################################### +# Everex +########################################################### + +keyboard:dmi:bvn*:bvr*:bd*:svnEverex:pnXT5000*:pvr* + 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 +########################################## + +keyboard:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pnAMILO*M*:pvr* + KEYBOARD_KEY_97=prog2 + KEYBOARD_KEY_9f=prog1 + +keyboard:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pnAmilo Li 1718:* + KEYBOARD_KEY_d6=wlan + +# Amilo Li 2732 +keyboard: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 +keyboard:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pn*AMILO Pa 2548*:pvr* + KEYBOARD_KEY_e0=volumedown + KEYBOARD_KEY_e1=volumeup + KEYBOARD_KEY_e5=prog1 + +# Amilo Pro Edition V3505 +keyboard:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pn*AMILO Pro Edition V3505*:pvr* + 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 +keyboard:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pn*AMILO Pro V3205*:pvr* + KEYBOARD_KEY_f4=f21 # FIXME: silent-mode decrease CPU/GPU clock + KEYBOARD_KEY_f7=switchvideomode # Fn+F3 + +# Amilo Si 1520 +keyboard:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pn*Amilo Si 1520*:pvr* + 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 +keyboard:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pn*ESPRIMO Mobile V5*:pvr* + KEYBOARD_KEY_a9=switchvideomode + KEYBOARD_KEY_d9=brightnessdown + KEYBOARD_KEY_df=sleep + KEYBOARD_KEY_ef=brightnessup + +# Esprimo Mobile V6 +keyboard:dmi:bvn*:bvr*:bd*:svnFUJITSU*:pn*ESPRIMO Mobile V6*:pvr* + KEYBOARD_KEY_ce=brightnessup + KEYBOARD_KEY_ef=brightnessdown + +########################################################### +# Genius +########################################################### + +# Slimstar 320 +keyboard:usb:v0458p0708d*dc*dsc*dp*ic*isc*ip*in01* + 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 +########################################################### + +keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*:pvr* + 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=f23 # 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 +keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[tT][aA][bB][lL][eE][tT]*:pvr* + 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 + +# Pavillion +keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[pP][aA][vV][iI][lL][iI][oO][nN]*:pvr* + KEYBOARD_KEY_88=media # FIXME: quick play + KEYBOARD_KEY_d8=!f23 # touchpad off + KEYBOARD_KEY_d9=!f22 # touchpad on + +# Elitebook +keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*Compaq*:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*EliteBook*:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2230s*:pvr* + KEYBOARD_KEY_88=presentation + KEYBOARD_KEY_d9=help # I key (high keycode: "info") + +# Presario +keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*Presario*CQ*:pvr* + KEYBOARD_KEY_d8=f21 + KEYBOARD_KEY_d9=f21 + +# 2510p 2530p +keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2510p*:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*2530p*:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP G60 Notebook PC:pvr* + KEYBOARD_KEY_d8=!f23 # touchpad off + KEYBOARD_KEY_d9=!f22 # touchpad on + +# TX2 +keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pn*[tT][xX]2*:pvr* + 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 +keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnPresario 2100*:pvr* + KEYBOARD_KEY_f0=help + KEYBOARD_KEY_f1=screenlock + KEYBOARD_KEY_f3=search + +# Elitebook 8440p +keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP EliteBook 8440p:pvr* + KEYBOARD_KEY_88=www + KEYBOARD_KEY_a0=mute + KEYBOARD_KEY_ae=volumedown + KEYBOARD_KEY_b0=volumeup + KEYBOARD_KEY_ec=mail + +# Elitebook 8460p +keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHP EliteBook 8460p:pvr* + 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 +keyboard:dmi:bvn*:bvr*:bd*:svnHewlett-Packard*:pnHDX9494NR:pvr* + KEYBOARD_KEY_b2=www # Fn+F3 + KEYBOARD_KEY_d8=!f23 # touchpad off + KEYBOARD_KEY_d9=!f22 # touchpad on + +########################################################### +# IBM +########################################################### + +# thinkpad_acpi driver +keyboard:name:ThinkPad Extra Buttons:dmi:bvn*:bvr*:bd*:svnIBM*:pn*:pvr* + 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 +keyboard:usb:v04B3p301[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 +keyboard:dmi:bvn*:bvr*:bd*:svnINVENTEC:pnSYMPHONY 6.0/7.0:pvr* + KEYBOARD_KEY_f3=prog2 + KEYBOARD_KEY_f4=prog1 + +########################################################### +# Lenovo +########################################################### + +# thinkpad_acpi driver +keyboard: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 + +# +keyboard:name:Ideapad extra buttons:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn* + KEYBOARD_KEY_42=f23 + KEYBOARD_KEY_43=f22 + +# ThinkPad Keyboard with TrackPoint +keyboard:usb:v17EFp6009* + 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 +keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*3000*:pvr* + KEYBOARD_KEY_8b=switchvideomode # Fn+F7 video + KEYBOARD_KEY_96=wlan # Fn+F5 wireless + KEYBOARD_KEY_97=sleep # Fn+F4 suspend + KEYBOARD_KEY_98=suspend # Fn+F12 hibernate + KEYBOARD_KEY_b4=prog1 # Lenovo Care + +# lenovo-ideapad +keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad*:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnS10-*:pvr* + 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 +keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnThinkPad X2* Tablet*:pvr* + 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 +keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pnThinkPad X6*:pvr* + KEYBOARD_KEY_6c=f21 # rotate + KEYBOARD_KEY_68=screenlock # screenlock + 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 + +# IdeaPad +keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad Y550*:pvr* + KEYBOARD_KEY_95=media + KEYBOARD_KEY_a3=play + +# V480 +keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*Lenovo V480*:pvr* + KEYBOARD_KEY_f1=f21 + +# IdeaPad +keyboard:dmi:bvn*:bvr*:bd*:svnLENOVO*:pn*IdeaPad U300s*:pvr* + KEYBOARD_KEY_f1=f21 + KEYBOARD_KEY_ce=f20 + +########################################################### +# Logitech +########################################################### + +# iTouch +keyboard:usb:v046DpC308* + 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 +keyboard:usb:v046DpC50C* + KEYBOARD_KEY_d4=zoomin + KEYBOARD_KEY_cc=zoomout + +# Wave cordless +keyboard:usb:v046DpC317* + KEYBOARD_KEY_9001c=scale # expo + KEYBOARD_KEY_9001f=zoomout + KEYBOARD_KEY_90020=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 +keyboard:usb:v046DpC517* + KEYBOARD_KEY_c101f=zoomout + KEYBOARD_KEY_c1020=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 +keyboard:usb:v046DpC52[9B]* + 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=zoomin + KEYBOARD_KEY_0c022e=zoomout + +########################################################### +# Maxdata +########################################################### + +# Pro 7000 +keyboard:dmi:bvn*:bvr*:bd*:svnMAXDATA:pnPro 7000*:pvr* + 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 +########################################################### + +# FID2060 +keyboard:dmi:bvn*:bvr*:bd*:svnMEDION*:pn*FID2060*:pvr* + KEYBOARD_KEY_6b=channeldown # Thottle Down + KEYBOARD_KEY_6d=channelup # Thottle Up + +# NB-A555 +keyboard:dmi:bvn*:bvr*:bd*:svnMEDIONNB:pnA555*:pvr* + 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 + +########################################################### +# Microsoft +########################################################### + +# Microsoft Natural Ergonomic Keyboard 4000 +keyboard:usb:v045Ep00DB* + KEYBOARD_KEY_c022d=zoomin + KEYBOARD_KEY_c022e=zoomout + +########################################################### +# Micro Star +########################################################### + +keyboard:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pn* +keyboard: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_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 + +# +keyboard:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pnGE60*:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pnGE70*:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnMicro-Star*:pn*:pvr* + KEYBOARD_KEY_c2=ejectcd + +# +keyboard:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pn*U-100*:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pn*U100*:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pn*N033:* + KEYBOARD_KEY_f7=reserved + KEYBOARD_KEY_f8=reserved + +# +keyboard:dmi:bvn*:bvr*:bd*:svnMICRO-STAR*:pnU90/U100:* + KEYBOARD_KEY_e4=reserved + +########################################################### +# MSI +########################################################### + +keyboard:name:MSI Laptop hotkeys:dmi:bvn*:bvr*:bd*:svn*:pnM[iI][cC][rR][oO]-S[tT][aA][rR]*:pvr* + KEYBOARD_KEY_0213=f22 + KEYBOARD_KEY_0214=f23 + +########################################################### +# OLPC +########################################################### + +# XO +keyboard:dmi:bvn*:bvr*:bd*:svnOLPC:pnXO:* + 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_c7=f11 + 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 + 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=switchvideomode # Brightness key + KEYBOARD_KEY_65=kp8 # up + KEYBOARD_KEY_66=kp2 # down + KEYBOARD_KEY_67=kp4 # left + KEYBOARD_KEY_68=kp6 # right + KEYBOARD_KEY_e5=kp9 # pgup + KEYBOARD_KEY_e6=kp3 # pgdn + KEYBOARD_KEY_e7=kp7 # home + KEYBOARD_KEY_e8=kp1 # end + +########################################################### +# Onkyo +########################################################### + +keyboard: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 +keyboard:dmi:bvn*:bvr*:bd*:svnOQO Inc.*:pnOQO Model 2*:pvr* + KEYBOARD_KEY_8e=wlan + KEYBOARD_KEY_f0=switchvideomode + KEYBOARD_KEY_f1=mute + KEYBOARD_KEY_f2=volumedown + KEYBOARD_KEY_f3=volumeup + +########################################################### +# Quanta +########################################################### + +keyboard:dmi:bvn*:bvr*:bd*:svn*:pn*:pvr*:rvnQuanta:rn30B7:rvr65.2B:* + KEYBOARD_KEY_88=media # "quick play + +########################################################### +# Samsung +########################################################### + +keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pvr* + 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_f7=!f22 # Fn+F10 Touchpad on + KEYBOARD_KEY_f9=!f23 # Fn+F10 Touchpad off + +# Series 3 +keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*300E[457]*:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*200E[45]*:pvr* + KEYBOARD_KEY_ce=! # Fn+F1 launch control setting + KEYBOARD_KEY_d5=! # Fn+F12 Wi-Fi toggle + +# Series 9 +keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*90X3A*:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*900X[34]*:pvr* + 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 + +# SQ1US +keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pnSQ1US:pvr* + 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 +keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*SX20S*:pvr* + KEYBOARD_KEY_74=mute + KEYBOARD_KEY_75=mute + KEYBOARD_KEY_77=f22 # Touchpad on + KEYBOARD_KEY_79=f23 # Touchpad off + +keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700Z*:pvr* + KEYBOARD_KEY_ba=ejectcd + KEYBOARD_KEY_96=keyboardbrightnessup + KEYBOARD_KEY_97=keyboardbrightnessdown + +keyboard:dmi:bvn*:bvr*:bd*:svn[sS][aA][mM][sS][uU][nN][gG]*:pn*700T*:pvr* + KEYBOARD_KEY_ad=leftmeta + +########################################################### +# SONY +########################################################### + +# sony-laptop driver +keyboard: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 + +keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*PCG-C1*:pvr* +keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*PCG-K25*:pvr* +keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*PCG-F[1-6]*:pvr* +keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*PCG-FX*:pvr* +keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*PCG-FRV*:pvr* +keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*PCG-GR*:pvr* +keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*PCG-TR*:pvr* +keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*PCG-NV*:pvr* +keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*PCG-Z*:pvr* +keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pn*VGN-S360*:pvr* + KEYBOARD_KEY_06=battery + KEYBOARD_KEY_07=mute + +keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVGN-AR71*:pvr* +keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVGN-FW*:pvr* +keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVGN-Z21*:pvr* + KEYBOARD_KEY_00=brightnessdown # Fn+F5 + KEYBOARD_KEY_10=brightnessup # Fn+F6 + KEYBOARD_KEY_11=switchvideomode # Fn+F7 + KEYBOARD_KEY_12=zoomout + KEYBOARD_KEY_14=zoomin + KEYBOARD_KEY_15=suspend # Fn+F12 + KEYBOARD_KEY_17=prog1 + KEYBOARD_KEY_20=media + +keyboard:name:Sony Vaio Keys:dmi:bvn*:bvr*:bd*:svnSony*:pnVPC*:pvr* + KEYBOARD_KEY_05=f21 # Fn+F1 -> KEY_F21 (The actual touchpad toggle) + KEYBOARD_KEY_0d=zoomout # Fn+F9 + KEYBOARD_KEY_0e=zoomin # Fn+F10 + +########################################################### +# Toshiba +########################################################### + +# Satellite A100 +keyboard:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSATELLITE A100:pvr* + KEYBOARD_KEY_a4=stopcd + KEYBOARD_KEY_b2=www + +# Satellite A110 +keyboard:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite A110:pvr* + 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 +keyboard:dmi:bvn*:bvr*:bd*:svnTOSHIBA*:pnSatellite M30X:pvr* + 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 + +########################################################### +# VIA +########################################################### + +keyboard:dmi:bvn*:bvr*:bd*:svnVIA:pnK8N800:pvr* + KEYBOARD_KEY_81=prog1 + +########################################################### +# Zepto +########################################################### + +# Znote +keyboard: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 +keyboard:dmi:bvn*:bvr*:bd*:svnZepto:pnZnote 6615WD:* + KEYBOARD_KEY_a0=! # mute + KEYBOARD_KEY_ae=! # volume down + KEYBOARD_KEY_b0=! # volume up + +########################################################### +# Other +########################################################### + +# Common Volume Keys +keyboard:dmi:bvn*:bvr*:bd*:svnFUJITSU SIEMENS:pnAMILO*:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnFOXCONN:pnQBOOK:* +keyboard:dmi:bvn*:bvr*:bd*:svnMTC:pn*:pvrA0:* +keyboard:dmi:bvn*:bvr*:bd*:svnMio Technology:pnN890:* +keyboard:dmi:bvn*:bvr*:bd*:svnPEGATRON CORP.:pnSpring Peak:* +keyboard:dmi:bvn*:bvr*:bd*:svnTOSHIBA:pnSatellite [uU]30[05]*:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnTOSHIBA:pnSatellite Pro [uU]300*:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnTOSHIBA:pnSATELLITE [uU]500*:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnViooo Corporation:pnPT17:* +keyboard:dmi:bvn*:bvr*:bd*:svnHANNspree:pnSN10E100:* +keyboard:dmi:bvn*:bvr*:bd*:svnGIGABYTE:pni1520M:* +keyboard:dmi:bvn*:bvr*:bd*:svnBenQ:pn*nScreen*:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnBenQ:pnJoybook Lite*:pvr* +keyboard:dmi:bvn*:bvr*:bd*:svnDIXONSP:pnDIXON*:pvr* + KEYBOARD_KEY_a0=! # mute + KEYBOARD_KEY_ae=! # volume down + KEYBOARD_KEY_b0=! # volume up diff --git a/hwdb/Makefile.am b/hwdb/Makefile.am index 097936f7c..5ced1cb63 100644 --- a/hwdb/Makefile.am +++ b/hwdb/Makefile.am @@ -8,3 +8,8 @@ dist_udevhwdb_DATA = \ 20-pci-vendor-model.hwdb \ 20-usb-classes.hwdb \ 20-usb-vendor-model.hwdb + +if ENABLE_KEYMAP +dist_udevhwdb_DATA += \ + 60-keyboard.hwdb +endif diff --git a/keymaps-force-release/Makefile.am b/keymaps-force-release/Makefile.am deleted file mode 100644 index 9153d095a..000000000 --- a/keymaps-force-release/Makefile.am +++ /dev/null @@ -1,10 +0,0 @@ -ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} - -dist_udevkeymapforcere_DATA = \ - dell-touchpad \ - dell-xps \ - hp-other \ - samsung-other \ - samsung-series-3 \ - samsung-series-9 \ - common-volume-keys diff --git a/keymaps-force-release/common-volume-keys b/keymaps-force-release/common-volume-keys deleted file mode 100644 index e384a3b8f..000000000 --- a/keymaps-force-release/common-volume-keys +++ /dev/null @@ -1,3 +0,0 @@ -0xa0 # mute -0xae # volume down -0xb0 # volume up diff --git a/keymaps-force-release/dell-touchpad b/keymaps-force-release/dell-touchpad deleted file mode 100644 index 18e9bdee6..000000000 --- a/keymaps-force-release/dell-touchpad +++ /dev/null @@ -1 +0,0 @@ -0x9E diff --git a/keymaps-force-release/dell-xps b/keymaps-force-release/dell-xps deleted file mode 100644 index 69f7899ad..000000000 --- a/keymaps-force-release/dell-xps +++ /dev/null @@ -1 +0,0 @@ -0x8C diff --git a/keymaps-force-release/hp-other b/keymaps-force-release/hp-other deleted file mode 100644 index 662137009..000000000 --- a/keymaps-force-release/hp-other +++ /dev/null @@ -1,3 +0,0 @@ -# list of scancodes (hex or decimal), optional comment -0xd8 # Touchpad off -0xd9 # Touchpad on diff --git a/keymaps-force-release/samsung-other b/keymaps-force-release/samsung-other deleted file mode 100644 index e9627af88..000000000 --- a/keymaps-force-release/samsung-other +++ /dev/null @@ -1,10 +0,0 @@ -# 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) -0xF7 # Fn+F10 Touchpad on -0xF9 # Fn+F10 Touchpad off diff --git a/keymaps-force-release/samsung-series-3 b/keymaps-force-release/samsung-series-3 deleted file mode 100644 index 63707508a..000000000 --- a/keymaps-force-release/samsung-series-3 +++ /dev/null @@ -1,2 +0,0 @@ -0xCE # Fn+F1 launch control setting -0xD5 # Fn+F12 Wi-Fi toggle diff --git a/keymaps-force-release/samsung-series-9 b/keymaps-force-release/samsung-series-9 deleted file mode 100644 index fa6a0b1d1..000000000 --- a/keymaps-force-release/samsung-series-9 +++ /dev/null @@ -1,6 +0,0 @@ -# list of scancodes (hex or decimal), optional comment -0xCE # Fn+F8 keyboard backlight up -0x8D # Fn+F7 keyboard backlight down -0x97 # Fn+F12 Wi-Fi toggle -0x96 # Fn+F1 performance mode (?) -0xD5 # Fn+F6 battery life extender diff --git a/keymaps/Makefile.README b/keymaps/Makefile.README deleted file mode 100644 index 18bd33469..000000000 --- a/keymaps/Makefile.README +++ /dev/null @@ -1,3 +0,0 @@ -Because of the parsing done by src/keymap/check-keymaps.sh, -you should not put anything in this directory except for -keymap files and files begining with Makefile. diff --git a/keymaps/Makefile.am b/keymaps/Makefile.am deleted file mode 100644 index 10fcd7274..000000000 --- a/keymaps/Makefile.am +++ /dev/null @@ -1,73 +0,0 @@ -ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} - -KEYMAPS = \ - acer \ - acer-aspire_5720 \ - acer-aspire_8930 \ - acer-aspire_5920g \ - acer-aspire_6920 \ - acer-travelmate_c300 \ - asus \ - compaq-e_evo \ - dell \ - dell-latitude-xt2 \ - everex-xt5000 \ - fujitsu-amilo_li_2732 \ - fujitsu-amilo_pa_2548 \ - fujitsu-amilo_pro_edition_v3505 \ - fujitsu-amilo_pro_v3205 \ - fujitsu-amilo_si_1520 \ - fujitsu-esprimo_mobile_v5 \ - fujitsu-esprimo_mobile_v6 \ - genius-slimstar-320 \ - hewlett-packard \ - hewlett-packard-2510p_2530p \ - hewlett-packard-compaq_elitebook \ - hewlett-packard-pavilion \ - hewlett-packard-presario-2100 \ - hewlett-packard-tablet \ - hewlett-packard-tx2 \ - hewlett-packard_elitebook-8440p \ - hewlett-packard_elitebook-8460p \ - hewlett-packard-hdx9494nr \ - ibm-thinkpad-usb-keyboard-trackpoint \ - inventec-symphony_6.0_7.0 \ - lenovo-3000 \ - lenovo-ideapad \ - lenovo-thinkpad-usb-keyboard-trackpoint \ - lenovo-thinkpad_x6_tablet \ - lenovo-thinkpad_x200_tablet \ - lg-x110 \ - logitech-usb \ - logitech-wave \ - logitech-wave-cordless \ - logitech-wave-pro-cordless \ - maxdata-pro_7000 \ - medion-fid2060 \ - medionnb-a555 \ - micro-star \ - module-asus-w3j \ - module-ibm \ - module-lenovo \ - module-sony \ - module-sony-old \ - module-sony-vgn \ - module-sony-vpc \ - olpc-xo \ - onkyo \ - oqo-model2 \ - samsung-other \ - samsung-series-3 \ - samsung-series-9 \ - samsung-sq1us \ - samsung-sx20s \ - toshiba-satellite_a100 \ - toshiba-satellite_a110 \ - toshiba-satellite_m30x \ - zepto-znote - -dist_udevkeymap_DATA = \ - $(KEYMAPS) - -EXTRA_DIST = \ - $(KEYMAPS) diff --git a/keymaps/acer b/keymaps/acer deleted file mode 100644 index a0c6fd278..000000000 --- a/keymaps/acer +++ /dev/null @@ -1,22 +0,0 @@ -0xA5 help # Fn+F1 -0xA6 setup # Fn+F2 Acer eSettings -0xA7 battery # Fn+F3 Power Management -0xA9 switchvideomode # Fn+F5 -0xB3 euro -0xB4 dollar -0xCE brightnessup # Fn+Right -0xD4 bluetooth # (toggle) off-to-on -0xD5 wlan # (toggle) on-to-off -0xD6 wlan # (toggle) off-to-on -0xD7 bluetooth # (toggle) on-to-off -0xD8 bluetooth # (toggle) off-to-on -0xD9 brightnessup # Fn+Right -0xEE brightnessup # Fn+Right -0xEF brightnessdown # Fn+Left -0xF1 f22 # Fn+F7 Touchpad toggle (off-to-on) -0xF2 f23 # Fn+F7 Touchpad toggle (on-to-off) -0xF3 prog2 # "P2" programmable button -0xF4 prog1 # "P1" programmable button -0xF5 presentation -0xF8 fn -0xF9 f23 # Launch NTI shadow diff --git a/keymaps/acer-aspire_5720 b/keymaps/acer-aspire_5720 deleted file mode 100644 index b9381f86c..000000000 --- a/keymaps/acer-aspire_5720 +++ /dev/null @@ -1,5 +0,0 @@ -0x84 bluetooth # sent when bluetooth module missing, and key pressed -0x92 media # Acer arcade -0xD4 bluetooth # Bluetooth on -0xD9 bluetooth # Bluetooth off -0xF4 prog3 # e-key diff --git a/keymaps/acer-aspire_5920g b/keymaps/acer-aspire_5920g deleted file mode 100644 index 633c4e854..000000000 --- a/keymaps/acer-aspire_5920g +++ /dev/null @@ -1,5 +0,0 @@ -0x8A media -0x92 media -0xA6 setup -0xB2 www -0xD9 bluetooth # (toggle) on-to-off diff --git a/keymaps/acer-aspire_6920 b/keymaps/acer-aspire_6920 deleted file mode 100644 index 699c954b4..000000000 --- a/keymaps/acer-aspire_6920 +++ /dev/null @@ -1,5 +0,0 @@ -0xD9 bluetooth # (toggle) on-to-off -0x92 media -0x9E back -0x83 rewind -0x89 fastforward diff --git a/keymaps/acer-aspire_8930 b/keymaps/acer-aspire_8930 deleted file mode 100644 index 8e36cd947..000000000 --- a/keymaps/acer-aspire_8930 +++ /dev/null @@ -1,5 +0,0 @@ -0xCA prog3 # key 'HOLD' on CineDash Media Console -0x83 rewind -0x89 fastforward -0x92 media # key 'ARCADE' on CineDash Media Console -0x9E back diff --git a/keymaps/acer-travelmate_c300 b/keymaps/acer-travelmate_c300 deleted file mode 100644 index bfef4cf86..000000000 --- a/keymaps/acer-travelmate_c300 +++ /dev/null @@ -1,5 +0,0 @@ -0x67 f24 # FIXME: rotate screen -0x68 up -0x69 down -0x6B fn -0x6C screenlock # FIXME: lock tablet device/buttons diff --git a/keymaps/asus b/keymaps/asus deleted file mode 100644 index 2a5995f98..000000000 --- a/keymaps/asus +++ /dev/null @@ -1,3 +0,0 @@ -0xED volumeup -0xEE volumedown -0xEF mute diff --git a/keymaps/compaq-e_evo b/keymaps/compaq-e_evo deleted file mode 100644 index 5fbc573aa..000000000 --- a/keymaps/compaq-e_evo +++ /dev/null @@ -1,4 +0,0 @@ -0xA3 www # I key -0x9A search -0x9E email -0x9F homepage diff --git a/keymaps/dell b/keymaps/dell deleted file mode 100644 index cef41d3e7..000000000 --- a/keymaps/dell +++ /dev/null @@ -1,29 +0,0 @@ -0x81 playpause # Play/Pause -0x82 stopcd # Stop -0x83 previoussong # Previous song -0x84 nextsong # Next song -0x85 brightnessdown # Fn+Down Brightness Down -0x86 brightnessup # Fn+Up Brightness Up -0x87 battery # Fn+F3 battery icon -0x88 unknown # Fn+F2 Turn On/Off Wireless - handled in hardware -0x89 ejectclosecd # Fn+F10 Eject CD -0x8A suspend # Fn+F1 hibernate -0x8B switchvideomode # Fn+F8 CRT/LCD (high keycode: "displaytoggle") -0x8C f23 # Fn+Right Auto Brightness -0x8F switchvideomode # Fn+F7 aspect ratio -0x90 previoussong # Front panel previous song -0x91 prog1 # Wi-Fi Catcher (Dell-specific) -0x92 media # MediaDirect button (house icon) -0x93 f23 # FIXME Fn+Left Auto Brightness -0x95 camera # Shutter button - Takes a picture if optional camera available -0x97 email # Tablet email button -0x98 f21 # FIXME: Tablet screen rotation -0x99 nextsong # Front panel next song -0x9A setup # Tablet tools button -0x9B switchvideomode # Display toggle button -0x9E f21 # Touchpad toggle -0xA2 playpause # Front panel play/pause -0xA4 stopcd # Front panel stop -0xED media # MediaDirect button -0xD8 screenlock # FIXME: Tablet lock button -0xD9 f21 # Touchpad toggle diff --git a/keymaps/dell-latitude-xt2 b/keymaps/dell-latitude-xt2 deleted file mode 100644 index 59ff6ff26..000000000 --- a/keymaps/dell-latitude-xt2 +++ /dev/null @@ -1,4 +0,0 @@ -0x9B up # tablet rocker up -0x9E enter # tablet rocker press -0x9F back # tablet back -0xA3 down # tablet rocker down diff --git a/keymaps/everex-xt5000 b/keymaps/everex-xt5000 deleted file mode 100644 index bd89a23d3..000000000 --- a/keymaps/everex-xt5000 +++ /dev/null @@ -1,7 +0,0 @@ -0x5C media -0x65 f21 # Fn+F5 Touchpad toggle -0x67 prog3 # Fan speed control button -0x6F brightnessup -0x7F brightnessdown -0xB2 www -0xEC mail diff --git a/keymaps/fujitsu-amilo_li_2732 b/keymaps/fujitsu-amilo_li_2732 deleted file mode 100644 index c9b3198d1..000000000 --- a/keymaps/fujitsu-amilo_li_2732 +++ /dev/null @@ -1,3 +0,0 @@ -0xD9 brightnessdown # Fn+F8 brightness down -0xEF brightnessup # Fn+F9 brightness up -0xA9 switchvideomode # Fn+F10 Cycle between available video outputs diff --git a/keymaps/fujitsu-amilo_pa_2548 b/keymaps/fujitsu-amilo_pa_2548 deleted file mode 100644 index f7b0c5244..000000000 --- a/keymaps/fujitsu-amilo_pa_2548 +++ /dev/null @@ -1,3 +0,0 @@ -0xE0 volumedown -0xE1 volumeup -0xE5 prog1 diff --git a/keymaps/fujitsu-amilo_pro_edition_v3505 b/keymaps/fujitsu-amilo_pro_edition_v3505 deleted file mode 100644 index fd95b000c..000000000 --- a/keymaps/fujitsu-amilo_pro_edition_v3505 +++ /dev/null @@ -1,4 +0,0 @@ -0xA5 help # Fn+F1 -0xA9 switchvideomode # Fn+F3 -0xD9 brightnessdown # Fn+F8 -0xE0 brightnessup # Fn+F9 diff --git a/keymaps/fujitsu-amilo_pro_v3205 b/keymaps/fujitsu-amilo_pro_v3205 deleted file mode 100644 index 8cbf23946..000000000 --- a/keymaps/fujitsu-amilo_pro_v3205 +++ /dev/null @@ -1,2 +0,0 @@ -0xF4 f21 # FIXME: silent-mode decrease CPU/GPU clock -0xF7 switchvideomode # Fn+F3 diff --git a/keymaps/fujitsu-amilo_si_1520 b/keymaps/fujitsu-amilo_si_1520 deleted file mode 100644 index 1419bd9b5..000000000 --- a/keymaps/fujitsu-amilo_si_1520 +++ /dev/null @@ -1,6 +0,0 @@ -0xE1 wlan -0xF3 wlan -0xEE brightnessdown -0xE0 brightnessup -0xE2 bluetooth -0xF7 video diff --git a/keymaps/fujitsu-esprimo_mobile_v5 b/keymaps/fujitsu-esprimo_mobile_v5 deleted file mode 100644 index d3d056b36..000000000 --- a/keymaps/fujitsu-esprimo_mobile_v5 +++ /dev/null @@ -1,4 +0,0 @@ -0xA9 switchvideomode -0xD9 brightnessdown -0xDF sleep -0xEF brightnessup diff --git a/keymaps/fujitsu-esprimo_mobile_v6 b/keymaps/fujitsu-esprimo_mobile_v6 deleted file mode 100644 index 52c70c50c..000000000 --- a/keymaps/fujitsu-esprimo_mobile_v6 +++ /dev/null @@ -1,2 +0,0 @@ -0xCE brightnessup -0xEF brightnessdown diff --git a/keymaps/genius-slimstar-320 b/keymaps/genius-slimstar-320 deleted file mode 100644 index d0a3656dd..000000000 --- a/keymaps/genius-slimstar-320 +++ /dev/null @@ -1,35 +0,0 @@ -# Genius SlimStar 320 -# -# Only buttons which are not properly mapped yet are configured below - -# "Scroll wheel", a circular up/down/left/right button. Aimed for scolling, -# but since there are no scrollleft/scrollright, let's map to back/forward. -0x900f0 scrollup -0x900f1 scrolldown -0x900f3 back -0x900f2 forward - -# Multimedia buttons, left side (from left to right) -# [W] -0x900f5 wordprocessor -# [Ex] -0x900f6 spreadsheet -# [P] -0x900f4 presentation -# Other five (calculator, playpause, stop, mute and eject) are OK - -# Right side, from left to right -# [e] -0xc0223 www -# "man" -0x900f7 chat -# "Y" -0x900fb prog1 -# [X] -0x900f8 close -# "picture" -0x900f9 graphicseditor -# "two windows" -0x900fd scale -# "lock" -0x900fc screenlock diff --git a/keymaps/hewlett-packard b/keymaps/hewlett-packard deleted file mode 100644 index 3f5f5ace6..000000000 --- a/keymaps/hewlett-packard +++ /dev/null @@ -1,12 +0,0 @@ -0x81 fn_esc -0x89 battery # Fn+F8 -0x8A screenlock # Fn+F6 -0x8B camera -0x8C media # music -0x8E dvd -0xB1 help -0xB3 f23 # FIXME: Auto brightness -0xD7 wlan -0x92 brightnessdown # Fn+F7 (Fn+F9 on 6730b) -0x97 brightnessup # Fn+F8 (Fn+F10 on 6730b) -0xEE switchvideomode # Fn+F4 diff --git a/keymaps/hewlett-packard-2510p_2530p b/keymaps/hewlett-packard-2510p_2530p deleted file mode 100644 index 41ad2e9b5..000000000 --- a/keymaps/hewlett-packard-2510p_2530p +++ /dev/null @@ -1,2 +0,0 @@ -0xD8 f23 # touchpad off -0xD9 f22 # touchpad on diff --git a/keymaps/hewlett-packard-compaq_elitebook b/keymaps/hewlett-packard-compaq_elitebook deleted file mode 100644 index 42007c548..000000000 --- a/keymaps/hewlett-packard-compaq_elitebook +++ /dev/null @@ -1,2 +0,0 @@ -0x88 presentation -0xD9 help # I key (high keycode: "info") diff --git a/keymaps/hewlett-packard-hdx9494nr b/keymaps/hewlett-packard-hdx9494nr deleted file mode 100644 index 39e8b4c9f..000000000 --- a/keymaps/hewlett-packard-hdx9494nr +++ /dev/null @@ -1,3 +0,0 @@ -0xB2 www # Fn+F3 -0xD8 f23 # touchpad off -0xD9 f22 # touchpad on diff --git a/keymaps/hewlett-packard-pavilion b/keymaps/hewlett-packard-pavilion deleted file mode 100644 index 60d119110..000000000 --- a/keymaps/hewlett-packard-pavilion +++ /dev/null @@ -1,3 +0,0 @@ -0x88 media # FIXME: quick play -0xD8 f23 # touchpad off -0xD9 f22 # touchpad on diff --git a/keymaps/hewlett-packard-presario-2100 b/keymaps/hewlett-packard-presario-2100 deleted file mode 100644 index 1df39dcbd..000000000 --- a/keymaps/hewlett-packard-presario-2100 +++ /dev/null @@ -1,3 +0,0 @@ -0xF0 help -0xF1 screenlock -0xF3 search diff --git a/keymaps/hewlett-packard-tablet b/keymaps/hewlett-packard-tablet deleted file mode 100644 index d19005ab9..000000000 --- a/keymaps/hewlett-packard-tablet +++ /dev/null @@ -1,6 +0,0 @@ -0x82 prog2 # Funny Key -0x83 prog1 # Q -0x84 tab -0x85 esc -0x86 pageup -0x87 pagedown diff --git a/keymaps/hewlett-packard-tx2 b/keymaps/hewlett-packard-tx2 deleted file mode 100644 index 36a690fcf..000000000 --- a/keymaps/hewlett-packard-tx2 +++ /dev/null @@ -1,3 +0,0 @@ -0xC2 media -0xD8 f23 # Toggle touchpad button on tx2 (OFF) -0xD9 f22 # Toggle touchpad button on tx2 (ON) diff --git a/keymaps/hewlett-packard_elitebook-8440p b/keymaps/hewlett-packard_elitebook-8440p deleted file mode 100644 index e0c2a1a85..000000000 --- a/keymaps/hewlett-packard_elitebook-8440p +++ /dev/null @@ -1,5 +0,0 @@ -0x88 www -0xA0 mute -0xAE volumedown -0xB0 volumeup -0xEC mail diff --git a/keymaps/hewlett-packard_elitebook-8460p b/keymaps/hewlett-packard_elitebook-8460p deleted file mode 100644 index 59035f400..000000000 --- a/keymaps/hewlett-packard_elitebook-8460p +++ /dev/null @@ -1,3 +0,0 @@ -0xF8 wlan # Wireless HW switch button -0xB3 prog1 # Fn+F11 - Ambient Light Sensor button -0xB1 prog2 # Fn+ESC - System information button diff --git a/keymaps/ibm-thinkpad-usb-keyboard-trackpoint b/keymaps/ibm-thinkpad-usb-keyboard-trackpoint deleted file mode 100644 index 027e50bf8..000000000 --- a/keymaps/ibm-thinkpad-usb-keyboard-trackpoint +++ /dev/null @@ -1,7 +0,0 @@ -0x900f0 screenlock -0x900f1 wlan -0x900f2 switchvideomode -0x900f3 suspend -0x900f4 brightnessup -0x900f5 brightnessdown -0x900f8 zoom diff --git a/keymaps/inventec-symphony_6.0_7.0 b/keymaps/inventec-symphony_6.0_7.0 deleted file mode 100644 index 4a8b4ba5a..000000000 --- a/keymaps/inventec-symphony_6.0_7.0 +++ /dev/null @@ -1,2 +0,0 @@ -0xF3 prog2 -0xF4 prog1 diff --git a/keymaps/lenovo-3000 b/keymaps/lenovo-3000 deleted file mode 100644 index 7973369a9..000000000 --- a/keymaps/lenovo-3000 +++ /dev/null @@ -1,5 +0,0 @@ -0x8B switchvideomode # Fn+F7 video -0x96 wlan # Fn+F5 wireless -0x97 sleep # Fn+F4 suspend -0x98 suspend # Fn+F12 hibernate -0xB4 prog1 # Lenovo Care diff --git a/keymaps/lenovo-ideapad b/keymaps/lenovo-ideapad deleted file mode 100644 index 0de16466b..000000000 --- a/keymaps/lenovo-ideapad +++ /dev/null @@ -1,8 +0,0 @@ -# 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 f21 # touchpad toggle (key alternately emits F2 and F3) -0xf3 f21 diff --git a/keymaps/lenovo-thinkpad-usb-keyboard-trackpoint b/keymaps/lenovo-thinkpad-usb-keyboard-trackpoint deleted file mode 100644 index 78701acbc..000000000 --- a/keymaps/lenovo-thinkpad-usb-keyboard-trackpoint +++ /dev/null @@ -1,13 +0,0 @@ -0x90012 screenlock # Fn+F2 -0x90013 battery # Fn+F3 -0x90014 wlan # Fn+F5 -0x90016 switchvideomode # Fn+F7 -0x90017 f21 # Fn+F8 touchpad toggle -0x90019 suspend # Fn+F12 -0x9001A brightnessup # Fn+Home -0x9001B brightnessdown # Fn+End -0x9001D zoom # Fn+Space -0x90011 prog1 # ThinkVantage button - -0x90015 camera # Fn+F6 headset/camera VoIP key ?? -0x90010 f20 # Microphone mute button; should be micmute, but see https://mail.gnome.org/archives/commits-list/2013-January/msg05822.html diff --git a/keymaps/lenovo-thinkpad_x200_tablet b/keymaps/lenovo-thinkpad_x200_tablet deleted file mode 100644 index f22ec65a5..000000000 --- a/keymaps/lenovo-thinkpad_x200_tablet +++ /dev/null @@ -1,6 +0,0 @@ -0x5D menu -0x63 fn -0x66 screenlock -0x67 cyclewindows # bezel circular arrow -0x68 setup # bezel setup / menu -0x6c direction # rotate screen diff --git a/keymaps/lenovo-thinkpad_x6_tablet b/keymaps/lenovo-thinkpad_x6_tablet deleted file mode 100644 index 49c5f64f4..000000000 --- a/keymaps/lenovo-thinkpad_x6_tablet +++ /dev/null @@ -1,8 +0,0 @@ -0x6C f21 # rotate -0x68 screenlock # screenlock -0x6B esc # escape -0x6D right # right on d-pad -0x6E left # left on d-pad -0x71 up # up on d-pad -0x6F down # down on d-pad -0x69 enter # enter on d-pad diff --git a/keymaps/lg-x110 b/keymaps/lg-x110 deleted file mode 100644 index bbc29a13e..000000000 --- a/keymaps/lg-x110 +++ /dev/null @@ -1,12 +0,0 @@ -0xA0 mute # Fn+F9 -0xAE volumedown # Fn+Left -0xAF search # Fn+F3 -0xB0 volumeup # Fn+Right -0xB1 battery # Fn+F10 Info -0xB3 suspend # Fn+F12 -0xDF sleep # Fn+F4 -# 0xE2 bluetooth # satellite dish2 -0xE4 f21 # Fn+F5 Touchpad toggle -0xF6 wlan # Fn+F6 -0xF7 reserved # Fn+Down brightness down -0xF8 reserved # Fn+Up brightness up diff --git a/keymaps/logitech-usb b/keymaps/logitech-usb deleted file mode 100644 index b575aa7c4..000000000 --- a/keymaps/logitech-usb +++ /dev/null @@ -1,6 +0,0 @@ -0x90001 shop # Shopping -0x90002 config # iTouch -0x90003 finance # Finance -0x90004 prog1 # My Sites -0x90005 prog2 # Community -0xC0183 media # Media diff --git a/keymaps/logitech-wave b/keymaps/logitech-wave deleted file mode 100644 index 781dbe26f..000000000 --- a/keymaps/logitech-wave +++ /dev/null @@ -1,16 +0,0 @@ -0x9001C scale # expo -0x9001F zoomout # zoom out -0x90020 zoomin # zoom in -0x9003D prog1 # gadget -0x90005 camera # camera -0x90018 media # media center -0x90041 wordprocessor # Fn+F1 (Word) -0x90042 spreadsheet # Fn+F2 (Excel) -0x90043 calendar # Fn+F3 (calendar) -0x90044 prog2 # Fn+F4 (program a) -0x90045 prog3 # Fn+F5 (program b) -0x90046 prog4 # Fn+F6 (program c) -0x90048 messenger # Fn+F8 (MSN messenger) -0x9002D find # Fn+F10 (search www) -0x9004B search # Fn+F11 (search PC) -0x9004C ejectclosecd # Fn+F12 (eject) diff --git a/keymaps/logitech-wave-cordless b/keymaps/logitech-wave-cordless deleted file mode 100644 index b40c4dbff..000000000 --- a/keymaps/logitech-wave-cordless +++ /dev/null @@ -1,15 +0,0 @@ -0xD4 zoomin -0xCC zoomout -0xC0183 media -0xC1005 camera -0xC101F zoomout -0xC1020 zoomin -0xC1041 wordprocessor -0xC1042 spreadsheet -0xC1043 calendar -0xC1044 prog2 # Fn+F4 (program a) -0xC1045 prog3 # Fn+F5 (program b) -0xC1046 prog4 # Fn+F6 (program c) -0xC1048 messenger -0xC104A find # Fn+F10 (search www) -0xC104C ejectclosecd diff --git a/keymaps/logitech-wave-pro-cordless b/keymaps/logitech-wave-pro-cordless deleted file mode 100644 index e7aa02206..000000000 --- a/keymaps/logitech-wave-pro-cordless +++ /dev/null @@ -1,12 +0,0 @@ -0xC01B6 camera -0xC0183 media -0xC0184 wordprocessor -0xC0186 spreadsheet -0xC018E calendar -0xC0223 homepage -0xC01BC messenger -0xC018A mail -0xC0221 search -0xC00B8 ejectcd -0xC022D zoomin -0xC022E zoomout diff --git a/keymaps/maxdata-pro_7000 b/keymaps/maxdata-pro_7000 deleted file mode 100644 index 0d5bbf3ce..000000000 --- a/keymaps/maxdata-pro_7000 +++ /dev/null @@ -1,9 +0,0 @@ -0x97 prog2 -0x9F prog1 -0xA0 mute # Fn+F5 -0x82 www -0xEC email -0xAE volumedown # Fn+Down -0xB0 volumeup # Fn+Up -0xDF suspend # Fn+F2 -0xF5 help diff --git a/keymaps/medion-fid2060 b/keymaps/medion-fid2060 deleted file mode 100644 index 75b1647e4..000000000 --- a/keymaps/medion-fid2060 +++ /dev/null @@ -1,2 +0,0 @@ -0x6B channeldown # Thottle Down -0x6D channelup # Thottle Up diff --git a/keymaps/medionnb-a555 b/keymaps/medionnb-a555 deleted file mode 100644 index b69618308..000000000 --- a/keymaps/medionnb-a555 +++ /dev/null @@ -1,4 +0,0 @@ -0x63 www # N button -0x66 prog1 # link 1 button -0x67 email # envelope button -0x69 prog2 # link 2 button diff --git a/keymaps/micro-star b/keymaps/micro-star deleted file mode 100644 index c283cde8b..000000000 --- a/keymaps/micro-star +++ /dev/null @@ -1,13 +0,0 @@ -0xA0 mute # Fn+F9 -0xAE volumedown # Fn+F7 -0xB0 volumeup # Fn+F8 -0xB2 www # e button -0xDF sleep # Fn+F12 -0xE2 bluetooth # satellite dish2 -0xE4 f21 # Fn+F3 Touchpad disable -0xEC email # envelope button -0xEE camera # Fn+F6 camera disable -0xF6 wlan # satellite dish1 -0xF7 brightnessdown # Fn+F4 -0xF8 brightnessup # Fn+F5 -0xF9 search diff --git a/keymaps/module-asus-w3j b/keymaps/module-asus-w3j deleted file mode 100644 index 773e0b3e8..000000000 --- a/keymaps/module-asus-w3j +++ /dev/null @@ -1,11 +0,0 @@ -0x41 nextsong -0x45 playpause -0x43 stopcd -0x40 previoussong -0x4C ejectclosecd -0x32 mute -0x31 volumedown -0x30 volumeup -0x5D wlan -0x7E bluetooth -0x8A media # high keycode: "tv" diff --git a/keymaps/module-ibm b/keymaps/module-ibm deleted file mode 100644 index ee61b6cf3..000000000 --- a/keymaps/module-ibm +++ /dev/null @@ -1,16 +0,0 @@ -0x01 battery # Fn+F2 -0x02 screenlock # Fn+F3 -0x03 sleep # Fn+F4 -0x04 wlan # Fn+F5 -0x06 switchvideomode # Fn+F7 -0x07 zoom # Fn+F8 screen expand -0x08 f24 # Fn+F9 undock -0x0B suspend # Fn+F12 -0x0F brightnessup # Fn+Home -0x10 brightnessdown # Fn+End -0x11 kbdillumtoggle # Fn+PgUp - ThinkLight -0x13 zoom # Fn+Space -0x14 volumeup -0x15 volumedown -0x16 mute -0x17 prog1 # ThinkPad/ThinkVantage button (high keycode: "vendor") diff --git a/keymaps/module-lenovo b/keymaps/module-lenovo deleted file mode 100644 index ed31899d0..000000000 --- a/keymaps/module-lenovo +++ /dev/null @@ -1,17 +0,0 @@ -0x1 screenlock # Fn+F2 -0x2 battery # Fn+F3 -0x3 sleep # Fn+F4 -0x4 wlan # Fn+F5 -0x6 switchvideomode # Fn+F7 -0x7 f21 # Fn+F8 touchpadtoggle -0x8 f24 # Fn+F9 undock -0xB suspend # Fn+F12 -0xF brightnessup # Fn+Home -0x10 brightnessdown # Fn+End -0x11 kbdillumtoggle # Fn+PgUp - ThinkLight -0x13 zoom # Fn+Space -0x14 volumeup -0x15 volumedown -0x16 mute -0x17 prog1 # ThinkPad/ThinkVantage button (high keycode: "vendor") -0x1A f20 # Microphone mute button; should be micmute, but see https://mail.gnome.org/archives/commits-list/2013-January/msg05822.html diff --git a/keymaps/module-sony b/keymaps/module-sony deleted file mode 100644 index 5d3742b46..000000000 --- a/keymaps/module-sony +++ /dev/null @@ -1,8 +0,0 @@ -0x06 mute # Fn+F2 -0x07 volumedown # Fn+F3 -0x08 volumeup # Fn+F4 -0x09 brightnessdown # Fn+F5 -0x0A brightnessup # Fn+F6 -0x0B switchvideomode # Fn+F7 -0x0E zoom # Fn+F10 -0x10 suspend # Fn+F12 diff --git a/keymaps/module-sony-old b/keymaps/module-sony-old deleted file mode 100644 index 596a34258..000000000 --- a/keymaps/module-sony-old +++ /dev/null @@ -1,2 +0,0 @@ -0x06 battery -0x07 mute diff --git a/keymaps/module-sony-vgn b/keymaps/module-sony-vgn deleted file mode 100644 index cb4ce3371..000000000 --- a/keymaps/module-sony-vgn +++ /dev/null @@ -1,8 +0,0 @@ -0x00 brightnessdown # Fn+F5 -0x10 brightnessup # Fn+F6 -0x11 switchvideomode # Fn+F7 -0x12 zoomout -0x14 zoomin -0x15 suspend # Fn+F12 -0x17 prog1 -0x20 media diff --git a/keymaps/module-sony-vpc b/keymaps/module-sony-vpc deleted file mode 100644 index 1b5277953..000000000 --- a/keymaps/module-sony-vpc +++ /dev/null @@ -1,4 +0,0 @@ -# 0x05 touchpad_toggle # fn_f1 -> KEY_TOUCHPAD_TOGGLE -0x05 f21 # fn_f1 -> KEY_F21 (The actual touchpad toggle) -0x0d zoomout # fn_f9 -0x0e zoomin # fn_f10 diff --git a/keymaps/olpc-xo b/keymaps/olpc-xo deleted file mode 100644 index 0fa497211..000000000 --- a/keymaps/olpc-xo +++ /dev/null @@ -1,74 +0,0 @@ -0x59 fn -0x81 fn_esc -0xF9 camera -0xF8 sound # Fn+CAMERA = Mic - - -# Function key mappings, as per -# http://dev.laptop.org/ticket/10213#comment:20 -# -# Unmodified F1-F8 produce F1-F8, so no remap necessary. -# Unmodified F9-F12 control brightness and volume. -0x43 brightnessdown -0x44 brightnessup -0x57 volumedown -0x58 volumeup - -# Fn-modified fkeys all produce the unmodified version of the key. -0xBB f1 -0xBC f2 -0xBD f3 -0xBE f4 -0xBF f5 -0xC0 f6 -0xC1 f7 -0xC2 f8 -0xC3 f9 -0xC4 f10 -0xD7 f11 -0xD8 f12 - - -# Using F13-F21 for the .5 F keys right now. -0xF7 f13 -0xF6 f14 -0xF5 f15 -0xF4 f16 -0xF3 f17 -0xF2 f18 -0xF1 f19 -0xF0 f20 -0xEF f21 - -0xEE chat -0xE4 chat # Just mapping Fn+Chat to Chat for now -0xDD menu # Frame -0xDA prog1 # Fn+Frame - -# The Fn of some keys is other keys -0xD3 delete -0xD2 insert -0xC9 pageup -0xD1 pagedown -0xC7 home -0xCF end - -# Language key - don't ask what they are doing as KEY_HP -0x73 hp -0x7E hp - -0xDB leftmeta # left grab -0xDC rightmeta # right grab -0x85 rightmeta # Right grab releases on a different scancode -0xD6 kbdillumtoggle # Fn+Space -0x69 switchvideomode # Brightness key - -# Game keys -0x65 kp8 # up -0x66 kp2 # down -0x67 kp4 # left -0x68 kp6 # right -0xE5 kp9 # pgup -0xE6 kp3 # pgdn -0xE7 kp7 # home -0xE8 kp1 # end diff --git a/keymaps/onkyo b/keymaps/onkyo deleted file mode 100644 index 8fc4cffa9..000000000 --- a/keymaps/onkyo +++ /dev/null @@ -1,14 +0,0 @@ -0xA0 mute # Fn+D -0xAE volumedown # Fn+F -0xB0 volumeup # Fn+G -0xDF sleep # Fn+W -0xE0 bluetooth # Fn+H -0xE2 cyclewindows # Fn+Esc -0xEE battery # Fn+Q -0xF0 media # Fn+R -0xF5 switchvideomode # Fn+E -0xF6 camera # Fn+T -0xF7 f21 # Fn+Y (touchpad toggle) -0xF8 brightnessup # Fn+S -0xF9 brightnessdown # Fn+A -0xFB wlan # Fn+J diff --git a/keymaps/oqo-model2 b/keymaps/oqo-model2 deleted file mode 100644 index b7f4851ab..000000000 --- a/keymaps/oqo-model2 +++ /dev/null @@ -1,5 +0,0 @@ -0x8E wlan -0xF0 switchvideomode -0xF1 mute -0xF2 volumedown -0xF3 volumeup diff --git a/keymaps/samsung-other b/keymaps/samsung-other deleted file mode 100644 index d950c2cbd..000000000 --- a/keymaps/samsung-other +++ /dev/null @@ -1,14 +0,0 @@ -0x74 prog1 # User key -0x75 www -0x78 mail -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 run Samsung Magic Doctor (keypressed event is generated twice) -0xB3 prog3 # Fn+F8 switch power mode (battery/dynamic/performance) -0xB4 wlan # Fn+F9 (X60P) -0xF7 f22 # Fn+F10 Touchpad on -0xF9 f23 # Fn+F10 Touchpad off diff --git a/keymaps/samsung-series-3 b/keymaps/samsung-series-3 deleted file mode 100644 index 303a428b4..000000000 --- a/keymaps/samsung-series-3 +++ /dev/null @@ -1,3 +0,0 @@ -0xCE prog1 # Fn+F1 launch control setting -0xB3 prog2 # Fn+F11 performance mode -0xD5 wlan # Fn+F12 Wi-Fi toggle diff --git a/keymaps/samsung-series-9 b/keymaps/samsung-series-9 deleted file mode 100644 index c0712f02a..000000000 --- a/keymaps/samsung-series-9 +++ /dev/null @@ -1,5 +0,0 @@ -0x96 kbdillumup # Fn+F8 keyboard backlight up -0x97 kbdillumdown # Fn+F7 keyboard backlight down -0xD5 wlan # Fn+F12 Wi-Fi toggle -0xCE prog1 # Fn+F1 performance mode -0x8D prog2 # Fn+F6 battery life extender diff --git a/keymaps/samsung-sq1us b/keymaps/samsung-sq1us deleted file mode 100644 index ea2141ef8..000000000 --- a/keymaps/samsung-sq1us +++ /dev/null @@ -1,7 +0,0 @@ -0xD4 menu -0xD8 f1 -0xD9 f10 -0xD6 f3 -0xD7 f9 -0xE4 f5 -0xEE f11 diff --git a/keymaps/samsung-sx20s b/keymaps/samsung-sx20s deleted file mode 100644 index 9d954ee41..000000000 --- a/keymaps/samsung-sx20s +++ /dev/null @@ -1,4 +0,0 @@ -0x74 mute -0x75 mute -0x77 f22 # Touchpad on -0x79 f23 # Touchpad off diff --git a/keymaps/toshiba-satellite_a100 b/keymaps/toshiba-satellite_a100 deleted file mode 100644 index 22007be71..000000000 --- a/keymaps/toshiba-satellite_a100 +++ /dev/null @@ -1,2 +0,0 @@ -0xA4 stopcd -0xB2 www diff --git a/keymaps/toshiba-satellite_a110 b/keymaps/toshiba-satellite_a110 deleted file mode 100644 index 142940935..000000000 --- a/keymaps/toshiba-satellite_a110 +++ /dev/null @@ -1,10 +0,0 @@ -0x92 stop -0x93 www -0x94 media -0x9E f22 # Touchpad on -0x9F f23 # Touchpad off -0xB9 nextsong -0xD9 brightnessup -0xEE screenlock -0xF4 previoussong -0xF7 playpause diff --git a/keymaps/toshiba-satellite_m30x b/keymaps/toshiba-satellite_m30x deleted file mode 100644 index 26e0bbd93..000000000 --- a/keymaps/toshiba-satellite_m30x +++ /dev/null @@ -1,6 +0,0 @@ -0xef brightnessdown -0xd9 brightnessup -0xee screenlock -0x93 media -0x9e f22 # touchpad enable -0x9f f23 # touchpad disable diff --git a/keymaps/zepto-znote b/keymaps/zepto-znote deleted file mode 100644 index cf72fda47..000000000 --- a/keymaps/zepto-znote +++ /dev/null @@ -1,11 +0,0 @@ -0x93 switchvideomode # Fn+F3 Toggle Video Output -0x95 brightnessdown # Fn+F4 Brightness Down -0x91 brightnessup # Fn+F5 Brightness Up -0xA5 f23 # Fn+F6 Disable Touchpad -0xA6 f22 # Fn+F6 Enable Touchpad -0xA7 bluetooth # Fn+F10 Enable Bluetooth -0XA9 bluetooth # Fn+F10 Disable Bluetooth -0xF1 wlan # RF Switch Off -0xF2 wlan # RF Switch On -0xF4 prog1 # P1 Button -0xF3 prog2 # P2 Button diff --git a/rules/60-keyboard.rules b/rules/60-keyboard.rules new file mode 100644 index 000000000..4e0f3663f --- /dev/null +++ b/rules/60-keyboard.rules @@ -0,0 +1,22 @@ +# do not edit this file, it will be overwritten on update + +ACTION!="add", GOTO="keyboard_end" +KERNEL!="event*", GOTO="keyboard_end" +ENV{ID_INPUT_KEY}=="", GOTO="keyboard_end" + +# ignore all bluetooth devices +SUBSYSTEMS=="bluetooth", GOTO="keyboard_end" + +# import key mapping for USB device +SUBSYSTEMS=="usb", IMPORT{builtin}="hwdb --subsystem=usb --lookup-prefix=keyboard:", \ + RUN{builtin}+="keyboard", GOTO="keyboard_end" + +# import key mapping for AT keyboard from DMI data +DRIVERS=="atkbd", IMPORT{builtin}="hwdb 'keyboard:$attr{[dmi/id]modalias}'", \ + RUN{builtin}+="keyboard", GOTO="keyboard_end" + +# import key mapping for platform input device +KERNELS=="input*", IMPORT{builtin}="hwdb 'keyboard:name:$attr{name}:$attr{[dmi/id]modalias}'", \ + RUN{builtin}+="keyboard", GOTO="keyboard_end" + +LABEL="keyboard_end" diff --git a/rules/Makefile.am b/rules/Makefile.am index c3f2aa828..abc290111 100644 --- a/rules/Makefile.am +++ b/rules/Makefile.am @@ -39,8 +39,7 @@ endif if ENABLE_KEYMAP dist_udevrules_DATA += \ - 95-keymap.rules \ - 95-keyboard-force-release.rules + 60-keyboard.rules endif install-data-local: diff --git a/src/Makefile.am b/src/Makefile.am index dcf5b5433..d6079f051 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -18,8 +18,3 @@ if ENABLE_GUDEV SUBDIRS += \ gudev endif - -if ENABLE_KEYMAP -SUBDIRS += \ - keymap -endif diff --git a/src/keymap/Makefile.am b/src/keymap/Makefile.am deleted file mode 100644 index dcc29e9b6..000000000 --- a/src/keymap/Makefile.am +++ /dev/null @@ -1,58 +0,0 @@ -ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} - -AM_CPPFLAGS = \ - -I $(top_srcdir)/src/libudev \ - -I $(top_srcdir)/src/udev \ - -DUDEV_LIBEXEC_DIR=\"$(udevlibexecdir)\" - -udevlibexec_PROGRAMS = \ - keymap - -keymap_SOURCES = \ - keymap.c - -keymap_CPPFLAGS = \ - $(AM_CPPFLAGS) - -keymap_LDADD = \ - $(top_builddir)/src/udev/libudev-core.la - -nodist_keymap_SOURCES = \ - keys-from-name.h \ - keys-to-name.h - -BUILT_SOURCES = \ - $(nodist_keymap_SOURCES) - -dist_doc_DATA = \ - README.keymap.txt - -dist_udevlibexec_SCRIPTS = \ - findkeyboards \ - keyboard-force-release.sh - -TESTS = \ - check-keymaps.sh - -CLEANFILES = \ - keys.txt \ - keys-from-name.gperf \ - keyboard-force-release.sh \ - $(BUILT_SOURCES) - -EXTRA_DIST = \ - check-keymaps.sh \ - keyboard-force-release.sh.in - -keys.txt: Makefile - $(AM_V_at)$(MKDIR_P) $(dir $@) - $(AM_V_GEN)$(CPP) $(CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) -dM -include linux/input.h - < /dev/null | $(AWK) '/^#define[ \t]+KEY_[^ ]+[ \t]+[0-9]/ { if ($$2 != "KEY_MAX") { print $$2 } }' | sed 's/^KEY_COFFEE$$/KEY_SCREENLOCK/' > $@ - -keys-from-name.gperf: keys.txt Makefile - $(AM_V_GEN)$(AWK) 'BEGIN{ print "struct key { const char* name; unsigned short id; };"; print "%null-strings"; print "%%";} { print $$1 ", " $$1 }' < $< > $@ - -keys-from-name.h: keys-from-name.gperf Makefile - $(AM_V_GEN)$(GPERF) -L ANSI-C -t --ignore-case -N lookup_key -H hash_key_name -p -C < $< > $@ - -keys-to-name.h: keys.txt Makefile - $(AM_V_GEN)$(AWK) 'BEGIN{ print "const char* const key_names[KEY_CNT] = { "} { print "[" $$1 "] = \"" $$1 "\"," } END{print "};"}' < $< > $@ diff --git a/src/keymap/README.keymap.txt b/src/keymap/README.keymap.txt deleted file mode 100644 index 2cf2a4e88..000000000 --- a/src/keymap/README.keymap.txt +++ /dev/null @@ -1,97 +0,0 @@ -= The udev keymap tool = - -== Introduction == - -This udev extension configures computer model specific key mappings. This is -particularly necessary for the non-standard extra keys found on many laptops, -such as "brightness up", "next song", "www browser", or "suspend". Often these -are accessed with the Fn key. - -Every key produces a "scan code", which is highly vendor/model specific for the -nonstandard keys. This tool maintains mappings for these scan codes to standard -"key codes", which denote the "meaning" of the key. The key codes are defined -in /usr/include/linux/input.h. - -If some of your keys on your keyboard are not working at all, or produce the -wrong effect, then a very likely cause of this is that the scan code -> key -code mapping is incorrect on your computer. - -== Structure == - -udev-keymap consists of the following parts: - - keymaps/*:: mappings of scan codes to key code names - - 95-keymap.rules:: udev rules for mapping system vendor/product names and - input module names to one of the keymaps above - - keymap:: manipulate an evdev input device: - * write a key map file into a device (used by udev rules) - * dump current scan → key code mapping - * interactively display scan and key codes of pressed keys - - findkeyboards:: display evdev input devices which belong to actual keyboards, - i. e. those suitable for the keymap program - -== Fixing broken keys == - -In order to make a broken key work on your system and send it back to upstream -for inclusion you need to do the following steps: - - 1. Find the keyboard device. - - Run /usr/lib/udev/findkeyboards. This should always give you an "AT - keyboard" and possibly a "module". Some laptops (notably Thinkpads, Sonys, and - Acers) have multimedia/function keys on a separate input device instead of the - primary keyboard. The keyboard device should have a name like "input/event3". - In the following commands, the name will be written as "input/eventX" (replace - X with the appropriate number). - - 2. Find broken scan codes: - - sudo /usr/lib/udev/keymap -i input/eventX - - Press all multimedia/function keys and check if the key name that gets printed - out is plausible. If it is unknown or wrong, write down the scan code (looks - like "0x1E") and the intended functionality of this key. Look in - /usr/include/linux/input.h for an available KEY_XXXXX constant which most - closely approximates this functionality and write it down as the new key code. - - For example, you might press a key labeled "web browser" which currently - produces "unknown". Note down this: - - 0x1E www # Fn+F2 web browser - - Repeat that for all other keys. Write the resulting list into a file. Look at - /usr/lib/udev/keymaps/ for existing key map files and make sure that you use the - same structure. - - If the key only ever works once and then your keyboard (or the entire desktop) - gets stuck for a long time, then it is likely that the BIOS fails to send a - corresponding "key release" event after the key press event. Please note down - this case as well, as it can be worked around in - /usr/lib/udev/keymaps/95-keyboard-force-release.rules . - - 3. Find out your system vendor and product: - - cat /sys/class/dmi/id/sys_vendor - cat /sys/class/dmi/id/product_name - - 4. Generate a device dump with "udevadm info --export-db > /tmp/udev-db.txt". - - 6. Send the system vendor/product names, the key mapping from step 2, - and /tmp/udev-db.txt from step 4 to the linux-hotplug@vger.kernel.org mailing - list, so that they can be included in the next release. - -For local testing, copy your map file to /usr/lib/udev/keymaps/ with an appropriate -name, and add an appropriate udev rule to /usr/lib/udev/rules.d/95-keymap.rules: - - * If you selected an "AT keyboard", add the rule to the section after - 'LABEL="keyboard_vendorcheck"'. - - * If you selected a "module", add the rule to the top section where the - "ThinkPad Extra Buttons" are. - -== Author == - -keymap is written and maintained by Martin Pitt . diff --git a/src/keymap/check-keymaps.sh.in b/src/keymap/check-keymaps.sh.in deleted file mode 100644 index a62b48d4d..000000000 --- a/src/keymap/check-keymaps.sh.in +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/bash - -# check that all key names in keymaps/* are known in -# and that all key maps listed in the rules are valid and present in -# Makefile.am - -top_srcdir=@top_srcdir@ -top_builddir=@top_builddir@ - -SRCDIR=${1:-${top_srcdir}} -BUILDDIR=${1:-${top_builddir}} -KEYLIST=${2:-${BUILDDIR}/src/keymap/keys.txt} - -KEYMAPS_DIR=${SRCDIR}/keymaps -KEYMAPS_LIST=$(ls ${KEYMAPS_DIR}/* | grep -v Makefile) -RULES=${SRCDIR}/rules/95-keymap.rules - -[ -e "$KEYLIST" ] || { - echo "need $KEYLIST please build first" >&2 - exit 1 -} - -missing=$(join -v 2 <(awk '{print tolower(substr($1,5))}' $KEYLIST | sort -u) \ - <(grep -hv '^#' ${KEYMAPS_LIST}| awk '{print $2}' | sort -u)) -[ -z "$missing" ] || { - echo "ERROR: unknown key names in keymaps/*:" >&2 - echo "$missing" >&2 - exit 1 -} - -# check that all maps referred to in $RULES exist -maps=$(sed -rn '/keymap \$name/ { s/^.*\$name ([^"[:space:]]+).*$/\1/; p }' $RULES) -for m in $maps; do - # ignore inline mappings - [ "$m" = "${m#0x}" ] || continue - - [ -e ${KEYMAPS_DIR}/$m ] || { - echo "ERROR: unknown map name in $RULES: $m" >&2 - exit 1 - } - grep -q "$m\>" ${SRCDIR}/keymaps/Makefile.am || { - echo "ERROR: map file $m is not added to Makefile.am" >&2 - exit 1 - } -done diff --git a/src/keymap/findkeyboards b/src/keymap/findkeyboards deleted file mode 100755 index c6b50d12d..000000000 --- a/src/keymap/findkeyboards +++ /dev/null @@ -1,68 +0,0 @@ -#!/bin/sh -e -# Find "real" keyboard devices and print their device path. -# Author: Martin Pitt -# -# Copyright (C) 2009, Canonical Ltd. -# -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. - -# returns OK if $1 contains $2 -strstr() { - [ "${1#*$2*}" != "$1" ] -} - -# returns OK if $1 contains $2 at the beginning -str_starts() { - [ "${1#$2*}" != "$1" ] -} - -str_line_starts() { - 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 - 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 - walk=`udevadm info --attribute-walk --path=$dev` - 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 diff --git a/src/keymap/keyboard-force-release.sh.in b/src/keymap/keyboard-force-release.sh.in deleted file mode 100644 index b82674840..000000000 --- a/src/keymap/keyboard-force-release.sh.in +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -e -# read list of scancodes, convert hex to decimal and -# append to the atkbd force_release sysfs attribute -# $1 sysfs devpath for serioX -# $2 file with scancode list (hex or dec) - -case "$2" in - /*) scf="$2" ;; - *) scf="@udevlibexecdir@/keymaps/force-release/$2" ;; -esac - -read attr <"/sys/$1/force_release" -while read scancode dummy; do - case "$scancode" in - \#*) ;; - *) - scancode=$(($scancode)) - attr="$attr${attr:+,}$scancode" - ;; - esac -done <"$scf" -echo "$attr" >"/sys/$1/force_release" diff --git a/src/keymap/keymap.c b/src/keymap/keymap.c deleted file mode 100644 index 793c53429..000000000 --- a/src/keymap/keymap.c +++ /dev/null @@ -1,453 +0,0 @@ -/* - * keymap - dump keymap of an evdev device or set a new keymap from a file - * - * Based on keyfuzz by Lennart Poettering - * Adapted for udev-extras by Martin Pitt - * - * Copyright (C) 2006, Lennart Poettering - * Copyright (C) 2009, Canonical Ltd. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -static const struct key* lookup_key (const char *str, unsigned int len); - -#include "keys-from-name.h" -#include "keys-to-name.h" -#include "macro.h" -#include "util.h" - -#define MAX_SCANCODES 1024 - -static int evdev_open(const char *dev) -{ - int fd; - char fn[PATH_MAX]; - - if (!startswith(dev, "/dev")) { - snprintf(fn, sizeof(fn), "/dev/%s", dev); - dev = fn; - } - - if ((fd = open(dev, O_RDWR)) < 0) { - fprintf(stderr, "error open('%s'): %m\n", dev); - return -1; - } - return fd; -} - -static int evdev_get_keycode(int fd, unsigned scancode, int e) -{ - unsigned codes[2]; - - codes[0] = scancode; - if (ioctl(fd, EVIOCGKEYCODE, codes) < 0) { - if (e && errno == EINVAL) { - return -2; - } else { - fprintf(stderr, "EVIOCGKEYCODE for scan code 0x%x: %m\n", scancode); - return -1; - } - } - return codes[1]; -} - -static int evdev_set_keycode(int fd, unsigned scancode, int keycode) -{ - unsigned codes[2]; - - codes[0] = scancode; - codes[1] = (unsigned) keycode; - - if (ioctl(fd, EVIOCSKEYCODE, codes) < 0) { - fprintf(stderr, "EVIOCSKEYCODE: %m\n"); - return -1; - } - return 0; -} - -static int evdev_driver_version(int fd, char *v, size_t l) -{ - int version; - - if (ioctl(fd, EVIOCGVERSION, &version)) { - fprintf(stderr, "EVIOCGVERSION: %m\n"); - return -1; - } - - snprintf(v, l, "%i.%i.%i.", version >> 16, (version >> 8) & 0xff, version & 0xff); - return 0; -} - -static int evdev_device_name(int fd, char *n, size_t l) -{ - if (ioctl(fd, EVIOCGNAME(l), n) < 0) { - fprintf(stderr, "EVIOCGNAME: %m\n"); - return -1; - } - return 0; -} - -/* Return a lower-case string with KEY_ prefix removed */ -static const char* format_keyname(const char* key) { - static char result[101]; - const char* s; - int len; - - for (s = key+4, len = 0; *s && len < 100; ++len, ++s) - result[len] = tolower(*s); - result[len] = '\0'; - return result; -} - -static int dump_table(int fd) { - char version[256], name[256]; - unsigned scancode; - int r = -1; - - if (evdev_driver_version(fd, version, sizeof(version)) < 0) - goto fail; - - if (evdev_device_name(fd, name, sizeof(name)) < 0) - goto fail; - - printf("### evdev %s, driver '%s'\n", version, name); - - r = 0; - for (scancode = 0; scancode < MAX_SCANCODES; scancode++) { - int keycode; - - if ((keycode = evdev_get_keycode(fd, scancode, 1)) < 0) { - if (keycode == -2) - continue; - r = -1; - break; - } - - if (keycode < KEY_MAX && key_names[keycode]) - printf("0x%03x %s\n", scancode, format_keyname(key_names[keycode])); - else - printf("0x%03x 0x%03x\n", scancode, keycode); - } -fail: - return r; -} - -static void set_key(int fd, const char* scancode_str, const char* keyname) -{ - unsigned scancode; - char *endptr; - char t[105] = "KEY_UNKNOWN"; - const struct key *k; - - scancode = (unsigned) strtol(scancode_str, &endptr, 0); - if (*endptr != '\0') { - fprintf(stderr, "ERROR: Invalid scancode\n"); - exit(1); - } - - snprintf(t, sizeof(t), "KEY_%s", keyname); - - if (!(k = lookup_key(t, strlen(t)))) { - fprintf(stderr, "ERROR: Unknown key name '%s'\n", keyname); - exit(1); - } - - if (evdev_set_keycode(fd, scancode, k->id) < 0) - fprintf(stderr, "setting scancode 0x%2X to key code %i failed\n", - scancode, k->id); - else - printf("setting scancode 0x%2X to key code %i\n", - scancode, k->id); -} - -static int merge_table(int fd, FILE *f) { - int r = 0; - int line = 0; - - while (!feof(f)) { - char s[256], *p; - unsigned scancode; - int new_keycode, old_keycode; - - if (!fgets(s, sizeof(s), f)) - break; - - line++; - p = s+strspn(s, "\t "); - if (*p == '#' || *p == '\n') - continue; - - if (sscanf(p, "%i %i", &scancode, &new_keycode) != 2) { - char t[105] = "KEY_UNKNOWN"; - const struct key *k; - - if (sscanf(p, "%i %100s", &scancode, t+4) != 2) { - fprintf(stderr, "WARNING: Parse failure at line %i, ignoring.\n", line); - r = -1; - continue; - } - - if (!(k = lookup_key(t, strlen(t)))) { - fprintf(stderr, "WARNING: Unknown key '%s' at line %i, ignoring.\n", t, line); - r = -1; - continue; - } - - new_keycode = k->id; - } - - - if ((old_keycode = evdev_get_keycode(fd, scancode, 0)) < 0) { - r = -1; - continue; - } - - if (evdev_set_keycode(fd, scancode, new_keycode) < 0) { - r = -1; - continue; - } - - if (new_keycode != old_keycode) - fprintf(stderr, "Remapped scancode 0x%02x to 0x%02x (prior: 0x%02x)\n", - scancode, new_keycode, old_keycode); - } - - fclose(f); - return r; -} - - -/* read one event; return 1 if valid */ -static int read_event(int fd, struct input_event* ev) -{ - int ret; - ret = read(fd, ev, sizeof(struct input_event)); - - if (ret < 0) { - perror("read"); - return 0; - } - if (ret != sizeof(struct input_event)) { - fprintf(stderr, "did not get enough data for event struct, aborting\n"); - return 0; - } - - return 1; -} - -static void print_key(unsigned scancode, uint16_t keycode, int has_scan, int has_key) -{ - const char *keyname; - - /* ignore key release events */ - if (has_key == 1) - return; - - if (has_key == 0 && has_scan != 0) { - fprintf(stderr, "got scan code event 0x%02X without a key code event\n", - scancode); - return; - } - - if (has_scan != 0) - printf("scan code: 0x%02X ", scancode); - else - printf("(no scan code received) "); - - keyname = key_names[keycode]; - if (keyname != NULL) - printf("key code: %s\n", format_keyname(keyname)); - else - printf("key code: %03X\n", keycode); -} - -static void interactive(int fd) -{ - struct input_event ev; - unsigned last_scan = 0; - uint16_t last_key = 0; - int has_scan; /* boolean */ - int has_key; /* 0: none, 1: release, 2: press */ - - /* grab input device */ - ioctl(fd, EVIOCGRAB, 1); - puts("Press ESC to finish, or Control-C if this device is not your primary keyboard"); - - has_scan = has_key = 0; - while (read_event(fd, &ev)) { - /* Drivers usually send the scan code first, then the key code, - * then a SYN. Some drivers (like thinkpad_acpi) send the key - * code first, and some drivers might not send SYN events, so - * keep a robust state machine which can deal with any of those - */ - - if (ev.type == EV_MSC && ev.code == MSC_SCAN) { - if (has_scan) { - fputs("driver did not send SYN event in between key events; previous event:\n", - stderr); - print_key(last_scan, last_key, has_scan, has_key); - has_key = 0; - } - - last_scan = ev.value; - has_scan = 1; - /*printf("--- got scan %u; has scan %i key %i\n", last_scan, has_scan, has_key); */ - } - else if (ev.type == EV_KEY) { - if (has_key) { - fputs("driver did not send SYN event in between key events; previous event:\n", - stderr); - print_key(last_scan, last_key, has_scan, has_key); - has_scan = 0; - } - - last_key = ev.code; - has_key = 1 + ev.value; - /*printf("--- got key %hu; has scan %i key %i\n", last_key, has_scan, has_key);*/ - - /* Stop on ESC */ - if (ev.code == KEY_ESC && ev.value == 0) - break; - } - else if (ev.type == EV_SYN) { - /*printf("--- got SYN; has scan %i key %i\n", has_scan, has_key);*/ - print_key(last_scan, last_key, has_scan, has_key); - - has_scan = has_key = 0; - } - - } - - /* release input device */ - ioctl(fd, EVIOCGRAB, 0); -} - -_noreturn_ static void help(int error) -{ - const char* h = "Usage: keymap []\n" - " keymap scancode keyname [...]\n" - " keymap -i \n"; - if (error) { - fputs(h, stderr); - exit(2); - } else { - fputs(h, stdout); - exit(0); - } -} - -int main(int argc, char **argv) -{ - static const struct option options[] = { - { "help", no_argument, NULL, 'h' }, - { "interactive", no_argument, NULL, 'i' }, - {} - }; - int fd = -1; - int opt_interactive = 0; - int i; - - while (1) { - int option; - - option = getopt_long(argc, argv, "hi", options, NULL); - if (option == -1) - break; - - switch (option) { - case 'h': - help(0); - - case 'i': - opt_interactive = 1; - break; - default: - return 1; - } - } - - if (argc < optind+1) - help (1); - - if ((fd = evdev_open(argv[optind])) < 0) - return 3; - - /* one argument (device): dump or interactive */ - if (argc == optind+1) { - if (opt_interactive) - interactive(fd); - else - dump_table(fd); - return 0; - } - - /* two arguments (device, mapfile): set map file */ - if (argc == optind+2) { - const char *filearg = argv[optind+1]; - if (strchr(filearg, '/')) { - /* Keymap file argument is a path */ - FILE *f = fopen(filearg, "re"); - if (f) - merge_table(fd, f); - else - perror(filearg); - } else { - /* Keymap file argument is a filename */ - /* Open override file if present, otherwise default file */ - char keymap_path[PATH_MAX]; - FILE *f; - - snprintf(keymap_path, sizeof(keymap_path), "/etc/udev/keymaps/%s", filearg); - f = fopen(keymap_path, "re"); - if (f) { - merge_table(fd, f); - } else { - snprintf(keymap_path, sizeof(keymap_path), UDEV_LIBEXEC_DIR "/keymaps/%s", filearg); - f = fopen(keymap_path, "re"); - if (f) - merge_table(fd, f); - else - perror(keymap_path); - } - } - return 0; - } - - /* more arguments (device, scancode/keyname pairs): set keys directly */ - if ((argc - optind - 1) % 2 == 0) { - for (i = optind+1; i < argc; i += 2) - set_key(fd, argv[i], argv[i+1]); - return 0; - } - - /* invalid number of arguments */ - help(1); - return 1; /* not reached */ -} diff --git a/src/udev/Makefile.am b/src/udev/Makefile.am index 2bceb0c69..4a5f5fefa 100644 --- a/src/udev/Makefile.am +++ b/src/udev/Makefile.am @@ -117,6 +117,41 @@ EXTRA_DIST = \ CLEANFILES = \ udev.pc +if ENABLE_KEYMAP +AM_CPPFLAGS += \ + -I $(top_builddir)/src/udev + +libudev_core_la_SOURCES += \ + udev-builtin-keyboard.c + +nodist_libudev_core_la_SOURCES = \ + keyboard-keys-from-name.h \ + keyboard-keys-to-name.h + +keyboard-keys.txt: Makefile + $(AM_V_at)$(MKDIR_P) $(dir $@) + $(AM_V_GEN)$(CPP) $(CFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) -dM -include linux/input.h - < /dev/null | $(AWK) '/^#define[ \t]+KEY_[^ ]+[ \t]+[0-9]/ { if ($$2 != "KEY_MAX") { print $$2 } }' | sed 's/^KEY_COFFEE$$/KEY_SCREENLOCK/' > $@ + +keyboard-keys-from-name.gperf: keyboard-keys.txt Makefile + $(AM_V_GEN)$(AWK) 'BEGIN{ print "struct key { const char* name; unsigned short id; };"; print "%null-strings"; print "%%";} { print tolower(substr($$1 ,5)) ", " $$1 }' < $< > $@ + +keyboard-keys-from-name.h: keyboard-keys-from-name.gperf Makefile + $(AM_V_GPERF)$(GPERF) -L ANSI-C -t -N keyboard_lookup_key -H hash_key_name -p -C < $< > $@ + +keyboard-keys-to-name.h: keyboard-keys.txt Makefile + $(AM_V_GEN)$(AWK) 'BEGIN{ print "const char* const key_names[KEY_CNT] = { "} { print "[" $$1 "] = \"" $$1 "\"," } END{print "};"}' < $< > $@ + + +BUILT_SOURCES = \ + $(nodist_libudev_core_la_SOURCES) + +CLEANFILES += \ + keyboard-keys-from-name.gperf \ + keyboard-keys.txt \ + $(BUILT_SOURCES) + +endif + # install udevadm symlink in sbindir install-exec-hook: if test "$(bindir)" != "$(sbindir)"; then \ diff --git a/src/udev/udev-builtin-keyboard.c b/src/udev/udev-builtin-keyboard.c new file mode 100644 index 000000000..ddd853594 --- /dev/null +++ b/src/udev/udev-builtin-keyboard.c @@ -0,0 +1,163 @@ +/*** + This file is part of systemd. + + Copyright 2013 Kay Sievers + + systemd is free software; you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation; either version 2.1 of the License, or + (at your option) any later version. + + systemd is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with systemd; If not, see . +***/ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "udev.h" + +static const struct key *keyboard_lookup_key(const char *str, unsigned int len); +#include "keyboard-keys-from-name.h" +#include "keyboard-keys-to-name.h" + +static int install_force_release(struct udev_device *dev, const unsigned int *release, unsigned int release_count) { + struct udev_device *atkbd; + const char *cur; + char codes[4096]; + char *s; + size_t l; + unsigned int i; + int ret; + + atkbd = udev_device_get_parent_with_subsystem_devtype(dev, "serio", NULL); + if (!atkbd) + return -ENODEV; + + cur = udev_device_get_sysattr_value(atkbd, "force_release"); + if (!cur) + return -ENODEV; + + s = codes; + l = sizeof(codes); + + /* copy current content */ + l = strpcpy(&s, l, cur); + + /* append new codes */ + for (i = 0; i < release_count; i++) + l = strpcpyf(&s, l, ",%d", release[i]); + + log_debug("keyboard: updating force-release list with '%s'\n", codes); + ret = udev_device_set_sysattr_value(atkbd, "force_release", codes); + if (ret < 0) + log_error("Error writing force-release attribute: %s", strerror(-ret)); + return ret; +} + +static int builtin_keyboard(struct udev_device *dev, int argc, char *argv[], bool test) { + struct udev_list_entry *entry; + struct { + unsigned int scan; + unsigned int key; + } map[1024]; + unsigned int map_count = 0; + unsigned int release[1024]; + unsigned int release_count = 0; + + udev_list_entry_foreach(entry, udev_device_get_properties_list_entry(dev)) { + const char *key; + unsigned int scancode; + char *endptr; + const char *keycode; + const struct key *k; + + key = udev_list_entry_get_name(entry); + if (!startswith(key, "KEYBOARD_KEY_")) + continue; + + /* KEYBOARD_KEY_= */ + scancode = strtol(key + 13, &endptr, 16); + if (endptr[0] != '\0') { + log_error("Error, unable to parse scan code from '%s'\n", key); + continue; + } + + keycode = udev_list_entry_get_value(entry); + + /* a leading '!' needs a force-release entry */ + if (keycode[0] == '!') { + keycode++; + + release[release_count] = scancode; + if (release_count < ELEMENTSOF(release)-1) + release_count++; + + if (keycode[0] == '\0') + continue; + } + + /* translate identifier to key code */ + k = keyboard_lookup_key(keycode, strlen(keycode)); + if (!k) { + log_error("Error, unknown key identifier '%s'\n", keycode); + continue; + } + + map[map_count].scan = scancode; + map[map_count].key = k->id; + if (map_count < ELEMENTSOF(map)-1) + map_count++; + } + + if (map_count > 0 || release_count > 0) { + const char *node; + int fd; + unsigned int i; + + node = udev_device_get_devnode(dev); + if (!node) { + log_error("Error, no device node for '%s'\n", udev_device_get_syspath(dev)); + return EXIT_FAILURE; + } + + fd = open(udev_device_get_devnode(dev), O_RDWR|O_CLOEXEC|O_NONBLOCK|O_NOCTTY); + if (fd < 0) { + log_error("Error, opening device '%s': %m\n", node); + return EXIT_FAILURE; + } + + /* install list of map codes */ + for (i = 0; i < map_count; i++) { + log_debug("keyboard: mapping scan code %d (0x%x) to key code %d (0x%x)\n", + map[i].scan, map[i].scan, map[i].key, map[i].key); + if (ioctl(fd, EVIOCSKEYCODE, &map[i]) < 0) + log_error("Error calling EVIOCSKEYCODE: %m\n"); + } + + /* install list of force-release codes */ + if (release_count > 0) + install_force_release(dev, release, release_count); + + close(fd); + } + + return EXIT_SUCCESS; +} + +const struct udev_builtin udev_builtin_keyboard = { + .name = "keyboard", + .cmd = builtin_keyboard, + .help = "keyboard scan code to key mapping", +}; diff --git a/src/udev/udev-builtin.c b/src/udev/udev-builtin.c index 22deaac1a..d9cca9dde 100644 --- a/src/udev/udev-builtin.c +++ b/src/udev/udev-builtin.c @@ -39,6 +39,9 @@ static const struct udev_builtin *builtins[] = { #endif [UDEV_BUILTIN_HWDB] = &udev_builtin_hwdb, [UDEV_BUILTIN_INPUT_ID] = &udev_builtin_input_id, +#ifdef ENABLE_KEYMAP + [UDEV_BUILTIN_KEYBOARD] = &udev_builtin_keyboard, +#endif #ifdef HAVE_MODULES [UDEV_BUILTIN_KMOD] = &udev_builtin_kmod, #endif diff --git a/src/udev/udev.h b/src/udev/udev.h index f0256a4d0..80fdd4c0e 100644 --- a/src/udev/udev.h +++ b/src/udev/udev.h @@ -145,6 +145,9 @@ enum udev_builtin_cmd { #endif UDEV_BUILTIN_HWDB, UDEV_BUILTIN_INPUT_ID, +#ifdef ENABLE_KEYMAP + UDEV_BUILTIN_KEYBOARD, +#endif #ifdef HAVE_MODULES UDEV_BUILTIN_KMOD, #endif @@ -171,6 +174,9 @@ extern const struct udev_builtin udev_builtin_firmware; #endif extern const struct udev_builtin udev_builtin_hwdb; extern const struct udev_builtin udev_builtin_input_id; +#ifdef ENABLE_KEYMAP +extern const struct udev_builtin udev_builtin_keyboard; +#endif #ifdef HAVE_MODULES extern const struct udev_builtin udev_builtin_kmod; #endif