diff options
Diffstat (limited to 'desktop/modules/appearance/Hypridle.qml')
| -rw-r--r-- | desktop/modules/appearance/Hypridle.qml | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/desktop/modules/appearance/Hypridle.qml b/desktop/modules/appearance/Hypridle.qml index a1d3ecd..5f03c35 100644 --- a/desktop/modules/appearance/Hypridle.qml +++ b/desktop/modules/appearance/Hypridle.qml @@ -30,6 +30,10 @@ Singleton { property string tail: "" property string notice: "" property bool loaded: false + // The file as last read or written: dirty is what save() would write + // differing from it. Discard is refresh(). + property string saved: "" + readonly property bool dirty: root.loaded && root.serialize(root.prefix, root.listeners, root.tail) !== root.saved function getField(body, key) { const m = body.match(new RegExp(`^\\s*${key}\\s*=\\s*(.+?)\\s*$`, "m")); @@ -146,6 +150,7 @@ listener { root.prefix = p.prefix; root.listeners = p.listeners; root.tail = p.tail; + root.saved = root.serialize(p.prefix, p.listeners, p.tail); root.loaded = true; } } @@ -155,7 +160,8 @@ listener { function save() { if (!root.loaded) return; // not loaded yet: writing would truncate the file - confFile.setText(root.serialize(root.prefix, root.listeners, root.tail)); + root.saved = root.serialize(root.prefix, root.listeners, root.tail); + confFile.setText(root.saved); Quickshell.execDetached(["sh", "-c", "pkill -x hypridle; setsid -f hypridle"]); root.notice = "saved; idle timers reset"; } |
