From 0c7f4c7828604561da97a1f32e96e26a483ebc11 Mon Sep 17 00:00:00 2001 From: bbedward Date: Tue, 17 Feb 2026 22:03:36 -0500 Subject: [PATCH] settings: guard internal writes from watcher --- quickshell/Common/SettingsData.qml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/quickshell/Common/SettingsData.qml b/quickshell/Common/SettingsData.qml index 87494559..3b19a582 100644 --- a/quickshell/Common/SettingsData.qml +++ b/quickshell/Common/SettingsData.qml @@ -60,6 +60,7 @@ Singleton { property bool _hasLoaded: false property bool _isReadOnly: false property bool _hasUnsavedChanges: false + property bool _selfWrite: false property var _loadedSettingsSnapshot: null property var pluginSettings: ({}) property var builtInPluginSettings: ({}) @@ -1243,6 +1244,7 @@ Singleton { function saveSettings() { if (_loading || _parseError || !_hasLoaded) return; + _selfWrite = true; settingsFile.setText(JSON.stringify(Store.toJson(root), null, 2)); if (_isReadOnly) _checkSettingsWritable(); @@ -2589,7 +2591,13 @@ Singleton { blockWrites: true atomicWrites: true watchChanges: true - onFileChanged: settingsFileReloadDebounce.restart() + onFileChanged: { + if (_selfWrite) { + _selfWrite = false; + return; + } + settingsFileReloadDebounce.restart(); + } onLoaded: { if (isGreeterMode) return;