From af20c7b9eb4b6226a05792a8b086329d91d7569e Mon Sep 17 00:00:00 2001 From: quadbyte Date: Fri, 15 Aug 2025 10:23:16 -0400 Subject: [PATCH] Dock: Settings - Removed master toggle again, as we have it per display - moved autoHide setting into the dock section - conditional dock per display working --- Modules/Bar/Bar.qml | 1 + Modules/Dock/Dock.qml | 9 ++++++--- Modules/Settings/Tabs/GeneralTab.qml | 13 ++----------- Services/Settings.qml | 5 ++--- 4 files changed, 11 insertions(+), 17 deletions(-) diff --git a/Modules/Bar/Bar.qml b/Modules/Bar/Bar.qml index a7db3ab..420b67e 100644 --- a/Modules/Bar/Bar.qml +++ b/Modules/Bar/Bar.qml @@ -18,6 +18,7 @@ Variants { screen: modelData implicitHeight: Style.barHeight * scaling color: "transparent" + visible: modelData ? (Settings.data.bar.monitors.includes(modelData.name) || (Settings.data.bar.monitors.length === 0)) : false diff --git a/Modules/Dock/Dock.qml b/Modules/Dock/Dock.qml index dc10c9f..bb0f9c8 100644 --- a/Modules/Dock/Dock.qml +++ b/Modules/Dock/Dock.qml @@ -9,7 +9,7 @@ import qs.Services import qs.Widgets NLoader { - isLoaded: Settings.data.general.showDock + isLoaded: (Settings.data.dock.monitors.length > 0) content: Component { Variants { model: Quickshell.screens @@ -19,7 +19,7 @@ NLoader { readonly property real scaling: Scaling.scale(modelData) // Auto-hide properties - property bool autoHide: Settings.data.general.dockAutoHide + property bool autoHide: Settings.data.dock.autoHide property bool hidden: autoHide // Start hidden only if auto-hide is enabled property int hideDelay: 500 property int showDelay: 100 @@ -39,7 +39,10 @@ NLoader { PanelWindow { id: dockWindow - visible: true + + // Dock works differently from bar, it is show only if toggled in Settings/Display + visible: modelData ? Settings.data.dock.monitors.includes(modelData.name) : false + screen: modelData exclusionMode: ExclusionMode.Ignore anchors.bottom: true diff --git a/Modules/Settings/Tabs/GeneralTab.qml b/Modules/Settings/Tabs/GeneralTab.qml index c161442..b3bf2a9 100644 --- a/Modules/Settings/Tabs/GeneralTab.qml +++ b/Modules/Settings/Tabs/GeneralTab.qml @@ -109,21 +109,12 @@ ColumnLayout { } } - NToggle { - label: "Show Dock" - description: "Enable the dock at the bottom of the screen" - value: Settings.data.general.showDock - onToggled: function (v) { - Settings.data.general.showDock = v - } - } - NToggle { label: "Auto-hide Dock" description: "Automatically hide the dock when not in use" - value: Settings.data.general.dockAutoHide + value: Settings.data.dock.autoHide onToggled: function (v) { - Settings.data.general.dockAutoHide = v + Settings.data.dock.autoHide = v } } } diff --git a/Services/Settings.qml b/Services/Settings.qml index 100ac64..5295302 100644 --- a/Services/Settings.qml +++ b/Services/Settings.qml @@ -24,7 +24,7 @@ Singleton { // Used to access via Settings.data.xxx.yyy property var data: adapter - + // Flag to prevent unnecessary wallpaper calls during reloads property bool isInitialLoad: true @@ -86,8 +86,6 @@ Singleton { property string avatarImage: defaultAvatar property bool dimDesktop: true property bool showScreenCorners: false - property bool showDock: false - property bool dockAutoHide: false } // location @@ -149,6 +147,7 @@ Singleton { property JsonObject dock dock: JsonObject { + property bool autoHide: false property bool exclusive: false property list monitors: [] }