从挂起状态唤醒后,Synaptics 触摸板设置重置

从挂起状态唤醒后,Synaptics 触摸板设置重置

我已将触摸板配置为将三指点击识别为鼠标中键单击

synclient TapButton3=2

这个方法很好用,几个月前我就使用启动应用程序 GUI 工具将此命令设置为在登录后几秒自动运行。相关文件如下所示:

$ cat .config/autostart/touchpad-settings.sh.desktop 
[Desktop Entry]
Type=Application
Exec=bash -c 'sleep 7 ; /usr/local/bin/touchpad-settings.sh'
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=Touchpad settings
Comment=

$ cat /usr/local/bin/touchpad-settings.sh
#! /bin/bash
synclient TapButton3=2

所以这一直工作正常,但是从几天或几周前开始,在暂停笔记本电脑并再次唤醒后,配置会被重置。三指点击然后打开一个Alt+Tab状窗口切换器,而不是产生中键单击并查询synclient此设置值再次确认TapButton3=0

知道是什么原因造成的吗?我该如何修复它,或者至少在从挂起状态唤醒后自动重新配置它?

答案1

我不知道是什么原因造成的,但可以很快解决。

您可以编写一个脚本,让它在每次挂起后执行。它的工作原理如下:

首先,创建一个包含触摸板设置的脚本。我的脚本如下:

#!/bin/bash 
#=============
# touchpad.sh
#=============
# This script sets up my touchpad settings at login/after suspend
# Executed from /lib/systemd/system-sleep

# wait for a few seconds for the desktop to be set up properly first
sleep 5;

# synclient needs a server to connect to
declare -x DISPLAY=":0.0"
declare -x XAUTHORITY="/home/<YOUR USERNAME>/.Xauthority"

# enable middle click
synclient TapButton2=3 
synclient TapButton3=2

# disable window switcher
synclient ClickFinger3=2

exit 0

不要忘记插入您的用户名并制作剧本可执行文件:chmod a + x /path/to/script/touchpad.sh

接下来,创建一个脚本,该脚本将在挂起后启动 touchpad.sh。对于 ubuntu 16,您需要将其保存在目录中/lib/systemd/system-sleep/。我的脚本如下所示:

#!/bin/sh
case $1 in
  pre)
    # Place your pre suspend commands here, or `exit 0` 
    # if no pre suspend action required
    exit 0
    ;;
  post)
    # Place your post suspend (resume) commands here, or 
    # `exit 0` if no post suspend action required
    /path/to/script/touchpad.sh
    exit 0
    ;;
esac

您需要 root 权限才能写入/lib/systemd/system-sleep/,并且不要忘记使用以下命令使脚本可执行:sudo chmod a+x your_wakeup_script.sh

最后,应得功劳的地方就得功劳。

相关内容