如何禁用/启用/切换戴尔笔记本电脑中的触摸板

art*_*bot 9 touchpad dell

我正在尝试在 Ubuntu 16.04 上调整触摸板,但通常的方法似乎都不起作用。例如

synclient touchpadOff=1
Run Code Online (Sandbox Code Playgroud)

它仍然有效!

$ xinput set-prop $DEVICE_ID "Device Enabled" 0
$ xinput list-props 15 |head -n2
  Device 'SynPS/2 Synaptics TouchPad':
    Device Enabled (168):   0
Run Code Online (Sandbox Code Playgroud)

......它仍然有效!

我可以从“设置”应用程序中禁用它。但我希望能够将其映射到键盘快捷键,因此我正在寻找命令行解决方案。

如果您在 Gnome-Shell 和 Unity 中回答作品,则加分 :-)

编辑:根据评论中的要求输出 xinput。

$ xinput
? Virtual core pointer                      id=2    [master pointer  (3)]
?   ? Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
?   ? ELAN Touchscreen                          id=12   [slave  pointer  (2)]
?   ? DLL06E4:01 06CB:7A13 Touchpad             id=13   [slave  pointer  (2)]
?   ? SynPS/2 Synaptics TouchPad                id=15   [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)]
    ? Power Button                              id=9    [slave  keyboard (3)]
    ? Sleep Button                              id=10   [slave  keyboard (3)]
    ? Integrated_Webcam_HD                      id=11   [slave  keyboard (3)]
    ? AT Translated Set 2 keyboard              id=14   [slave  keyboard (3)]
    ? Dell WMI hotkeys                          id=16   [slave  keyboard (3)]
Run Code Online (Sandbox Code Playgroud)

铌。我用了 15 个$DEVICE_ID

编辑 - 感谢下面的答案,这是我的切换脚本

你可以在一个班轮中完成,但这样你也会得到一个很好的通知。我已将它附加到一个快捷键上,它很有魅力。谢谢大家。

#!/bin/bash
if xinput list-props 13 | grep "Device Enabled (168):.*1" >/dev/null
then
  xinput disable 13
  notify-send -u low -i mouse "Trackpad disabled"
else
  xinput enable 13
  notify-send -u low -i mouse "Trackpad enabled"
fi
Run Code Online (Sandbox Code Playgroud)

Pil*_*ot6 10

您可以使用以下命令关闭触摸板:

xinput disable 13
Run Code Online (Sandbox Code Playgroud)

启用它

xinput enable 13
Run Code Online (Sandbox Code Playgroud)

该设备不受 控制psmouse。它由 控制synaptics_i2c。它是设备 13。

您也可以像之前尝试过的那样按名称切换它,而不是依赖于 ID。但是,如果您不连接新的输入设备,则 ID 应保留。

有关详细信息,请参阅此答案

要删除错误检测到的设备,您需要添加i8042.nopnp内核引导参数。


Jac*_*ijm 5

使用 gsettings

如果您可以通过 更改设置gsettings,通常它是首选选项。由于您可以从系统设置启用/禁用触摸板,而且我很确定系统设置确实使用了gsettings,看起来下面的方法应该可以完成这项工作,在您的戴尔上也是如此。

切换触摸板的脚本

14.04

#!/usr/bin/env python3
import subprocess

key = "org.gnome.settings-daemon.peripherals.touchpad" ;val = "touchpad-enabled"
curr = subprocess.check_output(["gsettings", "get", key, val]).decode("utf-8").strip()
newval = "false" if curr == "true" else "true"
subprocess.Popen(["gsettings", "set", key, val, newval])
Run Code Online (Sandbox Code Playgroud)

15.04+

#!/usr/bin/env python3
import subprocess

key = "org.gnome.desktop.peripherals.touchpad" ;val = "send-events"
curr = subprocess.check_output(["gsettings", "get", key, val]).decode("utf-8").strip()
newval = "disabled" if curr == "'enabled'" else "enabled"
subprocess.Popen(["gsettings", "set", key, val, newval])
Run Code Online (Sandbox Code Playgroud)

使用它

  1. 将上面的脚本(对于您正确的 Ubuntu 版本)复制到一个空文件中,将其另存为 toggle_touchpad.py
  2. 将以下命令添加到快捷方式:

    python3 /path/to/toggle_touchpad.py
    
    Run Code Online (Sandbox Code Playgroud)

    选择:系统设置>“键盘”>“快捷方式”>“自定义快捷方式”。单击“+”并添加命令:

    python3 /path/to/toggle_touchpad.py
    
    Run Code Online (Sandbox Code Playgroud)

解释

禁用触摸板的命令:

14.04

gsettings set org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled false
Run Code Online (Sandbox Code Playgroud)

15.04 +

gsettings set org.gnome.desktop.peripherals.touchpad send-events disabled
Run Code Online (Sandbox Code Playgroud)

读取当前状态

如果我们使用脚本通过命令读取当前设置:

gsettings get org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled
Run Code Online (Sandbox Code Playgroud)

(14.04),或

gsettings get org.gnome.desktop.peripherals.touchpad send-events
Run Code Online (Sandbox Code Playgroud)

(15.04+)

我们可以让脚本设置相反的值,从而切换触摸板。



编辑; bash 版本的切换脚本

只是为了完整,并且因为 OP 指示python脚本有效,但不想使用pythonbash两个切换脚本的版本:

14.04

python3 /path/to/toggle_touchpad.py
Run Code Online (Sandbox Code Playgroud)

15.04+

python3 /path/to/toggle_touchpad.py
Run Code Online (Sandbox Code Playgroud)

放在快捷键下