我知道禁用触摸板很简单,只需在系统设置中切换开/关按钮即可,但不幸的是,它仅适用于当前会话。重启后,触摸板就会重新打开。
答案1
禁用触摸板的命令
禁用触摸板的命令是:
14.04 版:
gsettings set org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled false
适用于 15.04 +:
gsettings set org.gnome.desktop.peripherals.touchpad send-events disabled
将其添加到启动应用程序
最实用(且简单)的解决方案是将命令添加到启动应用程序。
就像许多涉及屏幕、xrandr
键盘或触摸板设置的命令一样,你需要休息一会儿但为了防止可能的当地程序推翻该命令,因此应该是:
14.04 版:
/bin/bash -c "sleep 15 && gsettings set org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled false"
15.04 版本+:
/bin/bash -c "sleep 15 && gsettings set org.gnome.desktop.peripherals.touchpad send-events disabled"
打开 Dash > 启动应用程序 > 添加。根据您的 Ubuntu 版本添加上述命令。
现在,登录后不久(15 秒内)您的触摸板就会自动禁用。
当然,您可以利用这 15 秒的时间来优化您的系统。
编辑
从你的评论来看,触摸板在一段时间后重新启用,这意味着一些该过程正在启用触摸板。
通常,很难找出导致这种变化的过程。即使你能找到,也不能保证你能消除原因。
然而好消息是gsettings
(用于检查/控制触摸板)极其“电量不足”。这意味着,让后台脚本监视当前状态不会给您的系统带来任何负担,如果某个进程以某种方式启用了触摸板,则立即再次禁用触摸板。
如果你运行 14.04
- 使用下面的脚本
#!/usr/bin/env python3
import subprocess
import time
key = "org.gnome.settings-daemon.peripherals.touchpad"
def check_set():
currstate = subprocess.check_output([
"gsettings", "get", key, "touchpad-enabled",
]).decode("utf-8").strip()
if currstate == "true":
subprocess.Popen([
"gsettings", "set", key, "touchpad-enabled", "false"])
while True:
time.sleep(2)
check_set()
如果你使用 15.04+
#!/usr/bin/env python3
import subprocess
import time
key = "org.gnome.desktop.peripherals.touchpad"
def check_set():
currstate = subprocess.check_output([
"gsettings", "get", key, "send-events",
]).decode("utf-8").strip()
if currstate == "enabled":
subprocess.Popen([
"gsettings", "set", key, "send-events", "disabled"])
while True:
time.sleep(2)
check_set()
使用它
- 将脚本复制到一个空文件中,另存为
no_touchpad.py
将以下命令添加到启动应用程序:
/bin/bash - c "sleep 15 && python3 /path/to/no_touchpad.py"
恐怕唯一的选择就是物理断开触摸板,正如 Serg 提到的那样。
答案2
下面讨论了 3 种可能的方法、优缺点。可能还有其他方法,但这些方法最可靠、最简单。
Dconf 方法
第一种方法是使用dconf
(这是我首选的方法,因为它至少在我的 14.04 LTS 系统上重启后仍然有效),更具体地说是这个命令:
dconf write /org/gnome/settings-daemon/peripherals/touchpad/touchpad-enabled false
要完成它,请运行dconf update
。
非常好的方法,不需要root访问权限,重启后依然可用,脚本简单。
将司机列入黑名单
如果驱动程序(在 Linux 术语中为模块)被列入黑名单,则该设备将无法使用 - 这是一个简单的想法。我们需要的特定模块是pmouse
。
使用 root 权限打开文件/etc/modprobe.d/blacklist.conf
,例如使用sudo nano /etc/modprobe.d/blacklist.conf
(命令行编辑器)或gksu gedit /etc/modprobe.d/blacklist.conf
(GUI 编辑器)。在末尾添加以下行:
blacklist pmouse
保存、退出、重新启动,现在您的触摸板将无法使用。需要说明的是,无线 USB 鼠标仍将处于活动状态 - 我目前正在使用 USB 无线鼠标在移除触摸板模块的笔记本电脑上输入这些内容。
这种方法的小缺点是需要root访问权限,但总的来说,这是一种简单有效的方法。
新输入
最后一个是xinput --disable ID
,其中 ID 是设备的id=
编号xinput
(注意没有参数)。现在我们如何让它每次登录 GUI 时自动启动?
制作一个脚本并将其添加到启动应用程序菜单:
#!/bin/bash
DISPLAY=:0
xinput --disable 13 # id 13 is just an example
现在每次登录时,它都会运行。稍微冗长一点,步骤更多。但是,当您使用任何依赖于 X 服务器的 GUI 时,这都有优势。但只有那些使用dconf
该方法的人dconf
(显然),例如 Unity 或 Gnome。
硬件解决方案:
这可能很明显,但如果您想 100% 禁用触摸板,请打开笔记本电脑并断开从触摸板到主板的带状连接器。
答案3
有一个非常酷的实用程序,touchpad-indicator
它在顶部栏中显示有关触摸板状态的图标。重要的是,它还允许您执行以下操作:
- 只需单击图标即可启用/禁用触摸板。
- 启动时自动禁用触摸板
touchpad-indicator
。 - 插入鼠标时禁用触摸板。
- 打字时禁用触摸板。
- 使用键盘快捷键启用/禁用触摸板。
我将向您展示如何安装和设置它,以便它在启动时禁用触摸板。
首先我们需要安装它,打开一个终端并输入以下内容:
sudo add-apt-repository ppa:atareao/atareao sudo apt-get update sudo apt-get install touchpad-indicator
安装后,通过
Touchpad-Indicator
在 Dash 菜单中查找来启动它。您将看到屏幕右上角出现一个新图标(见下图)。点击它并选择优先。
您将看到以下窗口:
前往常规选项标签。
勾选自动启动。
现在转到操作标签。
勾选触摸板指示器启动时禁用触摸板。
(可选)在操作标签。
完毕。
您现在可以关闭该窗口(通过单击OK)。
享受。
答案4
以下命令将禁用您的触摸板,前提是您用触摸板的 ID 替换“XX”。
xinput set-int-prop XX "Device Enabled" 8 0
要查找触摸板的 ID,请运行:
xinput --list
例如,我的触摸板如下所示:
⎜ ↳ AlpsPS/2 ALPS DualPoint TouchPad id=15 [从属指针 (2)]
所以我的触摸板的 ID 是 15。
因此,使用此命令,我可以关闭触摸板:
xinput set-int-prop 15 "Device Enabled" 8 0
再回过头来说:
xinput set-int-prop 15 "Device Enabled" 8 1
这是键盘上启用/禁用触摸板热键发出的相同命令,因此如果需要,您仍然可以随时重新打开触摸板。
现在,剩下的就是让这个命令在你每次打开电脑时运行。最简单的方法可能是将命令添加到你的启动应用程序中。在 Unity 中,只需在仪表板中搜索启动应用程序即可。 如果您使用 Mate,该工具位于“系统 -> 偏好设置 -> 个人 -> 启动应用程序”下。
使用启动应用程序方法运行命令时,触摸板仍将在登录屏幕和其他用户帐户的配置文件中处于活动状态。如果您想让命令在启动期间在系统范围内运行,这个问题有一些有用的答案可以帮助你入门。
其他来源: http://wpkg.org/Disable_/_enable_keyboard_and_mouse_in_Linux