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

Моя батарея ноутбука сосет и длится до 5 минут без зарядки. Иногда зарядное устройство выпадает без моего ведома, заставляя компьютер неожиданно отключиться.

Есть ли способ получить уведомление в тот момент, когда мой зарядник выпадет? не когда батарею нужно заряжать, как это делает Ubuntu (потому что это не работает для моего ноутбука, и я отказался от этой идеи)

1
задан 5 October 2014 в 06:20

1 ответ

Это выглядит довольно просто, я не эксперт по сценарию bash, но, возможно, может быть вам полезен

# sh script.sh

Содержимое script.sh:

#! /bin/bash

power=$(cat /sys/class/power_supply/BAT1/status)

while true; do
  actual=$(cat /sys/class/power_supply/BAT1/status)

  if [ $actual != $power ]; then
     power=$actual
     notify-send $actual
  fi
done

В основном, я читаю файл на sysfs, который имеет информацию о вашей батарее, есть больше информации, которая может быть интересной. Файл status содержит флаг, указывающий, действительно ли ваше устройство заряжается или разряжается. Надеюсь, что это поможет вам.

3
ответ дан 24 May 2018 в 03:08
  • 1
    Вам не нужно сохранять последний статус power=$(cat /sys/class/power_supply/BAT1/status). просто сравните $temp !="Charging". Ты хороший ;) – αғsнιη 4 October 2014 в 22:08
  • 2
    Но таким образом я могу получать уведомления, когда источник питания подключен и когда он отключен. – Eliezer 4 October 2014 в 22:10
  • 3
    Эта строка actual=$(cat /sys/class/power_supply/BAT1/status) проверяет, подключен ли источник питания («Зарядка») или «Выброс», и цель «если батарея не заряжается», тогда вам нужно только проверить actual=$(cat /sys/class/power_supply/BAT1/status) и сравнить ее с " Зарядка ", если они не равны, то мы будем знать, что батарея не заряжается. оба пути правильны . и еще одно, замените $temp на $actual – αғsнιη 4 October 2014 в 22:28
  • 4
    Также может возникнуть проблема с жестким кодом, чтобы посмотреть на BAT1 ... В моей системе, например, батарея находится в BAT0. Поэтому я думаю, что другой ответ с использованием команды acpi может быть более элегантным / универсальным – Daniel W. 4 October 2014 в 23:49

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

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