TransWikia.com

Battery Monitor for Ubuntu 20.04

Ask Ubuntu Asked by Abdullah Omar on December 19, 2021

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

4 Answers

After a lot of research, here's a script that works perfectly - and gives persistent notifications for both high and low battery ;)

Procedure

  1. Store the script (written below) in some folder (like a folder named scripts in the home directory)
  2. Open terminal and type: crontab -e
  3. 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

  1. Press Ctrl + x and then enter to exit and save the crontab.
  2. 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 '[0-9]{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:

  1. I'm on ubuntu 20.04
  2. I've kept 85% and 45% as the notification level, you can modify them according to your needs.
  3. 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.

Answered by Ensei_Tankado on December 19, 2021

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.

$ systemctl --failed

UNIT LOAD ACTIVE SUB DESCRIPTION
● upower.service loaded failed failed Daemon for power management

so i had to install

$ sudo apt install systemd:amd64 systemd-timesyncd:amd64

and now service started and battery indicator is back

$ sudo systemctl start upower

Answered by Tim on December 19, 2021

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: enter image description here

Answered by hoatzin on December 19, 2021

I came to this workaround:

Works in ubuntu 20

Dependencies

sudo apt install gir1.2-appindicator3-0.1
sudo apt install acpi
sudo apt install libappindicator3-1
sudo apt install libnotify4
sudo apt install libgirepository1.0-dev
sudo apt install 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 (two lines to modify!)

# from: 
python setup.py 
# to:
python3 setup.py 

3. Install as root

sudo su
export PYTHONPATH=/home/USERNAME/.local/lib/python3.8/site-packages/
make install
exit

4. Run as non-root

nohup battery-monitor &

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)

Related: https://www.linuxquestions.org/questions/slackware-14/help-to-build-libindicator-libappindicator-for-battery-monitor-4175668385/

Answered by Ferroao on December 19, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP