Ubuntu 20.04 电池监视器

Abd*_*mar 14 battery notification power-management 20.04

就在昨天,我从 Ubuntu 18.04 迁移到了 Ubuntu 20.04。在 18.04 中有一个名为“电池监视器”的软件,它可以监控您的电池百分比并在您的电池百分比达到低水平时通知您。

我试图在 20.04 安装它,但它似乎不兼容,或者我做错了什么......

任何人都可以帮我解决这个问题或给我找一个替代方案吗?

我最重要的需求是在我的电池百分比低于某个数字时收到通知。

谢谢

小智 13

我有 Ubuntu Budgie 20.04,这对我有用:

cd /etc/UPower
sudo nano UPower.conf
Run Code Online (Sandbox Code Playgroud)

如果您设置UsePercentageForPolicy=true然后根据您的喜好编辑百分比线,例如:

PercentageLow=50
PercentageCritical=35
Run Code Online (Sandbox Code Playgroud)

如果您更喜欢基于时间的方法,则设置UsePercentageForPolicy为 false 并根据您的喜好设置时间通知选项,例如:

TimeLow=1200
TimeCritical=300
Run Code Online (Sandbox Code Playgroud)

按 ctrl+X 保存 UPower.conf 文件并关闭 nano 编辑器。
重新启动计算机或sudo systemctl restart upower使更改生效。

通过这样做,我能够获得低电量和严重电池通知。弹出通知仅显示约 2 秒钟。这是它的样子:在此处输入图片说明


Ens*_*ado 6

经过大量研究,这是一个完美运行的脚本 - 并为高电量和低电量提供持久通知;)

程序

  1. 将脚本(如下所示)存储在某个文件夹中(例如主目录中名为 script 的文件夹)
  2. 打开终端并输入:crontab -e
  3. 添加此行以每 2 分钟自动运行一次脚本:(注意:我将脚本的名称保留为电池通知)

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

  1. Ctrl + x然后输入退出并保存 crontab。
  2. 注销并登录系统(或重新启动)即可查看效果。

剧本

#!/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

Run Code Online (Sandbox Code Playgroud)

笔记:

  1. 我在 ubuntu 20.04
  2. 我保留了85%和45%作为通知级别,大家可以根据自己的需要进行修改。
  3. 该脚本会提供持久的通知,除非您单击它们,否则这些通知不会消失。如果您远离笔记本电脑,这会很方便,从而防止您错过提醒。

在此处了解有关 cron 的更多信息:

  1. https://www.geeksforgeeks.org/crontab-in-linux-with-examples/
  2. https://crontab.guru


小智 6

Ensei_Tankado 的答案略有不同,但不会导致多个通知堆积。

相同的过程,不同的脚本:

#!/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
Run Code Online (Sandbox Code Playgroud)