Как включить уведомление о сбое питания?

Мне нужно включить уведомления о сбое питания (AC) (в автономном режиме) и о включении питания (в режиме онлайн), например, это уведомление:

Enter image description here![

I искал и пытался это сделать, но я не нашел успешных статей. Я использую эти команды для контроля моего адаптера переменного тока:

acpi- a

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

Но я не знаю, как написать уведомление о коде.

Могу ли я написать скрипт оболочки, подобный следующему?

#!/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
4
задан 26 April 2015 в 23:59

2 ответа

Сценарий оболочки ниже работ для питания переменным током обновляет как включенный и включенный. Необходимо выполнить этот код при запуске; это работает в бесконечном цикле.

#!/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, как Вы желаете.

3
ответ дан 26 April 2015 в 23:59

Согласно ответу Sudheer я записал другой сценарий оболочки, и он хорошо работает на Ubuntu  14.04 (Испытанный Тар) с 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
0
ответ дан 26 April 2015 в 23:59

Другие вопросы по тегам:

Похожие вопросы: