就在昨天,我从 Ubuntu 18.04 迁移到了 Ubuntu 20.04。18.04 中有一个名为“电池监视器”的软件,它可以监视您的电池百分比,并在电池百分比达到低水平时通知您。
我尝试在 20.04 中安装它,但似乎它不兼容,或者也许我做错了什么……
有人能帮助我解决这个问题或者帮我找到替代方案吗?
我最重要的需求是当我的电池电量百分比低于某个数值时收到通知。
谢谢
答案1
我有 Ubuntu Budgie 20.04,这对我有用:
cd /etc/UPower
sudo nano UPower.conf
如果您设置UsePercentageForPolicy=true
然后根据自己的喜好编辑百分比线,例如:
PercentageLow=50
PercentageCritical=35
如果您更喜欢基于时间的方法,则设置UsePercentageForPolicy
为 false 并根据您的喜好设置时间通知选项,例如:
TimeLow=1200
TimeCritical=300
按 ctrl+X 保存 UPower.conf 文件并关闭 nano 编辑器。
重新启动计算机或sudo systemctl restart upower
使更改生效。
答案2
稍微变化一下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
答案3
经过大量研究,这里有一个运行完美的脚本 - 并且在电池电量高和低时都会发出持续的通知;)
程序
- 将脚本(写在下面)存储在某个文件夹中(例如主目录中名为脚本的文件夹)
- 打开终端并输入:
crontab -e
- 添加此行以每 2 分钟自动运行一次脚本:(注意:我保留脚本的名称为电池通知)
*/2 * * * * bash /home/garmadon/scripts/battery-notifications.sh
- 按Ctrl + x进而进入退出并保存 crontab。
- 注销并重新登录系统(或重启)即可看到效果。
剧本
#!/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
笔记:
- 我在 ubuntu 20.04
- 我保留了85%和45%作为通知级别,您可以根据需要进行修改。
- 此脚本会持续发出通知,除非您单击它们,否则它们不会消失。如果您不在笔记本电脑旁,这会非常有用,从而防止您错过提醒。
在这里了解有关 cron 的更多信息:
答案4
我想到了这个解决方法:
在 ubuntu 20 中有效
依赖项
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.下载源码
cd ~/Downloads/
wget https://github.com/maateen/battery-monitor/archive/master.zip
unzip master.zip
cd battery-monitor-master/
2.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. 以 root 身份安装
sudo su
export PYTHONPATH=/home/USERNAME/.local/lib/python3.8/site-packages/
make install
exit
4. 以非 root 身份运行
nohup battery-monitor &
5. 修复 Notification.py 中上限警告的正常工作
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)