在 Ubuntu 13.04 上,我必须手动配置触摸板,因为一个错误阻止我使用标准配置工具(更改不会保存)。但是我创建了一个设置速度、加速度和滚动的脚本,将其配置为在启动时运行,并且它可以工作。当我在暂停后恢复时,问题出现了:特别是滚动设置(最容易检查)消失了。根据其他问题和答案,我编写了这个脚本(其中包含我在前面提到的脚本中使用的相同命令),位于/etc/pm/sleep.d/ZZtouchpad
:
#!/bin/sh
case "$1" in
resume|thaw)
xinput --set-prop "CyPS/2 Cypress Trackpad" "Device Accel Constant Deceleration" 2
xinput --set-prop "CyPS/2 Cypress Trackpad" "Device Accel Velocity Scaling" 35
xinput --set-prop "CyPS/2 Cypress Trackpad" "Synaptics Scrolling Distance" -20, -20
esac
但它根本不起作用。
谢谢帮助!
编辑
我发现当使用pm-suspend
或暂停时,脚本可以工作pm-suspend-hybrid
,但当从系统菜单暂停或关闭笔记本电脑盖时,脚本则不起作用。错误似乎是“无法连接到 X 服务器”。
因此,最好重新表述这个问题:我应该把这些命令放在哪里,以便在 X 会话恢复时执行它们?我试过了,在和~/.xinitrc
下的一个文件。有什么建议吗?~/.xinitrc.d
~/.xsessionrc
答案1
我遇到了类似的问题。问题是连接到 X 服务器。我通过从 窃取 解决了这个问题/etc/acpi/sleep.sh
。将以下内容放入/etc/pm/sleep.d/99_setup_touchpad
。
#! /bin/sh
. /usr/share/acpi-support/power-funcs
case "$1" in
resume|thaw)
if pidof xscreensaver > /dev/null; then
for x in /tmp/.X11-unix/*; do
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`
getXuser;
if [ x"$XAUTHORITY" != x"" ]; then
export DISPLAY=":$displaynum"
su $user -c "xinput set-prop 'CyPS/2 Cypress Trackpad' 'Device Accel Constant Deceleration' 2"
su $user -c "xinput set-prop 'CyPS/2 Cypress Trackpad' 'Device Accel Velocity Scaling' 35"
su $user -c "xinput set-prop 'CyPS/2 Cypress Trackpad' 'Synaptics Scrolling Distance' -20, -20"
fi
done
fi
;;
*)
# Nothing.
;;
esac
最后使文件可执行:chmod 755 /etc/pm/sleep.d/99_setup_touchpad
。
笔记:通常,我是唯一一个通过笔记本电脑上的 X 登录的人。因此,循环只是一次迭代。我不知道如果同时有多个会话处于活动状态会发生什么。以上对我来说已经足够了。