From 6fb3d8f13150a02af052b32e2ba9856a95d3c2bb Mon Sep 17 00:00:00 2001 From: lucy Date: Fri, 28 Aug 2026 23:52:51 +0200 Subject: [PATCH] fixup battery icon --- modules/bar/Bat.qml | 36 ++++++++++++++---------------------- 1 file changed, 14 insertions(+), 22 deletions(-) diff --git a/modules/bar/Bat.qml b/modules/bar/Bat.qml index 340630c..6ec2c91 100644 --- a/modules/bar/Bat.qml +++ b/modules/bar/Bat.qml @@ -16,27 +16,19 @@ BarComponent { property bool charging: UPower.displayDevice.state === UPowerDeviceState.Charging implicitWidth: batLayout.implicitWidth + 16 - function batteryIcon() { - let charging = root.charging; - let percent = root.percent; - if (percent <= 10) - return charging ? "battery-empty-charging" : "battery-empty"; - if (percent < 40) - return charging ? "battery-level-30-charging" : "battery-level-30"; - if (percent < 50) - return charging ? "battery-level-40-charging" : "battery-level-40"; - if (percent < 60) - return charging ? "battery-level-50-charging" : "battery-level-50"; - if (percent < 70) - return charging ? "battery-level-60-charging" : "battery-level-60"; - if (percent < 80) - return charging ? "battery-level-70-charging" : "battery-level-70"; - if (percent < 90) - return charging ? "battery-level-80-charging" : "battery-level-80"; - if (percent > 90) - return charging ? "battery-level-90-charging" : "battery-level-90"; - if (percent == 100) - return charging ? "battery-level-100-charging" : "battery-level-100"; + function batteryIcon(): string { + const p = root.percent; + const chg = root.charging; + const isFull = root.full; + + if (isFull) + return "battery-level-100-charged-symbolic"; + + if (p < 10) + return chg ? "battery-empty-charging-symbolic" : "battery-empty-symbolic"; + + const level = Math.min(100, Math.floor(p / 10) * 10); + return chg ? `battery-level-${level}-charging-symbolic` : `battery-level-${level}-symbolic`; } RowLayout { id: batLayout @@ -46,7 +38,7 @@ BarComponent { } StyledText { - text: Math.floor(root.percent, root.charging) + "%" + text: Math.floor(root.percent) + "%" } } }