我正在尝试在 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
? 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内核引导参数。
如果您可以通过 更改设置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)
toggle_touchpad.py将以下命令添加到快捷方式:
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+)
我们可以让脚本设置相反的值,从而切换触摸板。
只是为了完整,并且因为 OP 指示python脚本有效,但不想使用python,bash两个切换脚本的版本:
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)
toggle_touchpad.sh将以下命令放在自定义快捷方式下:
/bin/bash /path/to/toggle_touchpad.sh
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
6656 次 |
| 最近记录: |