diff --git a/Commons/Settings.qml b/Commons/Settings.qml index 07e1af477..bff2f7863 100644 --- a/Commons/Settings.qml +++ b/Commons/Settings.qml @@ -36,9 +36,9 @@ Singleton { readonly property string defaultVideosDirectory: Quickshell.env("HOME") + "/Videos" readonly property string defaultWallpapersDirectory: Quickshell.env("HOME") + "/Pictures/Wallpapers" - // Signal emitted when settings are loaded after startupcale changes signal settingsLoaded signal settingsSaved + signal settingsReloaded // ----------------------------------------------------- // ----------------------------------------------------- @@ -121,6 +121,9 @@ Singleton { root.settingsLoaded(); upgradeSettings(); + } else { + Logger.d("Settings", "Settings reloaded from external file change"); + root.settingsReloaded(); } } onLoadFailed: function (error) { diff --git a/Services/UI/BarService.qml b/Services/UI/BarService.qml index be26289d8..31d27ca97 100644 --- a/Services/UI/BarService.qml +++ b/Services/UI/BarService.qml @@ -143,6 +143,16 @@ Singleton { Logger.i("BarService", "Service started"); } + // Bump widgetsRevision when settings are reloaded from an external file change + // so Bar.qml re-syncs its widget ListModels with the updated widget configuration + Connections { + target: Settings + function onSettingsReloaded() { + Logger.d("BarService", "Settings reloaded externally, bumping widgetsRevision"); + root.widgetsRevision++; + } + } + // update bar's hidden state when mode changes Connections { target: Settings.data.bar