如何在 Ubuntu 18.04 (libinput) 中禁用“点击拖动”功能而不禁用“点击点击”?

kob*_*bra 8 touchpad gnome xorg libinput 18.04

我似乎无法弄清楚如何在 Ubuntu 18.04 的 libinput 中禁用“点击拖动”功能。通过禁用“点击拖动”,我的意思是我想在使用点击时禁用拖动功能而不实际禁用“点击点击”。这样,当我想拖动某些东西时,我必须实际单击触摸板。虽然它对某些人来说可能是一个方便的功能,但我并不真正需要它,而且它一直在意外触发。如果有任何帮助,我使用的是 2013 年末或 2014 年初的 Macbook Pro。

我试图四处寻找答案,并检查了 libinput 的手册以找出正确的配置。我发现的是这样的:

选项“TappingDrag”“bool”

在点击行为(“点击并拖动”)期间启用或禁用拖动。启用后,轻按后按住手指只会按下一个按钮,因此该手指的所有动作都会转化为拖动动作。点击并拖动需要启用选项点击。

我尝试在以下位置设置此选项/usr/share/X11/xorg.conf.d/40-libinput.conf

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

重新启动并点击拖动仍然存在。我还尝试将相同的选项添加TappingDrag到配置文件中的触摸屏和平板电脑部分,但没有成功。我究竟做错了什么?

我希望有人知道答案,这真的很困扰我。提前致谢!

小智 15

GNOME 对此有一个设置,只是在 GNOME 控制中心中无法访问。

您可以使用终端或dconf-editor访问此设置。

终端:

  1. 关闭点击并拖动。

    gsettings set org.gnome.desktop.peripherals.touchpad tap-and-drag false
    
    Run Code Online (Sandbox Code Playgroud)
  2. 检查是否成功。

    gsettings get org.gnome.desktop.peripherals.touchpad tap-and-drag
    
    Run Code Online (Sandbox Code Playgroud)

dconf 编辑器:

  1. 安装 dconf-editor
  2. 里面dconf-editor导航到org/gnome/desktop/peripherals/touchpad
  3. 找到点击并拖动并关闭设置


小智 10

由于 18.04 使用 Xorg 而不是 Wayland,你应该可以这样设置:

首先找到设备:

% xinput list                                                                   
? Virtual core pointer                      id=2    [master pointer  (3)]
?   ? Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
?   ? SynPS/2 Synaptics TouchPad                id=12   [slave  pointer  (2)]
?   ? TPPS/2 IBM TrackPoint                     id=13   [slave  pointer  (2)]
? Virtual core keyboard                     id=3    [master keyboard (2)]
    ? Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ? Power Button                              id=6    [slave  keyboard (3)]
    ? Video Bus                                 id=7    [slave  keyboard (3)]
    ? Video Bus                                 id=8    [slave  keyboard (3)]
    ? Sleep Button                              id=9    [slave  keyboard (3)]
    ? Integrated Camera: Integrated C           id=10   [slave  keyboard (3)]
    ? AT Translated Set 2 keyboard              id=11   [slave  keyboard (3)]
    ? ThinkPad Extra Buttons                    id=14   [slave  keyboard (3)]
Run Code Online (Sandbox Code Playgroud)

我在一个thinkpad上。您的设备可能有所不同。

列出触摸板的属性:

% xinput list-props 12                                                          
Device 'SynPS/2 Synaptics TouchPad':
    Device Enabled (140):   1
    Coordinate Transformation Matrix (142): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    libinput Tapping Enabled (276): 1
    libinput Tapping Enabled Default (277): 0
    libinput Tapping Drag Enabled (278):    1
    ...
Run Code Online (Sandbox Code Playgroud)

然后禁用它:

% xinput set-prop 'SynPS/2 Synaptics TouchPad' 'libinput Tapping Drag Enabled' 0
Run Code Online (Sandbox Code Playgroud)

我永久设置它的方法是放入一个在登录时运行的脚本。

我希望这有帮助。我不知道如何在系统级别修复它,也不知道如何在 Wayland 上修复它。

  • 哇。魔法。这解决了问题。非常感谢! (2认同)