使用xmodmap映射Thinkpad专有键

发布: 2010-05-27 22:46

大多数笔记本电脑上都有几个专有键,我现在使用的Think有几个,像静音、提高音量、降低音量、Fn键,除了静音键管用(只能静音,打不开音量)在KDE4上都没有反应,没有提示。

偶然在泡论坛的时候,看到一个关于这种专有键的处理方法,一般都是映射到一个虚拟键上,如F20等,然后在桌面环境中使用定义的虚拟键作为某些功能的快捷键了。

主要有两种键盘映射方法,xmodmap和keytouch,我现在使用的是xmodmap方法,感觉这个方便一点。

首先用xev程序获得专有键的代码,在用户目录下编译.Xmodemap文件,文件格式如下,

keycode 159 = F18
keycode 174 = F19
keycode 176 = F20
keycode 227 = F21


再执行xmodmap .Xmodmap命令执行映射,让其生效。
不过这个命令需要每次启动的时候都执行。有些系统可以使用/etc/rc.local执行,而我现在使用的Gentoo不支持这种方法,只好在KDE中设置这个自执行命令。

还一个比较特殊的地方,静音键无法使用xev获得代码,不会给X任何事件,找了一下大概是这个键直接使用ACPI功能传递信号了,并不经过X,目前这个键就只能这么用了。
这么一改,其他几个特殊的键都能与KDE桌面环境配合的很好用了。

A 2010-05-27:
找到Mute键的使用方法,需要加个内核启动参数,acpi_osi="Linux" .
然后,使用上面的xmodmap方法,可以捕捉到Mute按键。

现在的.Xmodmap文件,

keycode 159 = F18 # ThinkVantage
keycode 160 = F19 # Mute
keycode 174 = F20 # Volume down
keycode 174 = F21 # Volume up


原文: http://qtchina.tk/?q=node/412

Powered by zexport