现在的位置: 首页 > 综合 > 正文

向配备触摸板的膝上型计算机添加多触点手势支持

2013年03月28日 ⁄ 综合 ⁄ 共 1437字 ⁄ 字号 评论关闭

通过分析 Synaptics TouchPad 的 synclient 程序输出来启用 Linux®
应用程序的点击(swipe)和按压(pinch)手势。

多触点界面为在应用程序中集成新的交互模式提供了大量优点。Mac OS X 和 Microsoft® Windows®
中较新的硬件和驱动程序支持除指向和单击以外的更多的手势,从而可以实现更高效的应用程序导航。本文提供了一些工具和代码,可以在支持 Linux
的旧式硬件上添加某些新手势支持。本文中提供的 Perl 代码是在 synclient 程序输出的基础上构建的,它将允许您把特定应用程序函数赋给
“三指击键(Three-Finger Swipe)” 以及打开按压(Open-Pinch)和关闭按压(Close-Pinch)手势。

要求

硬件

本文中提供的代码专门针对仅配备了 Synaptics TouchPad 的计算机,并且在 IBM® ThinkPad T30 中开发。在从 Acer
Aspire 到 Toshiba Tecra 的许多膝上型计算机中,您都可以找到 Synaptics 触摸板。要获得 Synaptics TouchPad
软件项目硬件兼容性列表以查看您的硬件是否在列表中,请参阅 参考资料
小节。

软件

您需要具有提供 evdev 支持的最新 Linux 内核。幸运的是,大多数最新发行版都内置了这项功能。许多发行版还附带了 Synaptics
包,该包包含用于监视 TouchPad 事件的 synclient。例如,Fedora Core 还附带了合适的 X Window System
配置,用户稍微修改后即可启用 TouchPad。其他发行版(例如 Ubuntu V7.10)可能需要更多配置,然后才能正常运行 Synaptics 包 — 用
sudo apt-get install tpconfig 命令安装。有关在 Linux 中使用 Synaptics TouchPad
实现基本功能的更多信息,请参阅 参考资料

您还需要有 CPAN 的 Time::HiRes 模块才能提供处理 TouchPad 事件的亚秒级时间控制。此外,您还需要 X11::GuiTest
模块才能把 synthetic X Window 事件发送给应用程序。要获得这些工具,请参阅 参考资料



回页首

确保基本功能

如果用 TouchPad 启用了鼠标控制,请检查是否有足够的多触点检测以提供手势支持。运行 synclient -m 100
命令并尝试在 TouchPad 中进行不同的触摸操作。您应当会看到类似下面的输出:

清单 1. 示例
synclient -m 100 输出

                
time x y z f w l r u d m multi gl gm gr gdx gdy
13.872 5680 4409 0 0 0 0 0 0 0 0 00000000 0 0 0 0 0
14.891 1072 3945 28 1 4 0 0 0 0 0 00000000 0 0 0 0 0
14.994 3529 2667 104 2 5 0 0 0 0 0 00000000 0 0 0 0 0
15.605 3669 3667 0 0 0 0 0 0 0 0 00000000 0 0 0 0 0
16.625 2628 2841 255 3 5 0 0 0 0 0 00000000 0 0 0 0 0
17.951 3117 2843 255 3 5 0 0 0 0 0 00000000 0 0 0 0 0
18.053 2902 3142 3 1 15 0 0 0 0 0 00000000 0 0 0 0 0
18.155 2430 3062 0 0 0 0 0 0 0 0 00000000 0 0 0 0 0

尝试单指、双指和三指触摸以确保事件会被正确检测到。确保 TouchPad 可以检测到三指,因为要添加的第一个手势是......

本文转自IBM Developerworks中国

      请点击此处查看全文

 

抱歉!评论已关闭.