mirror of
https://github.com/arthur-pbty/arthur-os.git
synced 2026-08-04 12:47:51 +02:00
59 lines
1.4 KiB
QML
59 lines
1.4 KiB
QML
import QtQuick
|
|
import Quickshell
|
|
import Quickshell.Io
|
|
import Quickshell.Services.UPower
|
|
import "BatteryModel.js" as BatteryModel
|
|
|
|
Item {
|
|
id: root
|
|
|
|
property var shell: null
|
|
property string omarchyPath: Quickshell.env("OMARCHY_PATH")
|
|
|
|
readonly property int batteryThreshold: 10
|
|
|
|
PersistentProperties {
|
|
id: persisted
|
|
reloadableId: "omarchy-battery"
|
|
property bool notifiedLowBattery: false
|
|
}
|
|
|
|
function batteryPercentage() {
|
|
return BatteryModel.batteryPercentage(UPower.displayDevice)
|
|
}
|
|
|
|
function isDischarging() {
|
|
return BatteryModel.isDischarging(UPower.displayDevice, UPower.onBattery, UPowerDeviceState.Discharging)
|
|
}
|
|
|
|
function checkBattery() {
|
|
var state = BatteryModel.shouldWarnLowBattery(UPower.displayDevice, UPower.onBattery, UPowerDeviceState.Discharging, batteryThreshold, persisted.notifiedLowBattery)
|
|
persisted.notifiedLowBattery = state.notifiedLowBattery
|
|
if (state.notify) sendLowBatteryWarning(state.level)
|
|
}
|
|
|
|
function sendLowBatteryWarning(level) {
|
|
if (warningProcess.running) return
|
|
warningProcess.command = [
|
|
"omarchy-battery-low",
|
|
String(level)
|
|
]
|
|
warningProcess.running = true
|
|
}
|
|
|
|
Process { id: warningProcess }
|
|
|
|
Timer {
|
|
interval: 30000
|
|
running: true
|
|
repeat: true
|
|
triggeredOnStart: true
|
|
onTriggered: root.checkBattery()
|
|
}
|
|
|
|
Connections {
|
|
target: UPower
|
|
function onOnBatteryChanged() { root.checkBattery() }
|
|
}
|
|
}
|