恢复后运行脚本时出现问题

恢复后运行脚本时出现问题

我正在尝试在从挂起状态恢复后运行一个脚本。我需要这个脚本来禁用触摸板上的右键单击并修复我的 wifi 问题。因此如何在恢复后和解锁屏幕后运行脚本我在 /etc/pm/sleep.d 中放置了一个名为 autorun.sh 的脚本:

#! /bin/bash 
case "$1" in
hibernate|suspend)
    sudo -u giorgio env DISPLAY=:0 zenity --info synclient TapButton2=0
    sudo -u giorgio env DISPLAY=:0 zenity --info modprobe iwlagn 11n_disable=1
    exit
    ;;
thaw|resume)
    sudo -u giorgio env DISPLAY=:0 zenity --info synclient TapButton2=0
    sudo -u giorgio env DISPLAY=:0 zenity --info modprobe iwlagn 11n_disable=1
exit
;;
esac
exit

问题是,当我恢复时,我意识到脚本实际上并没有起作用(右键单击没有被禁用)并且在日志文件 /var/log/pm-suspend.log 中我有以下几行:

Running hook /etc/pm/sleep.d/autorun.sh resume suspend:

(process:15304): Gtk-WARNING **: Locale not supported by C library.
        Using the fallback 'C' locale.

(process:15310): Gtk-WARNING **: Locale not supported by C library.
        Using the fallback 'C' locale.

我遗漏了什么?提前致谢。

答案1

尝试这个:

#!/bin/bash 
case "$1" in
    hibernate|suspend|thaw|resume)
        export DISPLAY=:0.0
        sudo -u giorgio synclient TapButton2=0
        sudo -u giorgio modprobe iwlagn 11n_disable=1
        ;;
esac

一些东西。

  • 您的case语句有两个分支,但它们都执行相同的操作,因此我将其缩短为单个分支。我认为除了 之外您没有其他选择hibernate|suspend|thaw|resume,但为了以防万一,我将其保留在那里。
  • 根据我的评论,你不需要exit
  • 我不是 100% 确定它的env DISPLAY=:0作用是什么,但是我用我知道有效的东西(并且更简洁)替换了它。
  • 根据我的评论,zenity是为了创建对话框,所以我认为你一定在某些地方有点困惑。

相关内容