Remember power profile choices per power source across reboots
Explicit profile selections from the power panel or menu are now saved under an ac/battery key in ~/.local/state/omarchy/powerprofiles and reapplied on boot and on plug/unplug. Only successful, user-made selections are persisted, so the performance/balanced defaults still apply when nothing has been chosen. All entry points key off the same power signal, UPower's OnBattery: the shell reads it natively and omarchy-powerprofiles-set autodetect queries it via busctl. This replaces the sysfs online checks, which disagreed with the shell on desktops without power_supply entries and lagged behind plug events on some USB-C laptops. Plug/unplug switching moves from the udev rule into the shell's battery service, which already receives UPower's debounced state changes, so the udev rule and its settle-sleep workaround are gone. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
6ba0e9c234
commit
0f2f3f11cb
@@ -11,6 +11,7 @@ Item {
|
||||
property string omarchyPath: Quickshell.env("OMARCHY_PATH")
|
||||
|
||||
readonly property int batteryThreshold: 10
|
||||
property string pendingPowerSource: ""
|
||||
|
||||
PersistentProperties {
|
||||
id: persisted
|
||||
@@ -41,8 +42,24 @@ Item {
|
||||
warningProcess.running = true
|
||||
}
|
||||
|
||||
function applyPowerProfile() {
|
||||
pendingPowerSource = UPower.onBattery ? "battery" : "ac"
|
||||
if (!powerProfileProcess.running) runPendingPowerProfile()
|
||||
}
|
||||
|
||||
function runPendingPowerProfile() {
|
||||
powerProfileProcess.command = ["omarchy-powerprofiles-set", pendingPowerSource]
|
||||
pendingPowerSource = ""
|
||||
powerProfileProcess.running = true
|
||||
}
|
||||
|
||||
Process { id: warningProcess }
|
||||
|
||||
Process {
|
||||
id: powerProfileProcess
|
||||
onExited: if (root.pendingPowerSource !== "") root.runPendingPowerProfile()
|
||||
}
|
||||
|
||||
Timer {
|
||||
interval: 30000
|
||||
running: true
|
||||
@@ -53,6 +70,9 @@ Item {
|
||||
|
||||
Connections {
|
||||
target: UPower
|
||||
function onOnBatteryChanged() { root.checkBattery() }
|
||||
function onOnBatteryChanged() {
|
||||
root.checkBattery()
|
||||
root.applyPowerProfile()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user