如何个性化我的MacBook Pro触控板?

我在MacBook Pro 5.5上运行Ubuntu 12.04 LTS。我只是想知道是否有什么方法可以解决触摸板的问题。它工作得不错,但感觉有点迟钝,双击大约只有75%的成功率,有时候在我操作时会意外选择到其他页面上的内容(虽然我不确定这是否与触摸板有关,而不是新LTS版本的奇怪bug)。
如果除了系统自带的偏好设置 > 鼠标和触摸板 > 触摸板菜单之外,还有其他程序、应用或命令可以“优化”触摸板的性能,请告诉我。

我不知道什么时候,但看起来xorg.conf被拆分成几个文件放在一个.d目录中...为了解决这个问题,可以尝试使用Chan-Ho Suh的修复方法;将这些项目添加到***/usr/share/X11/xorg.conf.d/***10-evdev.conf文件的底部。 - knope
5个回答

你可以修改文件/etc/X11/xorg.conf中的相关部分。如果该文件不存在,可以创建一个。以下是一个示例文件,展示了正确的格式:
Section "InputClass"
    Identifier         "Touchpad"
    Driver             "synaptics"
    MatchIsTouchpad    "on"
    Option         "ClickFinger3" "2"
    Option         "HorizTwoFingerScroll" "1"
    Option         "VertScrollDelta" "85"
    Option         "HorizScrollDelta" "85"
    Option         "TapButton1" "0"
    Option         "TapButton2" "0"
    Option         "TapButton3" "0"
    Option         "FingerHigh" "8"
    Option         "FingerLow" "8"
EndSection

你可以删除、修改或添加选项行。这里是一些常用选项。 (链接指向另一个文件,但不用担心;我给出的路径会做同样的事情)
由于每次测试配置都需要重新启动很麻烦,我建议在命令行中使用synclient。这里还有另一个Arch wiki链接,解释了如何使用synclient。除了用它来测试选项的值,你还可以看到你没有设置的选项的默认值。

1对于Linux Mint,该文件位于:/usr/share/X11/xorg.conf.d/50-synaptics.conf。将这些内容添加到第一部分。 - Travis Reeder
我在Ubuntu 15.10上无法工作。看起来有些东西覆盖了这个设置! - alisabzevari
我创建了这个文件,重新启动后,我的键盘就停止工作了。这很奇怪,因为我只编辑了触摸板的设置,与键盘无关。 - Chester

只需使用

sudo apt-get install gsynaptics
gpointing-device-settings

图形界面来控制你的触摸板。简单得多。

E: Unable to locate package gsynaptics - Michael

大调整Chan-Ho Suh, 你可以这样做来实现“自然滚动”:

Option "VertScrollDelta" "-85" and Option "HorizScrollDelta" "-85"

我使用了以下步骤: 按照上述建议,将/etc/X11/xorg.conf文件设置为如下:
# /etc/X11/xorg.conf

Section "InputClass"
    Identifier         "Touchpad"
    Driver             "synaptics"
    MatchIsTouchpad    "on"

然后这样做:
$ sudo sh -c "synclient -l | sed 's/    \([a-Z0-9]*\) *= \([0-9.-]*\)/\tOption \"\1\" \"\2\"/' >> /etc/X11/xorg.conf"

这应该将您当前的触摸板设置转储到文件中,并节省您大量时间,只需调整显示结果中的值即可。请仔细检查生成的语法,否则可能会破坏您的X服务器。这还将转储类似于synclient输出的"参数..:"之类的行,您需要将其删除。我不确定如何在命令行级别上进行过滤。并且不要忘记在末尾添加EndSection

为更好版本的shell命令进行了编辑。


sudo ... | ... 管道不起作用,因为在管道之前,您只有以 root 身份运行 synclient -l 命令。您可以尝试在管道的两侧都使用 sudo 或者将整个命令包含起来。 - Braiam
由于某种原因,即使使用$ su并运行synclient -l | ... >> ..也无法工作,它仍然告诉我权限被拒绝。也许我记错了我做的事情。 - Paul
1因为当你使用su命令时,家目录变量会改变为/root - Braiam
抱歉,我觉得我解释得不够清楚。我所做的是$ su $ sudo synclient -l | sed 's/ \([a-Z0-9]*\) *= \([0-9.]*\)/\tOption "\1" "\2"/' >> /etc/X11/xorg.conf,但是收到了权限被拒绝的错误。编辑:算了,通过这种方式似乎可以正常工作,我不确定我做了什么。我已经调整了正则表达式以适应负值。 - Paul
su只是用来切换用户,您需要root权限才能执行此操作。以root会话运行的命令应为sudo su -,然后执行命令...,最后使用logoutexit退出。 - Braiam
我猜我现在明白了区别,但结果仍然是一个根会话.. 区别在于 su 命令将用户切换到根账户。这种方法真的存在后勤问题吗? - Paul

我几天前在论坛上找到了一个特别适用于MacBook的绝佳解决方案,如果不觉得敏感的话,将以下内容添加到您的启动项中:
synclient FingerLow=10; synclient FingerHigh=20
随便起个名字,并将其添加为您的命令,就这样完成了。