Встановіть acpiпакет. Тепер поставте це return0whencharging.shі зробіть його виконуваним:
#!/bin/sh
acpi -V
if cat /proc/acpi/battery/BAT1/state | grep "charging state" | grep -vE ":[\t ]*charging$"; then
exit 1
else
exit 0
fi
Якщо ви echo -e "\a"видаєте звук, почніть це, коли хочете переглянути стан акумулятора:
watch --beep return0whencharging.sh
Якщо він не робить ніяких звуків або ви хочете повідомлення і більш тривогу , ніж будь-який годинник можуть надати, встановити libnotify-binі mpvі використовувати замість цього:
while return0whencharging.sh; do sleep 1; done; notify-send "Finished charging" && mpv -loop /usr/share/sounds/freedesktop/stereo/alarm-clock-elapsed.oga
Пояснення :
Якщо ви подивитеся на сторінку man для grep, ви побачите, що це -vвідміняє відповідність, а отже, і код повернення / статусу. -Eозначає, що це регулярний вираз. [\t ]в регулярному виразі (регулярний вираз) означає «вкладку або простір». Наступна зірка означає, що це "вкладка або пробіл 0 або більше разів". Кінцевий "$" означає, що він повинен відповідати кінці рядка. Підсумковий grepозначає, що рядки НЕ закінчуються на ":", будь-яка кількість вкладок або пробілів, а потім "зарядка" і кінець рядка повинні зробити grepвихід із кодом статусу 0. Це означає, що grepповерне 1, доки комп'ютер не буде зарядка. ifЧи виконає це перший філія , коли код стану 0,grepexit 1коли grep виходить з 0 і exit 0коли grep існує ненульовий.