如何制作一个让触摸屏在恢复后运行的脚本?

如何制作一个让触摸屏在恢复后运行的脚本?

我在 ASUS TP200SA(一款二合一笔记本电脑)上使用 Ubuntu 16.04 LTS。我最近注意到一个关于触摸屏的错误,每当我将系统置于睡眠状态并唤醒它时,触摸屏都不起作用。由于我对 Linux 还很陌生,我只能通过输入以下内容来解决这个问题...

xinput disable (my touchscreen)
xinput enable (my touchscreen)

...将这些内容复制到终端。一段时间后,它变得非常累人,我正在寻找一种方法来自动执行每份简历中的这一过程。我搜索了网络并找到了一些教程,但我没有得到任何结果,因为我在 Linux 方面的经验非常少。我希望有人能以一种非常简单的方式解释如何做到这一点。

谢谢你!

答案1

我有同样的笔记本电脑,我刚刚用这种方法修好了它。

首先,我创建了一个脚本

sudo nano /usr/local/bin/reload_touchscreen.sh

使用此代码:

#!/bin/bash
export DISPLAY=:0.0
export XAUTHORITY=/home/username/.Xauthority
sleep 5s
xinput disable "SIS0457:00 0457:1136"
xinput enable "SIS0457:00 0457:1136"

您需要修改“/home/username/.Xauthority”以匹配您自己的计算机用户名。我还使用“xinput list”找到了我的触摸屏的名称。也更新它,或者使用数字 id。我暂停了 5 秒钟,这样我就有时间重新登录桌面,以防万一。确保使此文件可执行:

chmod +x /usr/local/bin/reload_touchscreen.sh

然后创建一个 systemd 服务,如下所示:

sudo nano /etc/systemd/system/reload_touchscreen.service

包含此内容:

[Unit]
Description=Reload touchscreen
After=suspend.target
#After=hibernate.target
#After=hybrid-sleep.target

[Service]
ExecStart=/usr/local/bin/reload_touchscreen.sh

[Install]
WantedBy=suspend.target
#WantedBy=hibernate.target
#WantedBy=hybrid-sleep.target

不确定是否需要,但我也使服务文件可执行。

然后使用以下命令启用该服务:

systemctl enable reload_touchscreen.service

希望它对你有用!PS:我已经在笔记本电脑上安装了 4.10 主线内核,现在亮度键也能正常工作了。我认为 Ubuntu 17.04 在这台笔记本电脑上运行良好。

相关内容