Difference between revisions of "Talk:How to get special keys to work"
(→Fake ACPI events?) |
|||
Line 77: | Line 77: | ||
---- | ---- | ||
− | I think something like this is possible with ibm-acpi 0.10 already. It provides a proc file | + | I think something like this is possible with ibm-acpi 0.10 already. It provides a proc file from which you can derive a table of CMOS states. You'd only have to figure the who is who of CMOS bits and write a daemon or (daemon like shell script) checking them regularly. This should be about what you suggest since tpb does the same thing with the bios ram. |
[[User:Wyrfel|Wyrfel]] 01:02, 14 Mar 2005 (CET) | [[User:Wyrfel|Wyrfel]] 01:02, 14 Mar 2005 (CET) | ||
---- | ---- |
Revision as of 01:03, 14 March 2005
The xmodmap step doesn't seem to work when using the "kdb" driver of xorg. Here are the changes I needed to make to my setup to get the "back" and "forward" keys to work (in diff -u format);
--- xkb/symbols/inet.oud 2004-12-01 08:36:04.000000000 +0100 +++ xkb/symbols/inet 2005-03-08 19:59:32.587636120 +0100 @@ -1875,6 +1875,16 @@ key <I76> { [ XF86AudioLowerVolume ] }; }; +// IBM ThinkPad 41 Internet Keys + +partial alphanumeric_keys +xkb_symbols "tp41" { + name[Group1]= "IBM ThinkPad 41 Internet Keys"; + + key <I69> { [ F22 ] }; + key <I6A> { [ F21 ] }; +}; + // Trust partial alphanumeric_keys
--- xkb/rules/xorg.lst.oud 2004-12-01 08:36:05.000000000 +0100 +++ xkb/rules/xorg.lst 2005-03-07 20:55:21.000000000 +0100 @@ -97,6 +97,7 @@ sven SVEN Ergonomic 2500 symplon Symplon PaceBook (tablet PC) toshiba_s3000 Toshiba Satellite S3000 + tp41 IBM ThinkPad 41 Internet Keys trust Trust Wireless Keyboard Classic trustda Trust Direct Access Keyboard yahoo Yahoo! Internet Keyboard
--- xkb/rules/xorg.oud 2004-12-01 08:36:05.000000000 +0100 +++ xkb/rules/xorg 2005-03-07 20:45:59.000000000 +0100 @@ -120,7 +120,7 @@ qtronix \ samsung4500 samsung4510 \ sk1300 sk2500 sk6200 sk7100 \ - sven symplon toshiba_s3000 trust trustda yahoo + sven symplon toshiba_s3000 tp41 trust trustda yahoo ! model = symbols $inetkbds = +inet(%m)
--- xkb/rules/xorg.xml.oud 2004-12-01 08:36:05.000000000 +0100 +++ xkb/rules/xorg.xml 2005-03-07 20:52:35.000000000 +0100 @@ -975,6 +975,13 @@ </model> <model> <configItem> + <name>tp41</name> + <description>IBM Thinkpad 41 Internet Keys</description> + <description xml:lang="nl">IBM ThinkPad 41 internet toetsen</description> + </configItem> + </model> + <model> + <configItem> <name>trust</name> <description>Trust Wireless Keyboard Classic</description> <description xml:lang="fr">clavier classique Trust Wireless</description>
Do not forget to add something like "+inet(tp41)" to /etc/X11/xorg.conf:
(...) Option "XkbLayout" "us_intl+inet(tp41)" (...)
Not T41 specific
These keys are hardly T41 specific, they can also be found on the T30, T40, T42 and I'm sure several other ThinkPads in the X, R and G lineup.
Actually, the above patches could be completed with the information of the other special keys found on some Thinkpads (which is listed in How_to_get_special_keys_to_work#xmodmap_configuration) and submitted as a request for enhancement with xorg's bugzilla. However, firefox doesn't yet recognize keysyms like XF86Back, XF86Forward, so then firefox still needs to be patched manually (unless an enhancement is requested for firefox too).
Fake ACPI events?
Not all keys generate ACPI events. Maybe it is feasible to have the ibm-acpi module check the CMOS (instead of having tpb checking /dev/nvram) and generate fake ACPI events for those keys. Even if it is feasible, that is probably way to hacky for a kernel module ... Still, it would be nice to only have to use scripts triggered by ACPI events and not both scripts for ACPI events and scripts for tpb.
I think something like this is possible with ibm-acpi 0.10 already. It provides a proc file from which you can derive a table of CMOS states. You'd only have to figure the who is who of CMOS bits and write a daemon or (daemon like shell script) checking them regularly. This should be about what you suggest since tpb does the same thing with the bios ram.
Wyrfel 01:02, 14 Mar 2005 (CET)