battery things
This commit is contained in:
@@ -3,21 +3,86 @@ import QtQuick
|
||||
import Quickshell
|
||||
import Quickshell.Services.UPower
|
||||
|
||||
import "../Color.js" as Colors
|
||||
|
||||
Singleton {
|
||||
id: root
|
||||
|
||||
property UPowerDevice battery: Upower.displayDevice
|
||||
property bool batteryInUse: root.batteryPresent && root.batteryLaptop
|
||||
property bool batteryLaptop: root.battery.isLaptopBattery
|
||||
property double batteryPercentage: root.battery.percentage
|
||||
property bool batteryPresent: root.battery.ready
|
||||
property bool batteryLaptop: root.mainBattery.isLaptopBattery
|
||||
property double batteryPercentage: root.mainBattery.percentage
|
||||
property bool batteryPresent: root.mainBattery.ready
|
||||
property UPowerDevice mainBattery: UPower.displayDevice
|
||||
|
||||
function getBatteryIcon() {
|
||||
let battery = root.battery;
|
||||
if (battery.state = UpowerDeviceState.Charging) {
|
||||
return "";
|
||||
}
|
||||
if (battery.state = UpowerDeviceState.Discharging) {
|
||||
function getBatteryColor() {
|
||||
let criticalLevel = 20;
|
||||
let batteryPercentage = getBatteryPercentage(mainBattery);
|
||||
|
||||
if (mainBattery.state == UPowerDeviceState.Charging) {
|
||||
return Colors.mauve;
|
||||
} else if (mainBattery.state == UPowerDeviceState.PendingCharge | mainBattery.state
|
||||
== UPowerDeviceState.PendingDischarge) {
|
||||
return Colors.peach;
|
||||
} else if (batteryPercentage <= criticalLevel) {
|
||||
return Colors.red;
|
||||
} else {
|
||||
return Colors.green;
|
||||
}
|
||||
}
|
||||
|
||||
function getBatteryIcon(battery) {
|
||||
if (battery.state == UPowerDeviceState.Charging) {
|
||||
return "";
|
||||
} else if (battery.state == UPowerDeviceState.PendingCharge | battery.state
|
||||
== UPowerDeviceState.PendingDischarge) {
|
||||
return "";
|
||||
} else if (battery.state == UPowerDeviceState.Discharging | battery.state
|
||||
== UPowerDeviceState.FullyCharged) {
|
||||
let iconArr = ["", "", "", "", "", "", "", "", "", ""];
|
||||
let batteryCharge = battery.percentage;
|
||||
let chargeIndex = Math.ceil(batteryCharge * iconArr.length) - 1;
|
||||
return iconArr[chargeIndex];
|
||||
}
|
||||
}
|
||||
|
||||
function getBatteryName(battery) {
|
||||
let pathsplit = battery.nativePath.split("/");
|
||||
let batteryName = pathsplit[pathsplit.length];
|
||||
return pathsplit;
|
||||
}
|
||||
|
||||
function getBatteryPercentage(battery) {
|
||||
return battery.percentage * 100;
|
||||
}
|
||||
|
||||
function getBatteryText() {
|
||||
let icon = getBatteryIcon(mainBattery);
|
||||
let percentage = getBatteryPercentage(mainBattery);
|
||||
return icon + " " + percentage + "%";
|
||||
}
|
||||
|
||||
function getMainBatteryInfo() {
|
||||
let battery = UPower.devices.values[0];
|
||||
let batteryState = battery.state;
|
||||
let batteryName = getBatteryName(battery);
|
||||
let time = 0;
|
||||
let timeString = "";
|
||||
let timeToEmpty = battery.timeToEmpty;
|
||||
if (timeToEmpty == 0) {
|
||||
timeString = "full";
|
||||
time = battery.timeToFull;
|
||||
} else {
|
||||
timeString = "empty";
|
||||
time = timeToEmpty;
|
||||
}
|
||||
return {
|
||||
"name": batteryName,
|
||||
"charge": battery.percentage,
|
||||
"energy": battery.energy,
|
||||
"capacity": battery.energyCapacity,
|
||||
"time": time,
|
||||
"timeString": timeString,
|
||||
"health": battery.healthPercentage
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user