我想在 Ubuntu 16.10 登录之前禁用触摸板。
我曾尝试执行
#!/bin/bash
ID=$(/usr/bin/xinput list --id-only "SynPS/2 Synaptics TouchPad")
if [[ $ID ]]; then
/usr/bin/xinput --disable $ID
echo "Touchpad disabled"
else
echo "Touchpad not found"
fi
启动时使用 systemctl、rc.d 等。似乎什么都不起作用,因为它需要运行 X 或类似的东西。
答案1
将以下代码添加到
/usr/share/X11/xorg.conf.d/*-synaptics.conf
# Disable generic Synaptics device, as we're using
Section "InputClass"
Identifier "SynPS/2 Synaptics TouchPad"
MatchProduct "SynPS/2 Synaptics TouchPad"
MatchIsTouchpad "on"
MatchOS "Linux"
MatchDevicePath "/dev/input/event*"
Option "Ignore" "on"
EndSection
重新启动并测试是否有效。
答案2
我安装了 Linux Mint 18,内核为 4.4.0-45。我做了以下操作,以便轻松切换触摸板状态。
sudo apt-get install xinput
xinput -list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ MOSART Semi. 2.4G Keyboard Mouse id=11 [slave pointer (2)]
⎜ ↳ **FTE1001:00 0B05:0101** ***id=14*** [slave pointer (2)]
查找触摸板的 id,在我的情况下是 14。我编写了一个小型 shell 脚本来关闭和打开触摸板。
触摸板关闭:
cd /usr/local/bin
sudo nano touchpad-off
#!/bin/bash # touchpad off xinput --set-prop 14 "Device Enabled" 0 echo touchpad off
触摸板开启:
sudo nano touchpad-on
#!/bin/bash # touchpad on xinput --set-prop 14 "Device Enabled" 1 echo touchpad on
使用以下命令使脚本可执行:
chmod +x touchpad-off chmod +x touchpad-on
现在您可以使用终端中的
touchpad-off
和轻松切换触摸板状态。touchpad-on
启动时禁用:
转到启动应用程序并添加新的启动应用程序,查找脚本touchpad-off
并将其添加到列表中。您需要确保脚本位于usr/local/bin
如上所示位置,并确认它是可执行的。
另一件需要仔细检查的事情是确保文件在自动运行提示下运行。右键单击文件并转到“打开方式”选项卡,然后选择自动运行提示。
答案3
由于我每次购买新的 Thinkpad 时都会遇到这个问题,因此这里借鉴了另外两种回应,提出了一种更为通用的方法:
- 找到触摸板的名称:
xinput --list
。您应该得到类似这样的结果:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ TPPS/2 Elan TrackPoint id=15 [slave pointer (2)]
⎜ ↳ SYNA8022:00 06CB:CE67 Touchpad id=12 [slave pointer (2)]
⎜ ↳ SYNA8022:00 06CB:CE67 Mouse id=11 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Video Bus id=6 [slave keyboard (3)]
↳ Power Button id=7 [slave keyboard (3)]
↳ Integrated Camera: Integrated C id=9 [slave keyboard (3)]
↳ Intel HID events id=13 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=14 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=16 [slave keyboard (3)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ Integrated Camera: Integrated I id=10 [slave keyboard (3)]
在我的例子中,要使用的名称是SYNA8022:00 06CB:CE67 Touchpad
测试这是否是正确的设备(同时也免去了重启的麻烦):,
xinput --set-prop ID "Device Enabled" 0
其中 ID 是您使用上述命令获取的列表中的 ID。如果此操作禁用了触摸板,则说明您找到了正确的 ID 和名称创建一个文件并将
/etc/X11/xorg.conf.d/
其命名为20_synaptics.conf
(通常,数字定义相对于其他文件的顺序):
# Disable touchpad
Section "InputClass"
Identifier "SynPS/2 Synaptics TouchPad"
MatchProduct "SYNA8022:00 06CB:CE67 Touchpad"
MatchIsTouchpad "on"
MatchOS "Linux"
MatchDevicePath "/dev/input/event*"
Option "Ignore" "on"
EndSection
MatchProduct 字符串应该是您在 xinput 列表中找到的字符串。
- 要测试它是否有效,请按 Ctrl+Alt+F3 切换到文本控制台(如果控制台 3 已被占用,请尝试其他数字)。登录然后启动 X 会话:
sudo xinit -- :2
。这将启动第二个 X 服务器而无需重新启动您的机器。您可能只会看到一个终端窗口(没有边框,因为您没有运行窗口管理器),但这足以测试触摸板是否被禁用。您可以通过在终端窗口中键入 Ctrl+D 来退出。