🔋 Как получать уведомление о состоянии аккумулятора, когда батарея полная или разряженная

by itisgood

Ноутбуки с Linux хороши для пользователей никсов, но они тоже разряжают батарею.

Я пробовал много операционных систем Linux, но у них не было длительного времени автономной работы, как у Windows.

Длительная зарядка аккумулятора приведет к его повреждению, поэтому отсоединяйте кабель питания, когда он заряжен на 100%.

Не существует приложения по умолчанию для уведомления о зарядке или разрядке аккумулятора, и вам необходимо установить стороннее приложение, которое уведомит вас.

Для этого я обычно устанавливаю приложение Battery Monitor, но оно устарело, поэтому я есть скрпит шелла для получения уведомления.

Состояние зарядки и разрядки аккумулятора ноутбука можно определить с помощью следующих двух команд.

Используя команду acpi.

$ acpi -b
Battery 0: Discharging, 71%, 00:58:39 remaining

Используя команду upower.

$ upower -i /org/freedesktop/UPower/devices/battery_BAT0 | grep -w 'state|percentage' | awk '{print $2}'
discharging
64%

Этот скрипт запускается в фоновом режиме при запуске и каждую минуту проверяет состояние батареи, а затем отправляет уведомление, когда уровень заряда батареи превышает 95% или аккумулятор разряжен менее 20%.

Предупреждение не сработает, пока аккумулятор не будет заряжен более чем на 20% или менее чем на 95%.\

$ sudo vi /opt/scripts/battery-status.sh

#!/bin/bash
while true
do
  battery_level=`acpi -b | grep -P -o '[0-9]+(?=%)'`
   if [ $battery_level -ge 95 ]; then
      notify-send "Battery Full" "Level: ${battery_level}%"
      paplay /usr/share/sounds/freedesktop/stereo/suspend-error.oga
    elif [ $battery_level -le 20 ]; then
      notify-send --urgency=CRITICAL "Battery Low" "Level: ${battery_level}%"
      paplay /usr/share/sounds/freedesktop/stereo/suspend-error.oga
  fi
 sleep 60
done

Когда скрипт будет готов, установите права на исполнение.

$ sudo chmod +x /opt/scripts/battery-status.sh
Наконец, добавьте скрипт в конец файла профиля пользователя.
Для всей системы вам необходимо добавить скрипт в файл /etc/profile.

Это позволяет системе запускать скрипт при запуске системы.

$ vi /home/magi/.profile

/opt/scripts/battery-status.sh &

Этот скрит похож на скрипт, показанный выше, но он отвечает за адаптер переменного тока.

Если ваш адаптер переменного тока подключен и аккумулятор заряжен более чем на 95%, он отправит уведомление со звуком, но уведомление не остановится, пока вы не отключите адаптер переменного тока.

Если вы отключите адаптер переменного тока, вы больше никогда не увидите это уведомление, пока заряд аккумулятора не упадет до 20%.

$ sudo vi /opt/scripts/battery-status-1.sh

#!/bin/bash
   while true
    do
       export DISPLAY=:0.0
       battery_level=`acpi -b | grep -P -o '[0-9]+(?=%)'`
       if on_ac_power; then
           if [ $battery_level -ge 95 ]; then
              notify-send "Battery Full" "Level: ${battery_level}% "
              paplay /usr/share/sounds/freedesktop/stereo/suspend-error.oga
           fi
       else
           if [ $battery_level -le 20 ]; then
              notify-send --urgency=CRITICAL "Battery Low" "Level: ${battery_level}%"
              paplay /usr/share/sounds/freedesktop/stereo/suspend-error.oga
           fi
       fi
     sleep 60
done

Когда скрипт будет готов, установите права на исполнение.

$ sudo chmod +x /opt/scripts/battery-status-1.sh
Наконец, добавьте скрипт в конец файла профиля пользователя.

Для всей системы вам необходимо добавить скрипт в файл /etc/profile.

$ vi /home/magi/.profile

/opt/scripts/battery-status-1.sh &

Перезагрузите вашу систему Linux, чтобы проверить!

$ sudo reboot

 

You may also like

2 комментария

Вячеслав 25.01.2021 - 21:16

man tlp

есть вполне рабочее решение, хотя и самостоятельное написание скриптов весьма полезно

Reply

Leave a Comment