- Battery Monitor for Ubuntu 20.04
- 5 Answers 5
- Procedure
- The script
- Note:
- Dependencies
- 1. Download source
- 2. Modification of Makefile
- 3. Install as root
- 4. Run as non-root
- 5. A fix in Notification.py for the proper working of upper warning
- Как отслеживать и контролировать использование батареи ноутбука в Linux
- Монитор виртуального рабочего стола
- монитор батареи
- Установите Battery Monitor
- настройки
- Уведомления
- PowerTop
Battery Monitor for Ubuntu 20.04
Just yesterday I migrated from Ubuntu 18.04 to Ubuntu 20.04. In 18.04 there was a software called «Battery Monitor» that monitors your battery percentage and notifies you when your battery percentage as reached low level. I tried to install it in 20.04 but it seems it was not made compatible for it or maybe I am doing something wrong. Can anyone please help me with this or find me an alternative? My most important need is to be notified when my battery percentage goes below a certain number. Thank you
5 Answers 5
I have Ubuntu Budgie 20.04 and this worked for me:
cd /etc/UPower sudo nano UPower.conf
If you set UsePercentageForPolicy=true then edit the percentage lines to your liking, such as:
PercentageLow=50 PercentageCritical=35
If you prefer a time based approach then set UsePercentageForPolicy to false and set the time notification options to your liking, such as:
TimeLow=1200 TimeCritical=300
Hit ctrl+X to save the UPower.conf file and close out of nano editor.
Reboot computer or sudo systemctl restart upower for changes to take effect.
By doing this I was able to get the low and critical battery notifications. The pop-up notification only displays for about 2 seconds. Here is what it looks like:
A battery critical notification which only displays for two seconds is not very useful. Can it be made persistent?
A slight variation on Ensei_Tankado’s answer that doesn’t result in multiple notifications piling-up.
Same Procedure, different Script:
#!/bin/bash export XDG_RUNTIME_DIR=/run/user/$(id -u) V1="Charging" V2=$(grep -w "Charging" /sys/class/power_supply/BAT0/status) V3=$(grep -Eo '2' /sys/class/power_supply/BAT0/capacity) if [ "$V1" = "$V2" ]; then rm -f "/tmp/battery-notification-low" if [ "$V3" -ge 80 ] && [[ ! -f "/tmp/battery-notification-high" ]]; then touch "/tmp/battery-notification-high" notify-send -u critical "Battery High" "Remove Charger" fi fi U1="Discharging" U2=$(grep -w "Discharging" /sys/class/power_supply/BAT0/status) if [ "$U1" = "$U2" ]; then rm -f "/tmp/battery-notification-high" if [ "$V3" -le 40 ] && [[ ! -f "/tmp/battery-notification-low" ]]; then touch "/tmp/battery-notification-low" notify-send -u critical "Battery Low" "Plug in Charger" fi fi
After a lot of research, here’s a script that works perfectly — and gives persistent notifications for both high and low battery 😉
Procedure
- Store the script (written below) in some folder (like a folder named scripts in the home directory)
- Open terminal and type: crontab -e
- Add this line to run the script automatically every 2 minutes: (Note: I’ve kept the script’s name as battery notifications)
/2 * * * * bash /home/garmadon/scripts/battery-notifications.sh
- Press Ctrl + x and then enter to exit and save the crontab.
- Log out and log into the system (or restart) to see the effect.
The script
#!/bin/bash export XDG_RUNTIME_DIR=/run/user/$(id -u) V1="Charging" V2=$(grep -w "Charging" /sys/class/power_supply/BAT0/status) V3=$(grep -Eo '1' /sys/class/power_supply/BAT0/capacity) if [ "$V1" = "$V2" ] && [ "$V3" -ge 85 ]; then notify-send -u critical "Remove Charger!" fi U1="Discharging" U2=$(grep -w "Discharging" /sys/class/power_supply/BAT0/status) if [ "$U1" = "$U2" ] && [ "$V3" -le 45 ]; then notify-send -u critical "Plug in Charger!" fi
Note:
- I’m on ubuntu 20.04
- I’ve kept 85% and 45% as the notification level, you can modify them according to your needs.
- This script gives persistent notifications that won’t go away until you click on them. This comes in handy if you are away from your laptop and hence prevents you from missing the reminder.
Learn more about cron here:
Thanks for these instructions! On Ubuntu 22.04, crontab didn’t accept /2. so might need to use */2. instead (or just *. for every minute).
Could be very related as i ended up looking into how to restore battery indicator
$ sudo systemctl restart upower
Job for upower.service failed because a fatal signal was delivered to the control process. See «systemctl status upower.service» and «journalctl -xe» for details.
UNIT LOAD ACTIVE SUB DESCRIPTION
● upower.service loaded failed failed Daemon for power management
$ sudo apt install systemd:amd64 systemd-timesyncd:amd64
and now service started and battery indicator is back
$ sudo systemctl start upower
I came to this workaround:
Dependencies
sudo apt install gir1.2-appindicator3-0.1 acpi libappindicator3-1 sudo apt install libnotify4 libgirepository1.0-dev libcairo2 python3 -m pip install pycairo
1. Download source
cd ~/Downloads/ wget https://github.com/maateen/battery-monitor/archive/master.zip unzip master.zip cd battery-monitor-master/
2. Modification of Makefile
nano Makefile (3 changes) # 1. change sh in first line to bash # 2. change from: PREFIX ?= /usr # to: PREFIX ?= /home/USERNAME/.local # 3 change python version in two! lines # from: python setup.py clean/install # to: python3 setup.py clean/install
3. Install as root
sudo su export PYTHONPATH=/home/USERNAME/.local/lib/python3.8/site-packages/ make install exit
4. Run as non-root
5. A fix in Notification.py for the proper working of upper warning
I know it is odd but, I had to fix this: # ↓↓↓ your python version of install ↓↓↓ your python version sudo nano /home/USERNAME/.local/lib/python3.8/site-packages/battery_monitor-0.0.0-py3.8.egg/battery_monitor/Notification.py # change the old lines with the new ones elif state == 'charging': NEW if (percentage >= self.upper_threshold_warning and OLD if (percentage != self.last_percentage and remaining != "discharging at zero rate - will never fully discharge" and self.last_notification != "upper_threshold_warning"): self.last_percentage = percentage NEW self.last_notification = "upper_threshold_warning" OLD self.last_notification!="upper_threshold_warning" self.show_notification(type="upper_threshold_warning", battery_percentage=percentage, remaining_time=remaining)
Как отслеживать и контролировать использование батареи ноутбука в Linux
У Linux и портативного управления батареями сложное прошлое. В течение многих лет Linux довольно плохо справлялся с временем автономной работы. Отчасти это связано с тем, что такой огромный объем работы, который выполняется в Linux, уходит на серверное пространство. Потому что также сложно угадать, какую конфигурацию создаст пользователь. Вы запускаете Plasma на Gentoo и компилируете программное обеспечение с нуля? Попрощайтесь с временем автономной работы. У вас на ноутбуке установлена Ubuntu с LXQT? У вас есть хорошие шансы сохранить эту батарею на какое-то время.
Какая бы конфигурация ноутбука ни выглядела, лучшее, что вы можете сделать, чтобы он продолжал работать без серьезных перебоев, — это полностью разряженная батарея. И чем больше вы понимаете, что происходит с аккумулятором вашего ноутбука, тем больше контроля вы сможете им контролировать.
Есть много отличных вариантов для мониторинга использования батареи ноутбука и сокращения энергоемких процессов. Все они охватывают несколько разные области, но при совместном использовании вы можете получить полное представление о ситуации.
Монитор виртуального рабочего стола
Каждая среда рабочего стола поставляется с собственным программным обеспечением для мониторинга заряда батареи. При установке Linux на ноутбук эти приложения обычно настраиваются и отображаются по умолчанию. Это, безусловно, относится к Ubuntu.
В минимальных настольных средах этот апплет может быть просто измерителем, который обновляется, чтобы показать текущий уровень заряда батареи. В более мощных средах рабочего стола, таких как GNOME, вы также должны получать обновления уведомлений, когда батарея разряжается и когда ее срок службы приближается к концу.
Эти виртуальные экраны — первая линия защиты. Следите за ним и убедитесь, что вы не в опасной зоне.
монитор батареи
Если вам нужен больший контроль над уведомлениями об уровне заряда батареи, вы можете установить дополнительное программное обеспечение, чтобы получить более подробный контроль над уведомлениями об уровне заряда батареи. Battery Monitor еще не включен ни в один из дистрибутивов, но его легко установить и использовать.
Установите Battery Monitor
Сначала установите зависимости.
sudo apt install build-essential python3 python3-gi libnotify-dev acpi
Затем скачайте самые свежие исходники.
cd Downloads wget https://github.com/maateen/battery-monitor/archive/master.zip
Разархивируйте его в полученный каталог.
unzip master.zip cd battery-monitor-master
настройки
Теперь вы можете получить доступ как к Battery Monitor, так и к его настройкам через среду рабочего стола. Сначала откройте настройки.
В окне настроек этого не так много, и оно не слишком сложное. Он позволяет вам установить уровень заряда батареи, о котором он будет уведомлять вас. Все числа в процентах. Установите столько настраиваемых предупреждений, сколько хотите.
Уведомления
Как видите, Battery Monitor будет отправлять вам уведомления, когда ваш компьютер отключен, в дополнение к установленным вами предупреждениям.
Он также будет отправлять уведомления, когда ваш компьютер заряжается и когда он полностью заряжен.
Статистика мощности GNOME
Если вы используете рабочий стол GNOME, у вас уже есть еще один хороший инструмент для отслеживания энергопотребления и отображения его в виде графика. Это инструмент GNOME Power Statistics. Если вы не используете GNOME, вы можете легко установить его.
sudo apt install gnome-power-manager
Когда вы откроете GNOME Power Statistics, вы увидите список устройств в правой части окна. Выберите свой аккумулятор. Сначала вы увидите кучу информации о батарее. Некоторые из них полезны, но большинство из них не совсем то, что вам сейчас нужно.
Щелкните вкладку История. Это покажет вам больше о том, как ваш ноутбук обращается с аккумулятором. Во-первых, установите длину, которая имеет смысл. Если вы установите только диспетчер питания, есть вероятность, что вы сможете работать только с 10-минутными интервалами, пока не будет достаточно времени для сбора дополнительных данных.
Просмотрите различные диаграммы. Он покажет вам такие вещи, как общая ставка и ставка платы за выписку. Они также предоставят вам информацию о том, сколько времени требуется для включения аккумулятора и сколько времени требуется для полной зарядки.
PowerTop
Всегда полезно знать, что является самым мощным в вашей системе. Некоторые процессы могут убить батарею без вашего ведома. Это могут быть даже вещи, которыми вы не пользуетесь.
Большинство пользователей Linux знакомы с Top, инструментом, который отслеживает, какие приложения используют больше всего системных ресурсов. Существует похожий на Top инструмент, который отслеживает расход заряда батареи, который называется PowerTop. PowerTop уже установлен в вашей системе, но вы все равно можете установить его достаточно легко.
sudo apt install powertop
Затем просто запустите PowerTop, чтобы увидеть, какие процессы являются наиболее серьезными нарушителями.
Как и «Сверху», в нем будут перечислены процессы в зависимости от количества потребляемой вами энергии. Вы можете взглянуть и увидеть, есть ли что-нибудь, что вы можете закрыть или убить в своей системе.
Если просмотр PowerTop вам не нравится, вы всегда можете вывести его в HTML-файл, который можно открыть в браузере, чтобы получить более подробный сводный отчет.
sudo powertop --html = report.html
Надеюсь, с любой комбинацией этих инструментов вы лучше поймете использование батареи ноутбука. Помните, что ни один инструмент не является полностью точным, поэтому обычно лучше всего использовать комбинацию этих инструментов. Если вы заметили, что ваш компьютер по-прежнему работает очень быстро, подумайте о более легкой среде рабочего стола или даже о других настройках для вашего графического процессора. Как и в большинстве мобильных устройств, экраны и графика играют огромную роль в ноутбуках.