笔记本电脑品牌和型号
- 戴尔 Latitude XT3
- 内存:4 GB
- 处理器:Intel® Core™ i5-2520M CPU @ 2.50GHz × 4
- 显卡:Mesa Intel® HD Graphics 3000 (SNB GT2)
问题
触摸屏出现故障,随意点击,并且无法控制鼠标光标。
因此,有时我无法登录,因为我无法在登录时在密码框中输入密码。
登录后,我通常使用以下命令禁用笔记本电脑上的故障触摸屏
xinput set-prop "N-Trig 触摸屏" "设备已启用" 0 xinput set-prop "N-Trig 多点触控" "设备已启用" 0 xinput set-prop "N-Trig 触控笔" "设备已启用" 0 xinput set-prop "N-Trig 笔橡皮擦" "设备已启用" 0
我创建了一个 .sh 脚本文件,用于在启动时执行所有这些命令。该文件的内容是
#!/bin/bash
xinput set-prop "N-Trig Touchscreen" "Device Enabled" 0
xinput set-prop "N-Trig MultiTouch" "Device Enabled" 0
xinput set-prop "N-Trig Pen stylus" "Device Enabled" 0
xinput set-prop "N-Trig Pen eraser" "Device Enabled" 0
- 当我将此脚本添加到启动应用程序时,它仅在登录后运行。
- 我希望脚本在登录屏幕上禁用触摸屏。在启动过程中。
因此我创建了一个包含以下内容的 .service 文件
[Unit]
Description=Disable touchscreen on startup
After=lightdm.service
[Service]
Type=oneshot
ExecStartPre=/bin/sleep 6
ExecStart=/usr/local/bin/disable-touchscreen.sh
[Install]
WantedBy=multi-user.target
当我使用 /usr/local/bin/disable-touchscreen.sh 手动运行脚本时,它可以正常工作。但是当我检查 .service 文件的状态时,它显示一条错误消息,提示“无法连接到 X 服务器”
有人能帮我排除故障吗?为什么当服务调用脚本时,它无法连接到 X 服务器。谢谢。
答案1
该xinput
命令配置 X 服务器的键盘视图。在登录并启动 X 服务器(或 Wayland)之前运行该命令是没有意义的。
你可以登录到您的 GUI,打开终端并echo "$DISPLAY"
。尝试将此定义 ( export DISPLAY=...
) 复制到
/usr/local/bin/disable-touchscreen.sh
或包装器脚本。