顶部菜单电池指示器显示不正确

顶部菜单电池指示器显示不正确

我最近在新笔记本电脑上安装了 Ubuntu 20.04.2。一切正常,但顶部菜单上的指示器有问题。每当我插入笔记本电脑时,都会准时听到充电声音警报,但菜单栏上的指示器需要很长时间才能显示笔记本电脑正在充电。拔下电源插头时,问题是指示器变化非常晚,大约 1-2 分钟,图标变化时会同时听到声音警报。有人能告诉我解决办法吗?我试过重新安装 gnome 电源管理器

. 没有作用。

我的笔记本电脑是华为 Matebook 14 AMD ryzen 7

答案1

多年来,我在使用 Acer、Apple 和 Asus 笔记本电脑时都遇到过这个问题。我想这不仅限于以字母“A”开头的制造商。

问题在于该upower服务没有足够频繁地轮询电池。如果您曾尝试使用多种工具比较电池状态,您可能会看到报告的剩余电量和/或充电状态存在差异。不幸的是,这不是通过快速转到“设置”或“dconf 编辑器”就可以解决的问题,但您可以使用强制刷新的脚本来解决这个问题upower

首先,让我们获取你的电池名称。在终端中,运行以下命令:

upower -e

这应该会给你类似这样的结果:

/org/freedesktop/UPower/devices/line_power_AC
/org/freedesktop/UPower/devices/battery_BAT0
/org/freedesktop/UPower/devices/DisplayDevice

这样,我们可以看到我的电池被恰当地命名为battery_BAT0。我可以使用此命令手动强制upower更新其状态信息busctl

busctl call --system org.freedesktop.UPower /org/freedesktop/UPower/devices/battery_BAT0 org.freedesktop.UPower.Device Refresh

笔记:在终端中运行此命令时没有输出,但如果您最近断开或断开电源,您的状态图标可能会更新。

为了定期运行该程序以保留电池图标并在合理的时间内播放系统通知声音,请将busctl之前的调用包装到 shell 脚本中:

#!/bin/bash
while sleep 15; do
   busctl call --system org.freedesktop.UPower /org/freedesktop/UPower/devices/battery_BAT0 org.freedesktop.UPower.Device Refresh
done

请务必将其替换battery_BAT0为您的实际电池名称,并更改15为您满意的间隔。我已经运行这个脚本几年了,并没有看到脚本对第 4 代 Intel Core i5 的性能有任何影响,所以您的 Ryzen 7 也不应该对此感到不安。

要让该脚本在启动时在后台运行,请打开“启动应用程序”,单击“添加”,然后选择该脚本。不过,不要忘记先使该脚本可执行:

chmod +x poke-upower.sh

笔记:您可能需要一个更好的文件名。

这更像是一种破解,而不是一个完整的解决方案,但它确实适用于 Ubuntu Desktop 的多个版本。不过,我还没有找到这个问题的根本原因,而且我使用过的联想或戴尔设备都没有出现过这种情况。

希望这可以帮助

答案2

我知道这是一个老问题,但是问题仍然存在,至少部分存在......至少如果你把它当作一个问题......

gnome 中的电池图标存在一个问题(实际上这是一个功能):它显示的是电池状态,而不是交流适配器状态。电池控制器决定是否需要给电池充电。这意味着如果电池的电量足够高(通常约为 >= 95%),它可能会决定保持这种状态,而不是将其充电至 100%。但是,插入交流适配器时仍会发出声音。这不是问题,这是设计使然。将电池放电至 90% 左右并插入交流电 - 图标将变为“正在充电”。使用命令行也很容易检查:cat /sys/class/power_supply/AC0/online在终端中运行 - 它显示01以查看交流适配器状态;cat /sys/class/power_supply/BAT0/status要查看电池充电状态 - 它显示ChargingNot charging。后者是图标在 gnome shell 中显示的内容。

另一个问题是轮询电池状态upower,@user1091774 对此进行了详细描述。我以前在 Acer 和 Asus 笔记本电脑上也遇到过这个问题,但现在没有了。我想这个问题已经解决了。

相关内容