使用 libinput 进行正确的触摸板拇指和手掌检测

tom*_*chi 24 touchpad multi-touch macbook

所以 libinput 它的第一个稳定版本接近发布候选版本

这增加了对触摸板上拇指/手掌检测的适当支持以及滑动和捏合手势支持,这是 Linux 中非常缺少的多点触控笔记本电脑。

任何人都可以提供有关如何在 Ubuntu 15.04 上安装它的良好说明

我相信我们暂时不会在 Ubuntu 安装中将其视为默认设置。

Jim*_*imB 25

为Ubuntu 15.10+可以安装libinput老谋深算xenialyakkety)通过apt

sudo apt install xserver-xorg-input-libinput
Run Code Online (Sandbox Code Playgroud)

我仍然需要编辑配置文件以启用点击,我假设当 Unity 吸收 libinput 时,它会通过控制面板设置公开它(我在这里使用了 vi,你可以使用 gedit 或任何你喜欢的东西):

编辑以下文件(在 16.04 2016-4-14 和 16.10 2016-10-14 上测试):

sudo vi /usr/share/X11/xorg.conf.d/90-libinput.conf 
Run Code Online (Sandbox Code Playgroud)

调整“触摸板”部分以添加Option "tapping" "True"Option "DisableWhileTyping" "True"如果您更喜欢这种行为:

Section "InputClass"
    Identifier "libinput touchpad catchall"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    Driver "libinput"
    Option "Tapping" "True"
    Option "DisableWhileTyping" "True"
EndSection
Run Code Online (Sandbox Code Playgroud)

注销,登录..享受!:)

  • 看来您还可以添加`Option "AccelSpeed" "-0.5"`,其中的值可以是从 -1(较慢的光标)到 +1(较快的光标)的浮点数。您还可以使用 xinput 试验这个值和其他值。首先通过运行`xinput`找到id,然后如果你的id是12,你可以做`xinput list-props 12`来列出所有的道具。如果你想改变一个,获取道具的int(例如libinput Accel Speed(281):-0.500000),那么你可以执行`xinput set-prop 12 281 -0.4`将加速度更改为-0.4。 (4认同)

Pil*_*ot6 15

这是将libinput安装到 Ubuntu 的方法。

  1. 安装一些需要的包

    sudo apt-get install git build-essential autoconf automake pkg-config libtool
    sudo apt-get install libmtdev1 libmtdev-dev libudev-dev libevdev-dev xutils-dev libwacom-dev
    
    Run Code Online (Sandbox Code Playgroud)
  2. 安装xserver-xorg-dev. 对于 14.04.3,它可能是xserver-xorg-dev-lts-vivid。当心。您需要检查xserver-xorg安装了什么软件包。

    sudo apt-get install xserver-xorg-dev
    
    Run Code Online (Sandbox Code Playgroud)
  3. 克隆libinputxf86-input-libinput.

    git clone git://anongit.freedesktop.org/git/wayland/libinput
    git clone git://anongit.freedesktop.org/xorg/driver/xf86-input-libinput
    
    Run Code Online (Sandbox Code Playgroud)
  4. 构建和安装。

    cd libinput
    ./autogen.sh --prefix=/usr
    make && sudo make install
    
    cd ../xf86-input-libinput
    ./autogen.sh --prefix=/usr
    make && sudo make install
    
    Run Code Online (Sandbox Code Playgroud)
  5. 在触摸板部分之前添加到文件conf/90-libinput.conf字符串。Option "Tapping" "True"EndSection

  6. 复制配置文件以启用libinput.

    sudo cp conf/90-libinput.conf /usr/share/X11/xorg.conf.d/
    
    Run Code Online (Sandbox Code Playgroud)

注销并登录。

您将看到libinput运行xinput list-props <your_touchpad_id>.

如果您不喜欢使用libinput,您可以随时禁用它

sudo rm /usr/share/X11/xorg.conf.d/90-libinput.conf
Run Code Online (Sandbox Code Playgroud)

我刚刚安装了它,现在我正在弄清楚如何设置手掌检测。看起来它是默认启用的,但我还不太明白它是如何使用内核报告的宽度和压力的。

看起来目前libinput在 Ubuntu中使用没有什么大的优势。

xf86-input-libinput只是将它包装到 Xorg 而没有别的。所以不支持额外的手势。至少我不知道他们是否这样做。我猜,Wayland 或 Mir 会更有能力。

经过一些测试,我发现了一个优势。有一个问题xorg-synaptics,当您将手指放在按钮区域时,您不能用另一个手指移动光标。这对于喜欢使用硬件按钮进行点击的人来说很不方便。该问题已被多次报告为错误。

libinput那里根本没有这个问题。

测试起来很有趣。谢谢你的提问。