Comment puis-je recevoir une alerte lorsque ma batterie est sur le sharepoint mourir dans Linux Mint?

Cela m'arrive plus que je ne l'avoue, mais parfois, je ne remarque pas que la puissance est faible puisqu'elle n'apparaît que dans ma barre d'état, puis l'ordinateur s'arrête. Je voudrais une grande alerte qui me prévient avant que cela arrive. Y a-t-il un moyen de m'alerter? Ubuntu a une window contextuelle qui vous indique qu'il est faible.

écrire un script!

battery_level=`acpi -b | grep -P -o '[0-9]+(?=%)'` if [ $battery_level -le 10 ] then notify-send "Battery low" "Battery level is ${battery_level}%!" fi 

puis cron il à courir toutes les quelques minutes ou plus. Mais oui, si vous pouvez le faire à travers l'interface graphique, c'est probablement une meilleure façon de le faire.

re: la réponse de hdgarrood, le fait de configurer cron pour exécuter notify-send s'est avéré être terriblement difficile. (Je pense que crontab -e persiste à travers les redémarrages par défaut, heureusement). J'ai suivi plusieurs guides, je ne suis pas sûr de ce qui a exactement corrigé à la fin, mais voici ma configuration complète pour exécuter le vérificateur toutes les 5 minutes:

$ crontab -e

 */5 * * * * sh /home/nrw/.notify-send_setup */5 * * * * sh /home/nrw/.battnotif 

$ cat .notify-send_setup

 #!/bin/bash touch $HOME/.dbus/Xdbus chmod 600 $HOME/.dbus/Xdbus env | grep DBUS_SESSION_BUS_ADDRESS > $HOME/.dbus/Xdbus echo 'export DBUS_SESSION_BUS_ADDRESS' >> $HOME/.dbus/Xdbus exit 0 

$ cat .battnotif

 #!/bin/bash export DISPLAY=:0 XAUTHORITY=/home/nrw/.Xauthority if [ -r "$HOME/.dbus/Xdbus" ]; then . "$HOME/.dbus/Xdbus" fi battery_level=`acpi -b | grep -P -o '[0-9]+(?=%)'` # I sortinged to only notify when not charging, but could not get it to work # STATUS=$(cat /sys/class/power_supply/ADP1/online) # if [ $battery_level -le 15 ] && [ $STATUS == "0" ] if [ $battery_level -le 15 ] then /usr/bin/notify-send -u critical "Battery low" "Battery level is ${battery_level}%!" echo 'batt low' >> /home/nrw/cron.log fi echo 'ran batt' >> /home/nrw/cron.log 

Assurez-vous de chmod +x les scripts bash.

Je fais maintenant courir ce qui suit:

 $ crontab -e */5 * * * * /home/<my username>/bin/checkLowBattery 
 $ cat /home/<my username>/bin/checkLowBattery #!/bin/bash POWERSUPPLY="/sys/class/power_supply/ACAD/online" # could be different on your system! TOO_LOW=20 # how low is too low? NOT_CHARGING="0" ICON="/usr/share/icons/ubuntu-mono-dark/status/24/battery-low.svg" # eye candy export DISPLAY=:0 BATTERY_LEVEL=$(acpi -b | grep -P -o '[0-9]+(?=%)') STATUS=$(cat $POWERSUPPLY) if [ $BATTERY_LEVEL -le $TOO_LOW -a $STATUS = $NOT_CHARGING ] then /usr/bin/notify-send -u critical -i "$ICON" -t 3000 "Battery low" "Battery level is ${BATTERY_LEVEL}%!" fi exit 0 

Comme vous pouvez le voir c'est juste le code orangenarwhals avec quelques changements:

  • pas de trucage dbus, en quelque sorte je n'en avais pas besoin
  • mettre quelques "constantes" dans les variables au début du code
  • implémenté des avertissements uniquement lorsque la batterie ne se charge pas (jetez un coup d'oeil au man test , il explique comment faire les AND, entre autres).
  • icône ajoutée (find des candidats sur votre système avec quelque chose comme: $ find /usr/share/icons/ -iname "*batt*low*" )
  • time d'expiration en millisecondes

n'oubliez pas de chmod +x vos scripts, vous pouvez alors les exécuter directement à partir de cron (onglet), pas besoin de sh .

(Cela fonctionne sur Ubuntu en utilisant Xmonad.)

L'option notify-send n'était pas disponible (le packageage libnotify-bin n'est pas installé), mais j'ai trouvé cela utile pour l'alerte:

 xmessage Battery low & mplayer /usr/lib/libreoffice/share/gallery/sounds/beam.wav 

Je viens de jeter cela dans la command d'alarme du panneau de batterie Monitor de LXDE, pas besoin d'un script.

Cela suppose que vous avez installé LibreOffice, mais que .wav fait un son de faible puissance. Il n'y a pratiquement pas de .ogg sur Knoppix.

J'ai eu le même problème et j'ai trouvé une solution de contournement. J'ai installé à partir de référentiels Linux Mint une application appelée GKrellM. Il surveille beaucoup de choses sur votre machine et il y a la batterie. Configuration avec des alarmes, ça fonctionne pour moi comme un charme.

plus d'infos sur:

http://www.gkrellm.net/

Le problème est lié à l'environnement KDE. J'ai le même problème avec MintMAYA KDE_version. Quand j'ai travaillé avec Mint9_Gnome, une pop-up très utile est apparue quand un certain niveau de faible puissance a été atteint (configuration automatique out_of_the_box sur les nouvelles installations). Très très ennuyeux étant arrêté sans conseil et aucune aide fondée même googling beaucoup 🙁

Puisque vous utilisez apparemment Cinnamon, il vous suffit d'installer Battery Applet avec Monitoring and Shutdown (BAMS) .

Faites un clic droit sur un panneau → + Ajouter des applets au panneauApplets disponibles (en ligne) , tapez «BAMS» dans le widget de search, puis installez-le et configurez-le.

Ce n'est pas le plus flashy, mais jusqu'à présent, il m'a déjà alerté lorsque j'ai débranché mon ordinateur portable.

J'ai le même problème et c'est vraiment frustrant. J'ai résolu en utilisant le script BatteryAlert.sh :

 #!/bin/bash BATTERY=$(upower -e | grep 'BAT') while [ 1 ] do BATTERY_PERCENTAGE=$(upower -i $BATTERY|grep percentage|awk '{ print $2 }'|sed s/'%'/''/g) CABLE=$(upower -d | grep -n2 line-power | grep online | awk '{ print $3 }') if [[ "$BATTERY_PERCENTAGE" -lt "10" && $CABLE = "no" ]]; then notify-send --urgency=critical "WARNING: Battery is about to die" "Plug in the power cable" play /usr/share/sounds/KDE-Sys-Warning.ogg &> /dev/null fi sleep 10 done 

J'utilise KDE mais vous pouvez l'utiliser avec tous les environnements de bureau. Vous n'avez pas à exécuter cela en tant qu'user root ou devenir fou avec la syntaxe crontab. Vous devez seulement changer le son de notification si vous voulez une alerte sonore. Si vous ne souhaitez pas démarrer automatiquement le script lorsque l'environnement de bureau démarre, placez le script dans le dossier $ USER / bin avec le script BatteryAlertLauncher.sh :

 #!/bin/bash function getRunningProcesses { ps -aux | grep -v grep | grep BatteryAlert.sh } if [[ -n "$(getRunningProcesses)" ]] ; then exit fi BatteryAlert.sh& 

Assurez-vous qu'ils sont exécutables:

 chmod u+x $USER/bin/BatteryAlert* 

Ensuite, exécutez la command suivante:

 ln -s /home/$(USER)/bin/BatteryAlertLauncher.sh .config/autostart/ 

Vous pouvez également exécuter le script d'alerte manuellement à partir de bash en entrant cette command:

 BatteryAlertLauncher.sh 

Comme je n'ai pas installé Gnome Shell ou Cinnamon, je ne peux pas être d'une aide directe car l'access à la source pourrait être très pratique puisqu'il est assez facile d'append une extension aussi rudimentaire avec JavaScript.

Vous devriez ouvrir:

/usr/share/cinnamon/js/ui/status/power.js

et chercher pour le pourcentageText – par la suite, vous devriez être en mesure d'append un message ou une alerte pop-up.

Voici comment je l'ai fait sur mon Arch linux avec Gnome comme DE:

 #!/bin/bash eval "export $(egrep -z DBUS_SESSION_BUS_ADDRESS /proc/$(pgrep -u $LOGNAME gnome-session)/environ)"; battery_level=`acpi -b | grep -P -o '[0-9]+(?=%)'` STATUS=$(cat /sys/class/power_supply/ACAD/online) if [ $battery_level -le 15 ] && [ $STATUS == "0" ] then /usr/bin/notify-send -u critical "Battery low" "Battery level is ${battery_level}%!" fi 

Le mot ACAD dans STATUS=$(cat /sys/class/power_supply/ACAD/online) va changer en fonction de la marque de l'ordinateur portable. Il est utilisé pour déterminer si votre tour est branché sur un adaptateur CA ou non. Voici comment mon crontab ressemble:

 * * * * * bash <path to script> 

N'oubliez pas de rendre le script exécutable avec chmod u+x <path to script>

Ce simple fonctionne bien pour moi, avec juste un simple package acpi nécessaire pour être installé (pas de deamons, environnement de bureau spécifique ou similaire).

Dans votre crontab user ( crontab -e ) mettre ce qui suit (tout en une ligne, il est divisé pour la lisibilité ici):

 */3 * * * * acpi --battery | awk -F, '/Discharging/ { if (int($2) < 15) print }' | xargs -ri env DISPLAY=:0 zenity --warning --text "battery low\n{}" 

Il vérifie le niveau de la batterie ( acpi --battery ) et si vous n'êtes pas connecté au chargeur ( /Discharging/ ) et si la batterie est < 15 %, il affichera toutes les 3 minutes ( */3 ) bug vous.

Au lieu de zenity, vous pouvez plutôt utiliser xmessage (sur une machine vraiment spartiate) ou même quelque chose comme aplay -q /usr/lib/libreoffice/share/gallery/sounds/cow.wav pour les notifications audio (qui ont l'avantage de ne pas interrompre la frappe de votre keyboard, et fonctionnera même pour les ordinateurs portables multi-users avec plusieurs sessions, où DISPLAY=:0 hack échouerait)

Si vous devez également suspendre / hibernate la machine à un niveau critique, voir cette réponse

Téléchargez une applet appelée BAMS. Il vous alertera automatiquement lorsque la batterie atteint un certain niveau décidé par vous. C'est la solution la plus simple.