Ubuntu下的trackpoint中键滚动功能
自从Google Chrome OS的展示会,我就对Linux系统产生了浓厚的兴趣。用Ubuntu近一个月了,它的速度、安全性、可定制性让我佩服不已,相见恨晚。
之前在Windows下编程,不知道vim这样的强大编辑器,嫌手在键盘和鼠标之间移动的麻烦,买了IBM sk-8835 Ultranav键盘(带trackpoint小红点)。在Ubuntu下没装这键盘的驱动,于是有一个该键盘的重要功能──中键滚动,一直没有得到运用。想到了Linux的可定制性,相信实现这个功能一定不难。经过一番google,找到了实现方法。用完美来形容一点不过分。
我只是Linux初学者,下面的介绍也较适合初学者阅读。如有差错疏漏,还请高手指正。
第一步:取得小红点设备的info.product值
这里介绍用gnome device manager取得这个值。如果你有其它方法得到这个值,也可以直接跳到第二步。
在终端中输入”sudo apt-get install gnome-device-manager”(不含引号,下同),自动下载安装一个几百K的文件。
安装完成后,运行”gnome-device-manager”打开设备管理器。
在左侧的设备列表中,根据你键盘的连接方式找到键盘设备。比如我的键盘是USB连接的,我就在USB下找键盘鼠标相关的设备。

点击后根据右侧出现的Model值也能一定程度上判断设备。有trackpoint ultranav等字样的一般就能确定是ultranav键盘。

选择菜单栏中的view,给Device Properties选项打上勾。此时可以看见右侧多出了”Properties”选项卡。

在Properties选项卡中的Key一列中找到”info.product”,查看其对应的Value,记下它。于是我们就得到了需要的值。

第二步:创建配置文件
在终端中输入”sudo gedit /etc/hal/fdi/policy/mouse-wheel.fdi”,并输入密码,这样,就创建了一个fdi文件。
将下面的内容复制进文档:
<?xml version=”1.0″ encoding=”UTF-8″?>
<match key=”info.product” string=”Synaptics Inc. Composite TouchPad / TrackPoint”>
<merge key=”input.x11_options.EmulateWheel” type=”string”>true</merge>
<merge key=”input.x11_options.EmulateWheelButton” type=”string”>2</merge>
<merge key=”input.x11_options.XAxisMapping” type=”string”>6 7</merge>
<merge key=”input.x11_options.YAxisMapping” type=”string”>4 5</merge>
<merge key=”input.x11_options.ZAxsisMapping” type=”string”>4 5</merge>
<merge key=”input.x11_options.Emulate3Buttons” type=”string”>true</merge>
</match>
将代码中string=”Synaptics Inc. Composite TouchPad / TrackPoint” 引号内的内容换成你的info.product值。
保存这个文件并退出gedit

(图片使用的是vim编辑器,而非gedit。)
第三步:重启hal和gdm服务
方法一:
通过图形化界面,注销,再登录。
方法二:
退出正在运行的应用程序,并在命令行中输入:
sudo /etc/init.d/hal restart
sudo /etc/init.d/gdm restart
大功告成!完美之处:
按住中键并移动小红点进行滚动操作,十分顺畅。还支持非活动但可见窗口的滚动。滚动方面与windows下的表现无异。
浏览器中,在链接上单击中键,相当于单击鼠标滚轮,可以在新标签页中打开网页。这是windows下也没有的功能。
