Уведомление о низком заряде батареи [дубликат]

На этот вопрос уже есть ответ здесь:

У меня Ubuntu 16.04 LTS на Lenovo z5170. Я хочу иметь программу (не важно, на каком языке программирования), которая уведомляет меня о разрядке батареи звуковым сигналом. Я предполагаю, что программа должна спать до того момента, когда у меня закончится заряд батареи (10% энергии), но все, что я могу придумать, это цикл while, который съедает весь процессор и не дает работать всему остальному.

1- Как мне реализовать такую программу?

2- Какие есть способы оповещения пользователей о конкретных событиях?

2
задан 15 October 2016 в 02:33

1 ответ

В дополнение к предложенным повторяющимся методам, что можно сделать, это:

Найдите свой путь интерфейса батареи через upower -enumerate:

bash-4.3$ upower --enumerate
/org/freedesktop/UPower/devices/line_power_ACAD
/org/freedesktop/UPower/devices/battery_BAT1
/org/freedesktop/UPower/devices/DisplayDevice

Затем используйте upower --show-info и прохождение его вывод. В моем примере, который был бы похож так:

bash-4.3$ upower --show-info /org/freedesktop/UPower/devices/DisplayDevice | awk '/percentage/{gsub(/\%/,""); print $2}'
100

Все, что необходимо сделать теперь, использование простой сценарий, чтобы выдержать сравнение, если то выходное значение меньше чем или равно определенному порогу

#!/bin/bash

get_percentage()
{
     # Note, | \ must have only new line after it, no space
     upower --show-info /org/freedesktop/UPower/devices/battery_BAT1 |\
     awk '/percentage/{gsub(/\%/,""); print $2}'
}

main()
{
    while true
    do
        pcent=$(get_percentage)
        [ $pcent -le 10  ] && notify-send "Battery Low" "Please plug in charger"
        sleep 60 # check every minute
    done
}
main

Что касается уведомления через звуковой сигнал, Вы могли использовать aplay команда и любой звуковой файл вместо notify-send. Если у Вас нет GUI, можно также использовать wall управляйте как так wall <<< "Battery low" и это распечатает для экранирования сообщения.Примечание: из-за недавних обновлений в gnome-terminal это не работает в gnome-terminal, но в TTYs и других эмуляторах терминала это все еще делает

1
ответ дан 2 December 2019 в 04:53

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

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