import Quickshell.Services.UPower import QtQuick import qs Rectangle { id: root clip: true color: Appearance.colAppBg visible: UPower.displayDevice.isPresent property var batCharMin: (UPower.displayDevice.timeToFull / 60).toFixed(2) property var batDisMin: (UPower.displayDevice.timeToEmpty / 60).toFixed(2) property var batTime: 0 implicitHeight: Appearance.appletRadHeight implicitWidth: batText.implicitWidth + 25 radius: Appearance.appletRadHeight function getBatStat() { if (UPower.displayDevice.state == UPowerDeviceState.Discharging) { batTime = Math.floor(batDisMin / 60) + "h " + ((batDisMin - (Math.floor(batDisMin / 60) * 60)).toFixed(0)) + "min" return batTime; } if (UPower.displayDevice.state == UPowerDeviceState.Charging) { batTime = Math.floor(batCharMin / 60) + "h " + ((batCharMin - (Math.floor(batCharMin / 60) * 60)).toFixed(0)) + "min" return batTime; } if (UPower.displayDevice.state == UPowerDeviceState.FullyCharged) { return "Full"; } } function batStatProc() { return Math.round(UPower.displayDevice.percentage * 100) + "%"; } Text { id: batText anchors.centerIn: parent text: batStatProc() + " - " + getBatStat() font.family: Appearance.font font.pixelSize: Appearance.fontSize font.bold: true color: Appearance.colFg } }