嗯,前些日子购入了一枚 Magic Trackpad 给俺的运行 Xubuntu 的电脑用。
(用 Xubuntu 无别的原因,只是因为习惯了,另外也是干活的需要,另外也是因为其较低的性能需求能让俺的 2008 年产的电脑再战五年。)
装好以后发现默认的驱动程序不支持三个手指拖拽功能。
三指拖拽功能在苹果机上的标配,很好用。一模一样的硬件在苹果机上有三指拖拽在Linux上没有,那肯定就是驱动程序的问题。
试了 touchegg 和 ginn,发现它们只支持手势 —— 是那种在手势做完之前,指针都会停在原地不动的手势,感觉自然也不是很顺溜,能实现的功能及手感与三指拖拽相比自然相去绝远。
也试过了 xf86-input-mtouch 等其它驱动,也不支持三指拖拽,除此之外对于基本功能的支持貌似也不及 xf86-input-synaptics 。
于是歪打误撞,打开了 xf86-input-synaptics 的源程序。我对 Linux 的驱动结构不了解,不过可能是运气好,源程序其实为实现三指拖拽准备好了所有所需的函数、成员和功能。只需在状态转换时多加几条分支即可初步达成想要的效果,到后面再仔细调试改善会更好一些。
其实细看,要是把 xf86-input-synaptics 整个砍掉重写一遍能达成苹果机的那种手感也说不定。(说远了,俺最近肯定没精力做的说…)
我觉得这个修改应该也能让其它多点触摸的触摸板支持三指拖拽,比如 T650 和新的各种带触摸的 Wacom 的板子。
简单介绍目前效果的视频:
http://v.youku.com/v_show/id_XOTMyMDA4NDYw.html
改得很烂的 code 在这里,好奇者可以试试看 … (因为是 Xubuntu 14.04,所以 xf86-input-synaptics 的版本用的是与自带的相同的 1.7.4,不是最新的):
https://github.com/quadpixels/three-finger-dragging
估计最近一阵子俺会折腾这个直到俺自己满意为止……
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.