19 votes

Battery Monitor pour Ubuntu 20.04

Hier encore, j'ai migré d'Ubuntu 18.04 vers Ubuntu 20.04. Dans la version 18.04, il y avait un logiciel appelé "Battery Monitor" qui surveille le pourcentage de votre batterie et vous avertit lorsque celui-ci atteint un niveau faible.

J'ai essayé de l'installer dans 20.04 mais il semble qu'il n'ait pas été rendu compatible pour lui ou peut-être que je fais quelque chose de mal...

Quelqu'un peut-il m'aider ou me trouver une alternative ?

Mon besoin le plus important est d'être averti lorsque le pourcentage de ma batterie passe en dessous d'un certain chiffre.

Merci.

19voto

hoatzin Points 264

J'ai Ubuntu Budgie 20.04 et cela a fonctionné pour moi :

cd /etc/UPower
sudo nano UPower.conf

Si vous définissez UsePercentageForPolicy=true puis modifiez les lignes de pourcentage à votre convenance, par exemple :

PercentageLow=50
PercentageCritical=35

Si vous préférez une approche basée sur le temps, définissez UsePercentageForPolicy à faux et définissez les options de notification de l'heure à votre convenance, par exemple :

TimeLow=1200
TimeCritical=300

Appuyez sur ctrl+X pour enregistrer le fichier UPower.conf et fermer l'éditeur nano.
Redémarrer l'ordinateur ou sudo systemctl restart upower pour que les changements prennent effet.

En faisant cela, j'ai pu obtenir les notifications de batterie faible et critique. La notification contextuelle ne s'affiche que pendant environ 2 secondes. Voici à quoi elle ressemble : enter image description here

2voto

Ensei_Tankado Points 21

Après de nombreuses recherches, voici un script qui fonctionne parfaitement - et donne des notifications persistantes pour les batteries hautes et basses ;)

Procédure

  1. Stockez le script (écrit ci-dessous) dans un dossier (comme un dossier nommé script dans le répertoire personnel).
  2. Ouvrez le terminal et tapez : crontab -e
  3. Ajoutez cette ligne pour exécuter le script automatiquement toutes les 2 minutes : (Note : J'ai gardé le nom du script comme notifications de la batterie)

/2 * * * * bash /home/garmadon/scripts/battery-notifications.sh

  1. Pulse Ctrl + x et ensuite entrez pour quitter et sauvegarder la crontab.
  2. Déconnectez-vous et connectez-vous au système (ou redémarrez) pour voir l'effet.

Le 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. Je suis sur ubuntu 20.04
  2. J'ai gardé 85% et 45% comme niveau de notification, vous pouvez les modifier en fonction de vos besoins.
  3. Ce script donne des notifications persistantes qui ne disparaîtront que si vous cliquez dessus. Cela s'avère pratique si vous êtes loin de votre ordinateur portable et vous évite ainsi de manquer le rappel.

1voto

Nick Clark Points 11

Une légère variation sur La réponse de Ensei_Tankado qui n'entraîne pas l'accumulation de notifications multiples.

Même procédure, différent 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" ]; 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

0voto

Ferroao Points 521

Je suis arrivé à cette solution de rechange :

Fonctionne dans ubuntu 20

Dépendances

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. Télécharger la source

cd ~/Downloads/
wget https://github.com/maateen/battery-monitor/archive/master.zip
unzip master.zip
cd battery-monitor-master/

2. Modification du 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. Installer en tant que root

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

4. Exécuter en tant que non-root

nohup battery-monitor &

5. Un correctif dans Notification.py pour le bon fonctionnement de l'avertissement supérieur.

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)

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

0voto

Tim Points 1

Cela pourrait être lié au fait que j'ai fini par chercher comment restaurer l'indicateur de batterie.

$ sudo systemctl restart upower

Le job pour upower.service a échoué car un signal fatal a été délivré au le processus de contrôle. Voir "systemctl status upower.service" et "journalctl -xe" pour plus de détails.

$ systemctl --failed

UNITÉ CHARGE ACTIVE SOUS DESCRIPTION
upower.service loaded failed failed Daemon pour la gestion de l'énergie

J'ai donc dû installer

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

et maintenant le service a commencé et l'indicateur de batterie est de retour

$ sudo systemctl start upower

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X