带有libinput的正确触摸板拇指和手掌检测


23

因此,libinput与候选版本接近其第一个稳定版本

它为触摸板上的拇指/手掌检测提供了适当的支持,以及滑动和捏合手势支持,这在Linux中对于多点触摸功能的笔记本电脑来说是很重要的。

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

正如我所相信的,在一段时间的Ubuntu安装中我们不会将其视为默认设置。


这个问题没有引起太多关注。老实说不知道为什么。
VRR

Palm检测取决于内核触摸板驱动程序,也可以在xorg-synaptics中进行设置。你有什么触摸板?
飞行员

@ Pilot6软件包可以下载,但是自述文件未提供有关如何编译到内核的特定说明。
RCF 2015年

@ RCF-U15.04 libinput是一个用户空间应用程序。它与内核无关。它仅使用内核报告的事件。
飞行员

@tomodachi如果您想在Ubuntu中很好地设置手掌检测功能,可以提出另一个问题,我会为您提供帮助。
试点

Answers:


14

这是将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
    
  2. 安装xserver-xorg-dev。对于14.04.3可能是xserver-xorg-dev-lts-vivid。小心。您需要检查xserver-xorg安装了哪些软件包。

    sudo apt-get install xserver-xorg-dev
    
  3. 克隆libinputxf86-input-libinput

    git clone git://anongit.freedesktop.org/git/wayland/libinput
    git clone git://anongit.freedesktop.org/xorg/driver/xf86-input-libinput
    
  4. 生成并安装。

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

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

    sudo cp conf/90-libinput.conf /usr/share/X11/xorg.conf.d/
    

注销并登录。

您将看到libinput运行该命令已使用该命令xinput list-props <your_touchpad_id>

如果您不喜欢使用libinput,可以随时通过以下方式禁用它

sudo rm /usr/share/X11/xorg.conf.d/90-libinput.conf

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

看起来目前libinput在Ubuntu 中使用尚无主要优势。

xf86-input-libinput只需将其包装到Xorg即可。因此不支持额外的手势。至少我不知道他们是否这样做。我猜Wayland或Mir会更有能力。

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

libinput不存在这个问题的。

测试很有趣。谢谢你的问题。


@ Pilot6“不支持额外手势”有什么意义?
VRR 2015年

@VRR关键是默认的Ubuntu DE不支持许多手势。只是拥有libinput并不能改变它。开箱即用的1、2、3手指轻按即可。手掌检测可能更智能,但是似乎它不支持仅报告宽度的触摸板。新车型做不支持的压力,因为他们如触摸屏等工作
Pilot6

我认为我有点混乱了。在此过程中。现在我在启动后出现黑屏。但没有lightdm登录屏幕。这可能是由于xorg所致。我知道较旧的版本号.can任何人都告诉我该流程现在该怎么办。.我可以去tty
预感

如果您有问题,请删除/usr/share/X11/xorg.conf.d/99-libinput.confsudo rm /usr/share/X11/xorg.conf.d/99-libinput.conf
飞行员

那不是解决问题。您能提及有关xserver-xorg-dev的问题吗?...您还提到了..小心点..如何恢复到旧版本..
预感

25

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

sudo apt install xserver-xorg-input-libinput

我仍然必须编辑配置文件以启用点击,我假设当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 

调整“触摸板”部分以添加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

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


libinput中没有“ PalmDetection”选项,默认情况下DisableWhileTyping处于启用状态。因此,无需添加所有这些内容。
飞行员

调整并删除了这两个选项。我将“点击”保留为默认状态,因为它没有处于启用状态。
JimB

而且我也不建议所有设备都使用libinput。在我的情况下,键盘滞后,因此在我的情况下,我选择了触摸板事件event5并将其写入该文件。
飞行员

@ Pilot6-您能否提供更多有关如何仅将libinput用于触摸板的详细信息?
BeeOnRope

4
您似乎还可以添加Option "AccelSpeed" "-0.5",其中值可以是从-1(较慢的光标)到+1(较快的光标)的浮点数。您还可以使用xinput尝试使用此值和其他值。首先通过运行找到ID xinput,然后如果ID为12,则可以xinput list-props 12列出所有道具。如果要更改一个,则获取prop的整数(例如libinput Accel Speed(281):-0.500000),然后可以xinput set-prop 12 281 -0.4将accel更改为-0.4。
David784 '16


1

我在Lubuntu 17上有类似的问题。我尝试安装libinput并编辑.conf文件无济于事。

但是然后我看到了@ Pilot6上面的帖子,内容是关于使用xinput验证libinput是否处于活动状态(也很高兴知道验证的标准是什么,但我离题了)。

我检查了我的xinput xinput list-props 14(在您的情况下可以是另一个数字)。

这给了我一个synaptics触摸板。

在列表中,有一个用于手掌检测的选项及其相关的编号(316)。

所以我曾经xinput set-prop 14 316 1激活手掌检测。终于成功了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.