From f6dd72f1a6399afb2f38f08f94f1e004e4d20af8 Mon Sep 17 00:00:00 2001 From: Bernd Wachter Date: Tue, 21 Mar 2023 21:40:01 +0200 Subject: [PATCH] Allow custom config directory by setting FANCYWM_CONF_DIR env variable This doesn't touch the empty administrator-mode file, only settings.json for now. --- FancyWM/Models/AppState.cs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/FancyWM/Models/AppState.cs b/FancyWM/Models/AppState.cs index 5be830a..1a43655 100644 --- a/FancyWM/Models/AppState.cs +++ b/FancyWM/Models/AppState.cs @@ -1,4 +1,5 @@ -using System.IO; +using System; +using System.IO; using System.Text.Json; using System.Text.Json.Serialization; @@ -10,11 +11,23 @@ public class AppState public AppState() { - Settings = new ObservableJsonEntity(Path.GetFullPath("settings.json"), + string SettingsDirectory; + string SettingsFile; + +#pragma warning disable CS8600 + SettingsDirectory = Environment.GetEnvironmentVariable("FANCYWM_CONF_DIR"); +#pragma warning restore CS8600 + + if (SettingsDirectory == null) + SettingsFile = Path.GetFullPath("settings.json"); + else + SettingsFile = Path.GetFullPath("settings.json", SettingsDirectory); + + Settings = new ObservableJsonEntity(SettingsFile, () => new Settings { AutoCollapsePanels = true, - }, + }, new JsonSerializerOptions { AllowTrailingCommas = true,