From c92478d27dfef8d589e02df1028a411a751db44f Mon Sep 17 00:00:00 2001 From: Matan Bendix Shenhav Date: Tue, 30 Sep 2025 00:10:32 +0200 Subject: [PATCH 1/2] feat(flake): restart systemd service on package update --- flake.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/flake.nix b/flake.nix index 9b869208..437af0d7 100644 --- a/flake.nix +++ b/flake.nix @@ -264,6 +264,7 @@ after = [ cfg.target ]; partOf = [ cfg.target ]; wantedBy = [ cfg.target ]; + restartTriggers = [ cfg.package ]; unitConfig = { StartLimitIntervalSec = 60; From df35589328d97e5aa0f824a8f199e7426fc71a28 Mon Sep 17 00:00:00 2001 From: Matan Bendix Shenhav Date: Tue, 30 Sep 2025 00:11:03 +0200 Subject: [PATCH 2/2] feat(flake): write settings to a fallback path --- Commons/Settings.qml | 24 ++++++++++++++++++++++-- flake.nix | 5 ++++- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/Commons/Settings.qml b/Commons/Settings.qml index 986d4248..0a38ca72 100644 --- a/Commons/Settings.qml +++ b/Commons/Settings.qml @@ -71,7 +71,13 @@ Singleton { id: saveTimer running: false interval: 1000 - onTriggered: settingsFileView.writeAdapter() + onTriggered: { + settingsFileView.writeAdapter() + // Write to fallback location if set + if (Quickshell.env("NOCTALIA_SETTINGS_FALLBACK")) { + settingsFallbackFileView.writeAdapter() + } + } } FileView { @@ -101,11 +107,25 @@ Singleton { } } onLoadFailed: function (error) { - if (error.toString().includes("No such file") || error === 2) + if (error.toString().includes("No such file") || error === 2) { // File doesn't exist, create it with default values writeAdapter() + // Also write to fallback if set + if (Quickshell.env("NOCTALIA_SETTINGS_FALLBACK")) { + settingsFallbackFileView.writeAdapter() + } + } } } + + // Fallback FileView for writing settings to alternate location + FileView { + id: settingsFallbackFileView + path: Quickshell.env("NOCTALIA_SETTINGS_FALLBACK") || "" + adapter: Quickshell.env("NOCTALIA_SETTINGS_FALLBACK") ? adapter : null + printErrors: false + watchChanges: false + } JsonAdapter { id: adapter diff --git a/flake.nix b/flake.nix index 437af0d7..179164ac 100644 --- a/flake.nix +++ b/flake.nix @@ -277,7 +277,10 @@ RestartSec = 3; TimeoutStartSec = 10; TimeoutStopSec = 5; - Environment = [ "PATH=${config.system.path}/bin" ]; + Environment = [ + "PATH=${config.system.path}/bin" + "NOCTALIA_SETTINGS_FALLBACK=%h/.config/noctalia/gui-settings.json" + ]; }; };