From a68344df6090d8065abbd782423c19e724633edd Mon Sep 17 00:00:00 2001 From: purian23 Date: Sun, 20 Sep 2026 02:23:03 -0400 Subject: [PATCH] fix(surfaces): bar follows global opacity & misc ajustments/fixes - Standard bars respond to the global surface opacity again - Island dash stays open when an edit-mode menu is used - Weather forecast chip and island level groove follow the foreground opacity - Control center tile icons follow blur and foreground settings like the slider icons - Restored the layer outline on control center tiles and slider rows - Hover popouts setting is visible for island bars - Bumped dank-qml-common --- dank-qml-common | 2 +- .../ControlCenter/Widgets/CcSliderRow.qml | 6 +++++- .../Modules/ControlCenter/Widgets/CcTile.qml | 6 +++++- quickshell/Modules/DankBar/DankBarBody.qml | 16 +--------------- .../DankDash/Weather/WeatherForecastCard.qml | 2 +- .../DankIsland/Activities/SystemLevelCompact.qml | 2 +- .../Modules/DankIsland/IslandController.qml | 8 ++++++-- quickshell/Modules/Settings/DankBarTab.qml | 2 +- 8 files changed, 21 insertions(+), 23 deletions(-) diff --git a/dank-qml-common b/dank-qml-common index 69859d278..1d28494b7 160000 --- a/dank-qml-common +++ b/dank-qml-common @@ -1 +1 @@ -Subproject commit 69859d278c645793127c4920f441b9ee7724b599 +Subproject commit 1d28494b71bf3f2f2822265df5b12aea8d51449f diff --git a/quickshell/Modules/ControlCenter/Widgets/CcSliderRow.qml b/quickshell/Modules/ControlCenter/Widgets/CcSliderRow.qml index 99d04449e..4e1c59aa9 100644 --- a/quickshell/Modules/ControlCenter/Widgets/CcSliderRow.qml +++ b/quickshell/Modules/ControlCenter/Widgets/CcSliderRow.qml @@ -48,6 +48,8 @@ Item { anchors.fill: parent radius: root.bodyRadius color: CcMetrics.tileInactiveColor + border.width: Theme.layerOutlineWidth + border.color: Theme.outlineMedium visible: root.tall } @@ -62,7 +64,9 @@ Item { x: root.vertical ? (parent.width - width) / 2 : root.LayoutMirroring.enabled ? parent.width - width : 0 y: root.vertical ? parent.height - height : root.tall ? 0 : (parent.height - height) / 2 buttonSize: root.actionSize - backgroundColor: root.tall ? Theme.chipSurface : CcMetrics.tileInactiveColor + backgroundColor: CcMetrics.tileInactiveColor + border.width: Theme.layerOutlineWidth + border.color: Theme.outlineMedium iconName: root.iconName iconSize: CcMetrics.iconBoxIconSize iconColor: CcMetrics.tileInactiveContent diff --git a/quickshell/Modules/ControlCenter/Widgets/CcTile.qml b/quickshell/Modules/ControlCenter/Widgets/CcTile.qml index 7a32588e5..2979d2933 100644 --- a/quickshell/Modules/ControlCenter/Widgets/CcTile.qml +++ b/quickshell/Modules/ControlCenter/Widgets/CcTile.qml @@ -78,7 +78,7 @@ Item { readonly property color iconBoxColor: { if (!enabled) return Theme.onSurface_12; - return active ? CcMetrics.tileActiveColor : Theme.chipSurface; + return active ? CcMetrics.tileActiveColor : CcMetrics.tileInactiveColor; } property real bodyRadius: bodyLayer.pressed ? Math.min(Theme.cornerRadiusM, width / 2, height / 2) : restRadius @@ -151,6 +151,8 @@ Item { anchors.fill: parent radius: root.bodyRadius color: root.bodyColor + border.width: root.bodyActive ? 0 : Theme.layerOutlineWidth + border.color: Theme.outlineMedium Behavior on color { enabled: CcMetrics.animationsEnabled && !SettingsData.reduceMotion @@ -221,6 +223,8 @@ Item { height: width radius: root.hasIconBox ? root.iconBoxRadius : 0 color: root.hasIconBox ? root.iconBoxColor : "transparent" + border.width: root.hasIconBox && !root.active ? Theme.layerOutlineWidth : 0 + border.color: Theme.outlineMedium activeFocusOnTab: root.showExpand && root.toggle && root.acceptsInput Accessible.role: root.toggle ? Accessible.CheckBox : Accessible.Button Accessible.name: root.title diff --git a/quickshell/Modules/DankBar/DankBarBody.qml b/quickshell/Modules/DankBar/DankBarBody.qml index 57ad1a68d..dcc0aebd7 100644 --- a/quickshell/Modules/DankBar/DankBarBody.qml +++ b/quickshell/Modules/DankBar/DankBarBody.qml @@ -391,13 +391,8 @@ Item { readonly property color _hostSurface: Theme.hostSurface readonly property string _barId: barConfig?.id ?? "default" - property real _backgroundAlpha: SettingsData.barTransparency(barConfig) + readonly property real _backgroundAlpha: SettingsData.barTransparency(barConfig) readonly property color _bgColor: (FrameTransitionState.effectiveFrameEnabled && usesFrameBarChrome) ? Theme.frameSurfaceColor : Theme.withAlpha(_hostSurface, _backgroundAlpha) - - function _updateBackgroundAlpha() { - const live = SettingsData.barConfigs.find(c => c.id === _barId); - _backgroundAlpha = SettingsData.barTransparency(live ?? barConfig); - } readonly property real _dpr: CompositorService.getScreenScale(barWindow.screen) property string screenName: modelData.name @@ -480,7 +475,6 @@ Item { Component.onCompleted: { updateGpuTempConfig(); - _updateBackgroundAlpha(); _updateHasMaximizedToplevel(); _updateShouldHideForWindows(); } @@ -518,18 +512,10 @@ Item { onRootWindowBarConfigChanged: { updateGpuTempConfig(); - _updateBackgroundAlpha(); _updateHasMaximizedToplevel(); _updateShouldHideForWindows(); } - Connections { - target: SettingsData - function onBarConfigsChanged() { - barWindow._updateBackgroundAlpha(); - } - } - Connections { target: CompositorService function onToplevelsChanged() { diff --git a/quickshell/Modules/DankDash/Weather/WeatherForecastCard.qml b/quickshell/Modules/DankDash/Weather/WeatherForecastCard.qml index 674da7de6..940896154 100644 --- a/quickshell/Modules/DankDash/Weather/WeatherForecastCard.qml +++ b/quickshell/Modules/DankDash/Weather/WeatherForecastCard.qml @@ -59,7 +59,7 @@ Rectangle { readonly property color muted: isCurrent ? Theme.withAlpha(Theme.onPrimaryContainer, DashMetrics.mutedAlpha) : Theme.onSurfaceVariant radius: Theme.cornerRadiusL - color: isCurrent ? Theme.withAlpha(Theme.primaryContainer, Theme.popupTransparency) : DashMetrics.chipColor + color: isCurrent ? Theme.foregroundColor(Theme.primaryContainer, false) : DashMetrics.chipColor Column { anchors.centerIn: parent diff --git a/quickshell/Modules/DankIsland/Activities/SystemLevelCompact.qml b/quickshell/Modules/DankIsland/Activities/SystemLevelCompact.qml index f9d460d11..19398cff9 100644 --- a/quickshell/Modules/DankIsland/Activities/SystemLevelCompact.qml +++ b/quickshell/Modules/DankIsland/Activities/SystemLevelCompact.qml @@ -107,7 +107,7 @@ Item { anchors.bottom: parent.bottom width: root.trackThickness radius: Theme.cornerRadius - color: Theme.withAlpha(Theme.outline, Theme.popupTransparency) + color: Theme.withAlpha(Theme.outline, Theme.foregroundAlpha) Rectangle { anchors.left: parent.left diff --git a/quickshell/Modules/DankIsland/IslandController.qml b/quickshell/Modules/DankIsland/IslandController.qml index 365f4278f..00fd1bab6 100644 --- a/quickshell/Modules/DankIsland/IslandController.qml +++ b/quickshell/Modules/DankIsland/IslandController.qml @@ -215,10 +215,14 @@ QtObject { } function setEditing(activityId, editing) { - if (editing) + if (editing) { editingActivity = activityId; - else if (editingActivity === activityId) + // Option sheets open child popups; a hover peek would collapse under them + hoverExpanded = false; + hoverCloseTimer.stop(); + } else if (editingActivity === activityId) { editingActivity = ""; + } } function editGutterFor(activityId) { diff --git a/quickshell/Modules/Settings/DankBarTab.qml b/quickshell/Modules/Settings/DankBarTab.qml index e31b5dfb2..d87976b24 100644 --- a/quickshell/Modules/Settings/DankBarTab.qml +++ b/quickshell/Modules/Settings/DankBarTab.qml @@ -366,7 +366,7 @@ Item { tags: ["bar", "hover", "popout", "reveal", "widget", "delay"] iconName: "touch_app" title: I18n.tr("Hover popouts") - visible: (bar.selectedBarConfig?.enabled ?? false) && !bar.selectedBarIsIsland + visible: bar.selectedBarConfig?.enabled ?? false enabled: !(bar.selectedBarConfig?.clickThrough ?? false) opacity: (bar.selectedBarConfig?.clickThrough ?? false) ? 0.5 : 1.0 checked: bar.selectedBarConfig?.hoverPopouts ?? false