唤醒脚本不起作用

唤醒脚本不起作用

我有一个脚本可以重新映射我的键盘。它在登录时按预期执行,但在恢复时不起作用。命令是xmodmap .Xmodmap或带有完整路径:/usr/bin/xmodmap /home/arash/.Xmodmap

我使用了 Ubuntu 的启动应用程序流程,对于恢复,我遵循通过添加 bash 脚本到/lib/systemd/system-sleep

#!/bin/sh

case $1/$2 in
  pre/*)
    echo "Going to $2..."
    exit 0
    ;;
  post/*)
    echo "Waking up from $2..."
    /usr/bin/xmodmap /home/arash/.Xmodmap
    ;;
esac

并使其可执行sudo chmod x+a

由于某种原因,它不起作用,我只能在日志中看到以下消息:

/lib/systemd/system-sleep/key_corrector.sh 失败,退出状态为 1。

通过搜索,我遇到了一些类似的情况,(例如或者),但它们都没有提供任何帮助。我愿意接受任何能一劳永逸地解决这个问题的想法!

更多信息

  • 我正在使用 Ubuntu 18.04。
  • 它曾经能用一段时间。但我相信过了一段时间后autoremove它就坏了。
  • 我几乎是个菜鸟,更喜欢最简单的答案。bash 脚本或位置中是否存在任何错误

更新

所有这些方法的组合对我来说都很有效只要我不重启。不过,我不确定为什么以前没有,现在又为什么会这样。不过,仅供参考,这是我做的:

基于key_corrector.service,我制作了一个包含以下内容的服务:

[Unit]
Description=Corrects the key hopefully...
After=sleep.target
StopWhenUnneeded=yes

[Service]
Type=oneshot
User=arash
RemainAfterExit=yes
ExecStop=/home/arash/k.sh

[Install]
WantedBy=sleep.target

并通过以下方式激活它

sudo systemctl enable key_corrector

请注意,我必须User按照该答案的最后一条评论所示添加服务。此外,如所述这里必须k.sh通过以下方式使脚本(在我的情况下)可执行:

sudo chmod +x /home/arash/k.sh

最后,k.sh我不得不将 设置DISPLAY为零。此 bash 文件的完整污染如下:

#!/bin/sh
DISPLAY=:0.0 ; export DISPLAY
/usr/bin/xmodmap /home/arash/.Xmodmap

参照答案也是如此,我使用了每个命令的绝对路径。

相关内容