import Quickshell.Widgets import Quickshell.Services.UPower import QtQuick import QtQuick.Layouts import qs import qs.widgets import qs.settings Rectangle { id: root clip: true color: Colors.base01 visible: UPower.displayDevice.isLaptopBattery property double percent: UPower.displayDevice.percentage * 100 property bool hasBattery: UPower.displayDevice.isLaptopBattery property bool charging: UPower.displayDevice.state == UPowerDeviceState.Charging required property double moduleHeight implicitHeight: moduleHeight implicitWidth: batLayout.implicitWidth + 16 radius: Config.rounding function batteryIcon() { if (root.charging) { return "\uea33"; } else if(root.percent <= 20) { return "\uea34" } else if(root.percent <= 40) { return "\uea2f" } else if(root.percent <= 60) { return "\uea30" } else if(root.percent <= 80) { return "\uea31" } else if(root.percent >= 80) { return "\uea32" } } RowLayout { id: batLayout anchors.centerIn: root MaterialIcon { text: root.batteryIcon() } StyledText { text: Math.floor(root.percent) + "%" } } }