quickshell/modules/bar/Bat.qml

40 lines
1.2 KiB
QML

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) + "%"
}
}
}