嗯,前些日子购入了一枚 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
估计最近一阵子俺会折腾这个直到俺自己满意为止……
1
donghouhe 2015-04-12 11:28:51 +08:00 via Android
佩服写驱动的大牛
|
2
quadpixels OP @donghouhe 其实我不是写,我只是稍事修改 … 在这个驱动中最麻烦的部分基础部分,功能是从更低层的驱动读取硬件送来的信息并一边保持与 X 事件相关的一系列状态,比起那个来加上三指拖拽只是小菜啊...
|
3
zongren 2017-04-17 11:13:17 +08:00
能三指选择文本吗,大神
|
4
haiyang416 2018-01-02 17:09:00 +08:00
收藏了,目前很想需要这个功能。
|