idle inhibitor: only remember toggled state within same session

This commit is contained in:
end-4
2025-09-29 22:47:57 +02:00
parent 6e126dc08d
commit 4a40ce5646
2 changed files with 27 additions and 2 deletions
@@ -11,6 +11,15 @@ Singleton {
property string fileName: "states.json"
property string filePath: `${root.fileDir}/${root.fileName}`
property bool ready: false
property string previousHyprlandInstanceSignature: ""
property bool isNewHyprlandInstance: previousHyprlandInstanceSignature !== states.hyprlandInstanceSignature
onReadyChanged: {
root.previousHyprlandInstanceSignature = root.states.hyprlandInstanceSignature
root.states.hyprlandInstanceSignature = Quickshell.env("HYPRLAND_INSTANCE_SIGNATURE") || ""
}
Timer {
id: fileReloadTimer
interval: 100
@@ -36,6 +45,7 @@ Singleton {
watchChanges: true
onFileChanged: fileReloadTimer.restart()
onAdapterUpdated: fileWriteTimer.restart()
onLoaded: root.ready = true
onLoadFailed: error => {
console.log("Failed to load persistent states file:", error);
if (error == FileViewError.FileNotFound) {
@@ -45,6 +55,9 @@ Singleton {
adapter: JsonAdapter {
id: persistentStatesJsonAdapter
property string hyprlandInstanceSignature: ""
property JsonObject ai: JsonObject {
property string model
property real temperature: 0.5
+14 -2
View File
@@ -12,10 +12,22 @@ Singleton {
id: root
property alias inhibit: idleInhibitor.enabled
inhibit: Persistent.states.idle.inhibit
inhibit: false
Connections {
target: Persistent
function onReadyChanged() {
if (!Persistent.isNewHyprlandInstance) {
root.inhibit = Persistent.states.idle.inhibit
} else {
Persistent.states.idle.inhibit = root.inhibit
}
}
}
function toggleInhibit() {
Persistent.states.idle.inhibit = !Persistent.states.idle.inhibit
root.inhibit = !root.inhibit
Persistent.states.idle.inhibit = root.inhibit
}
IdleInhibitor {