Answers:
2016年9月15日更新Multitouch开箱即用,下面列出的所有解决方案(mtrack,synclient,ginn等)都会使事情变得混乱,因此,如果您是从需要它们的较旧内核进行更新,请删除所有帮助器应用程序,并使用适用于桌面管理器的触摸板ui尝试开箱即用的内核行为。它应该可以满足您的需要,如果您想要更多的手势和内容,请添加简单的笔画,效果很好。现在,它已在常规内核输入驱动程序中进行了排序,并且至少从4.1.32内核开始就可以正常工作,尽管某些4.0早期的内核无法正常工作。当前的LTS内核4.4和4.7都可以正常工作。
更新9/2015 ... 3.14或更高版本的内核现在已内置大多数多点触控,因此,如果遇到问题,请尝试卸载mtrack。自内核3.14以来,内置的多点触控驱动程序和easystroke对我来说都工作正常,尽管4.0及更高版本的回归似乎破坏了苹果触控板。虽然3.18内核工作得很好。
有很多解决方案,其中大多数还有些生硬。许多记录在案的文件都已过时,因此请确保您查看使用Google的日期。
Ubuntu在鼠标/触摸板设置小程序中内置了基本手势(两根手指)。
我发现它随机变暗,然后两个手指的滚动会变成灰色,使我陷入漫长的谷歌搜索链中,也许会把它找回来。
然后我尝试了touchegg,有时这种方法行得通。
这是最简单的配置,并且有很好的说明,但是它基于该问题的较旧的守护程序解决方案。
ubuntu多点触控操作方法(由于我只能包含两个链接,因此您必须对其进行Google搜索)已经过时,但正在逐步解决。它提供了另一套补丁解决方案,但是正在更新中。
我当前使用的解决方案是mtrack(在回购协议中)与easystroke(必须从源代码进行编译)相结合。
如果我理解正确的话,Mtrack支持多点触控的内核版本,而不是像touchegg和ginn这样的临时解决方案,但是easystroke是另一个守护程序解决方案,该解决方案目前在mtrack上似乎很好用。
Mtrack的方法似乎是发展的方向。
如果使用其他东西(ginn,touchegg),请先将其卸载,然后从存储库全名xserver-xorg-input-mtrack安装mtrack。
配置起来很痛苦,我还没摸到三根手指。有关人员的各种配置文件,请参见线程末尾的链接。我使用了一个苹果魔术触控板,虽然它在两次轻击和拖动(例如移动窗口)方面存在烦人的毛病,但它确实非常有用。解决方法是使用实际的按钮单击来移动窗口,或者在移动窗口之前双击并保持一秒钟后犹豫。
我只是发现了easystroke,直到mtrack得到一个gui为止,如果您足够冒险尝试编译程序,则可能要尝试一下。
一旦通过运行进行编译并由make -j2
安装sudo make install
,请启动easystroke -g
以获取GUI并进入Wiki页面以获取指导。
您可能需要解决的另一个问题是驱动程序。
如果使用mtrack,则可能需要对文件重新编号,以便最后读取mtrack驱动程序,否则突触设置将捕获所有内容。
这些驱动程序存储在/usr/share/X11/xorg.conf.d中。
将mtrack驱动程序复制到/etc/X11/xorg.conf.d,编辑该文件夹中的设置(有关方法,请参阅链接的线程和README)以获取三指优势(或使用easystroke),然后重命名该文件的编号更高,因此50-mtrack.conf变为60-mtrack.conf,否则我发现突触驱动程序将在一半时间内抓住您的触摸板。
将文件放在/ etc中意味着它不会在/ usr文件之类的更新上被覆盖,并且它是最后读取的文件,因此它优先于/ usr中的默认驱动程序。
希望这可以帮助。这是一个相当活跃的发展领域,所以我写的任何东西可能会在一年之内过时,希望会更好。
我只是想建议使用我在github上提供的mtrack的延续:https : //github.com/p2rkw/xf86-input-mtrack,因为它支持三指拖动(自述文件底部的说明)。
我也将它与easystroke结合使用,但是我不得不修改easystroke来消除对绝对设备的一些限制,并进行了此简单更改(我不记得这样做的确切原因,对不起):
diff --git a/handler.cc b/handler.cc
index 8830ea2..c9e3f91 100644
--- a/handler.cc
+++ b/handler.cc
@@ -563,7 +563,7 @@ protected:
}
protected:
void move_back() {
- if (!prefs.move_back.get() || (xstate->current_dev && xstate->current_dev->absolute))
+ if (!prefs.move_back.get())
return;
XTestFakeMotionEvent(dpy, DefaultScreen(dpy), orig_x, orig_y, 0);
}
我还减少了手势的错误余量:
diff --git a/gesture.cc b/gesture.cc
index 8531c08..0df990e 100644
--- a/gesture.cc
+++ b/gesture.cc
@@ -104,9 +104,9 @@ int Stroke::compare(RStroke a, RStroke b, double &score) {
return -1;
score = MAX(1.0 - 2.5*cost, 0.0);
if (a->timeout)
- return score > 0.85;
+ return score > 0.95;
else
- return score > 0.7;
+ return score > 0.92;
}
...而且效果很好。
有关痛苦的配置的旁注:您可以使用xinput对其进行动态配置,然后相应地编辑xorg.conf,或使用xinput调用创建启动脚本。