JS/TS / fmt (pull_request) Successful in 7s
JS/TS / lint (pull_request) Successful in 9s
Python / fmt (pull_request) Successful in 15s
Python / lint (pull_request) Failing after 19s
Python / typecheck (pull_request) Failing after 1m5s
C++ / fmt (pull_request) Successful in 6s
Python / test (pull_request) Successful in 1m20s
Rust / fmt (pull_request) Successful in 1m42s
Python / buildcheck (pull_request) Successful in 2m23s
Rust / clippy (pull_request) Successful in 2m42s
Rust / build (pull_request) Successful in 2m53s
C++ / build (pull_request) Successful in 2m22s
C++ / clang-tidy (pull_request) Successful in 3m17s
58 lines
1.5 KiB
QML
58 lines
1.5 KiB
QML
pragma Singleton
|
|
|
|
import Quickshell
|
|
import Quickshell.Io
|
|
import Quickshell.Services.UPower
|
|
import qs.Config
|
|
import qs.Paths
|
|
import qs.Helpers
|
|
|
|
Singleton {
|
|
id: root
|
|
|
|
readonly property real currentPerc: UPower.displayDevice.percentage
|
|
readonly property var deviceState: UPower.displayDevice.state
|
|
readonly property string deviceStateString: UPowerDeviceState.toString(deviceState)
|
|
readonly property bool isLaptop: UPower.displayDevice.isLaptopBattery
|
|
readonly property alias logiDevices: adapter.devices
|
|
readonly property bool onBattery: UPower.onBattery
|
|
readonly property bool ready: UPower.displayDevice.ready
|
|
readonly property real timeToEmpty: UPower.displayDevice.timeToEmpty
|
|
readonly property real timeToFull: UPower.displayDevice.timeToFull
|
|
readonly property list<UPowerDevice> upowerDevices: UPower.devices.values
|
|
|
|
function getColors(percentage: real, state: string): var {
|
|
if (state === "charging" || state === "full" || state === "recharging")
|
|
return {
|
|
fg: DynamicColors.swapRG(DynamicColors.palette.m3error),
|
|
bg: DynamicColors.swapRG(DynamicColors.palette.m3onError)
|
|
};
|
|
else if (percentage <= 0.2)
|
|
return {
|
|
fg: DynamicColors.palette.m3error,
|
|
bg: DynamicColors.palette.m3onError
|
|
};
|
|
else
|
|
return {
|
|
fg: DynamicColors.palette.m3tertiary,
|
|
bg: DynamicColors.palette.m3onTertiary
|
|
};
|
|
}
|
|
|
|
FileView {
|
|
id: fileView
|
|
|
|
path: `${Paths.cache}/battery.json`
|
|
watchChanges: true
|
|
|
|
onFileChanged: reload()
|
|
|
|
JsonAdapter {
|
|
id: adapter
|
|
|
|
property list<var> devices: []
|
|
property real updated: 0.0
|
|
}
|
|
}
|
|
}
|