group colors match top gradient based on horizontal position

This commit is contained in:
Damocles 2026-04-12 21:58:20 +02:00
parent 8e8d0e6fa5
commit ec8672e837
2 changed files with 15 additions and 10 deletions

View file

@ -109,7 +109,6 @@ PanelWindow {
M.Privacy {}
M.BarGroup {
borderColor: M.Theme.base0D
M.Clock {
visible: M.Modules.clock.enable
}
@ -127,21 +126,18 @@ PanelWindow {
spacing: M.Theme.barSpacing
M.BarGroup {
borderColor: M.Theme.base0D
M.Workspaces {
bar: bar
visible: M.Modules.workspaces.enable
}
}
M.BarGroup {
borderColor: M.Theme.base0D
M.Tray {
bar: bar
visible: M.Modules.tray.enable
}
}
M.BarGroup {
borderColor: M.Theme.base0D
M.WindowTitle {
Layout.maximumWidth: 400
visible: M.Modules.windowTitle.enable
@ -165,7 +161,6 @@ PanelWindow {
// Media
M.BarGroup {
borderColor: M.Theme.base0E
M.Mpris {
bar: bar
}
@ -176,7 +171,6 @@ PanelWindow {
// Connectivity
M.BarGroup {
borderColor: M.Theme.base0D
M.Network {
bar: bar
visible: M.Modules.network.enable
@ -188,7 +182,6 @@ PanelWindow {
// Controls
M.BarGroup {
borderColor: M.Theme.base0A
M.Backlight {}
M.PowerProfile {
visible: M.Modules.powerProfile.enable
@ -200,7 +193,6 @@ PanelWindow {
// Stats
M.BarGroup {
borderColor: M.Theme.base08
M.Cpu {
visible: M.Modules.cpu.enable
}
@ -220,7 +212,6 @@ PanelWindow {
// Power
M.BarGroup {
borderColor: M.Theme.base08
M.Battery {}
M.Power {
bar: bar

View file

@ -1,12 +1,26 @@
import QtQuick
import QtQuick.Effects
import Quickshell
import "." as M
Item {
id: root
default property alias content: row.children
property color borderColor: M.Theme.base02
// Auto-compute border color from top gradient position (base0C base09)
readonly property real _posFrac: {
const scr = QsWindow.window?.screen;
if (!scr) return 0.5;
const gx = mapToGlobal(width / 2, 0).x - scr.x;
return Math.max(0, Math.min(1, gx / scr.width));
}
property color borderColor: Qt.rgba(
M.Theme.base0C.r + (M.Theme.base09.r - M.Theme.base0C.r) * _posFrac,
M.Theme.base0C.g + (M.Theme.base09.g - M.Theme.base0C.g) * _posFrac,
M.Theme.base0C.b + (M.Theme.base09.b - M.Theme.base0C.b) * _posFrac,
1
)
visible: row.visibleChildren.length > 0