如何启用断电通知?

如何启用断电通知?

我需要启用电源(AC)故障(离线)和电源开启(在线)通知,例如此通知:

在此输入图片描述![

我搜索并尝试这样做,但没有找到任何成功的文章。我使用以下命令来监控我的交流适配器:

acpi- a

echo ac_adapter=$(acpi -a | cut -d' ' -f3 | cut -d- -f1)

但我不知道如何在代码上写通知。

我可以编写如下的 shell 脚本吗?

#!/bin/bash

power=ac_adapter=$(acpi -a | cut -d' ' -f3 | cut -d- -f1)
s1="$power"


if [ "$s1" = "off-line" ]; then

    notify-send  --urgency=low "Power Manager" "Power Down" -i battery_low
    echo "notification: off" >~/.scripts/notification

else
  if [ $s1 = "on-line" ]; then
    notify-send  --urgency=normal "Power Manager" "Power Up" -i battery_full

  fi
fi

答案1

下面的 shell 脚本适用于交流电源更新,如插入和拔出。您应该在启动时运行此代码;它会无限循环运行。

#!/bin/bash

old="$(upower -i /org/freedesktop/UPower/devices/line_power_AC | fgrep online | awk '{print $2}')"
while sleep 1; do
    new="$(upower -i /org/freedesktop/UPower/devices/line_power_AC | fgrep online | awk '{print $2}')"
    if [ "$new" != "$old" ]; then
        if [ "$new" == "yes" ]; then
            notify-send --icon=gnome-power-manager "AC power on"
        elif [ "$new" == "no" ]; then
            notify-send --icon=gnome-power-manager "Battery power on"
        fi
    fi
    old="$new"
done

notify-send按您的意愿编辑。

答案2

根据 Sudheer 的回答,我编写了另一个 shell 脚本,它在 Ubuntu 14.04 (Trusty Tahr) 上使用notify-send -t选项运行良好。当我添加--expire-time=TIME它时它不起作用,但notify-send -t 30运行正常。为什么?

这是我的脚本:

#!/bin/bash

stat=$(acpi -a | cut -d' ' -f3 | cut -d- -f1)


if [ "$stat" == 'on' ];then
a=yes
elif [ "$stat" == 'off' ];then
a=no
fi

while true; do

    stat=$(acpi -a | cut -d' ' -f3 | cut -d- -f1)

    if [ "$stat" != "$a" ]; then
        if [ "$stat" == "on" ];then
            notify-send -t 30 --icon=gpm-ac-adapter "AC power on"
        elif [ "$stat" == "off" ];then
            notify-send -t 30 --icon=notification-power-disconnected "AC Power Off Battery power on"
        fi
    fi
    a=$stat
    sleep 1
done

相关内容