From d54df2792ad8536ea2e4135fba3bb3558e281fe1 Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Thu, 1 May 2025 00:56:55 +1000 Subject: feat: bar panel preset Make presets more flexible Fix workspaces when show windows disabled Make rounded option for workspaces --- modules/bar/components/ActiveWindow.qml | 2 +- modules/bar/components/Clock.qml | 2 +- modules/bar/components/StatusIcons.qml | 2 +- modules/bar/components/Tray.qml | 9 ++++++++- modules/bar/components/TrayItem.qml | 9 +++++---- modules/bar/components/workspaces/ActiveIndicator.qml | 3 +-- modules/bar/components/workspaces/OccupiedBg.qml | 2 +- modules/bar/components/workspaces/Workspace.qml | 9 +++++---- modules/bar/components/workspaces/Workspaces.qml | 3 ++- 9 files changed, 25 insertions(+), 16 deletions(-) (limited to 'modules/bar/components') diff --git a/modules/bar/components/ActiveWindow.qml b/modules/bar/components/ActiveWindow.qml index a4a16e5..a87d17b 100644 --- a/modules/bar/components/ActiveWindow.qml +++ b/modules/bar/components/ActiveWindow.qml @@ -7,7 +7,7 @@ import QtQuick StyledRect { id: root - readonly property color colour: Appearance.colours.pink + property color colour: Appearance.colours.pink animate: true clip: true diff --git a/modules/bar/components/Clock.qml b/modules/bar/components/Clock.qml index c4764a5..6758ea6 100644 --- a/modules/bar/components/Clock.qml +++ b/modules/bar/components/Clock.qml @@ -6,7 +6,7 @@ import QtQuick StyledRect { id: root - readonly property color colour: Appearance.colours.peach + property color colour: Appearance.colours.peach MaterialIcon { id: icon diff --git a/modules/bar/components/StatusIcons.qml b/modules/bar/components/StatusIcons.qml index 1b0ee90..b0042e9 100644 --- a/modules/bar/components/StatusIcons.qml +++ b/modules/bar/components/StatusIcons.qml @@ -9,7 +9,7 @@ import QtQuick.Controls StyledRect { id: root - readonly property color colour: Appearance.colours.rosewater + property color colour: Appearance.colours.rosewater animate: true clip: true diff --git a/modules/bar/components/Tray.qml b/modules/bar/components/Tray.qml index 2ce5cdc..98a7dfe 100644 --- a/modules/bar/components/Tray.qml +++ b/modules/bar/components/Tray.qml @@ -1,8 +1,13 @@ import "root:/widgets" +import "root:/config" import Quickshell.Services.SystemTray import QtQuick StyledRect { + id: root + + property color colour: Appearance.colours.lavender + animate: true clip: true visible: width > 0 && height > 0 // To avoid warnings about being visible with no size @@ -11,7 +16,9 @@ StyledRect { Repeater { model: SystemTray.items - TrayItem {} + TrayItem { + colour: root.colour + } } } } diff --git a/modules/bar/components/TrayItem.qml b/modules/bar/components/TrayItem.qml index e6e9402..6be2904 100644 --- a/modules/bar/components/TrayItem.qml +++ b/modules/bar/components/TrayItem.qml @@ -6,9 +6,10 @@ import QtQuick import Qt5Compat.GraphicalEffects MouseArea { - id: item + id: root required property SystemTrayItem modelData + required property color colour acceptedButtons: Qt.LeftButton | Qt.RightButton width: Appearance.font.size.smaller * 2 @@ -25,7 +26,7 @@ MouseArea { QsMenuAnchor { id: menu - menu: item.modelData.menu + menu: root.modelData.menu anchor.window: this.QsWindow.window } @@ -33,7 +34,7 @@ MouseArea { id: icon visible: !BarConfig.tray.recolourIcons - source: item.modelData.icon + source: root.modelData.icon anchors.fill: parent } @@ -41,7 +42,7 @@ MouseArea { visible: BarConfig.tray.recolourIcons anchors.fill: icon source: icon - color: Appearance.colours.lavender + color: root.colour Behavior on color { ColorAnimation { diff --git a/modules/bar/components/workspaces/ActiveIndicator.qml b/modules/bar/components/workspaces/ActiveIndicator.qml index 26ca673..2d33e20 100644 --- a/modules/bar/components/workspaces/ActiveIndicator.qml +++ b/modules/bar/components/workspaces/ActiveIndicator.qml @@ -26,8 +26,7 @@ Rectangle { y: vertical ? offset + 1 : 1 width: (vertical ? BarConfig.sizes.innerHeight : size) - 2 height: (vertical ? size : BarConfig.sizes.innerHeight) - 2 - color: Appearance.colours.mauve - radius: Appearance.rounding.full + radius: BarConfig.workspaces.rounded ? Appearance.rounding.full : 0 anchors.horizontalCenter: vertical ? parent.horizontalCenter : undefined anchors.verticalCenter: vertical ? undefined : parent.verticalCenter diff --git a/modules/bar/components/workspaces/OccupiedBg.qml b/modules/bar/components/workspaces/OccupiedBg.qml index f9de104..70aee84 100644 --- a/modules/bar/components/workspaces/OccupiedBg.qml +++ b/modules/bar/components/workspaces/OccupiedBg.qml @@ -54,7 +54,7 @@ Item { property Workspace end: root.workspaces[modelData.end - 1] ?? null color: Appearance.alpha(Appearance.colours.m3surfaceContainerHigh, true) - radius: Appearance.rounding.full + radius: BarConfig.workspaces.rounded ? Appearance.rounding.full : 0 x: start?.x ?? 0 y: start?.y ?? 0 diff --git a/modules/bar/components/workspaces/Workspace.qml b/modules/bar/components/workspaces/Workspace.qml index 2e30169..bd28f7a 100644 --- a/modules/bar/components/workspaces/Workspace.qml +++ b/modules/bar/components/workspaces/Workspace.qml @@ -16,13 +16,14 @@ Item { readonly property bool isWorkspace: true // Flag for finding workspace children // Unanimated prop for others to use as reference - readonly property real size: childrenRect[vertical ? "height" : "width"] + (isOccupied ? Appearance.padding.normal : 0) + readonly property real size: childrenRect[vertical ? "height" : "width"] + (shouldPad ? Appearance.padding.normal : 0) readonly property int ws: groupOffset + index + 1 readonly property bool isOccupied: occupied[ws] ?? false + readonly property bool shouldPad: isOccupied && BarConfig.workspaces.showWindows - Layout.preferredWidth: childrenRect.width + (isOccupied && !vertical ? Appearance.padding.normal : 0) - Layout.preferredHeight: childrenRect.height + (isOccupied && vertical ? Appearance.padding.normal : 0) + Layout.preferredWidth: childrenRect.width + (shouldPad && !vertical ? Appearance.padding.normal : 0) + Layout.preferredHeight: childrenRect.height + (shouldPad && vertical ? Appearance.padding.normal : 0) StyledText { id: indicator @@ -49,7 +50,7 @@ Item { Repeater { model: ScriptModel { - values: Hyprland.clients.filter(c => c.workspace?.id === root.ws) + values: BarConfig.workspaces.showWindows ? Hyprland.clients.filter(c => c.workspace?.id === root.ws) : [] } MaterialIcon { diff --git a/modules/bar/components/workspaces/Workspaces.qml b/modules/bar/components/workspaces/Workspaces.qml index ea2cad9..a94928b 100644 --- a/modules/bar/components/workspaces/Workspaces.qml +++ b/modules/bar/components/workspaces/Workspaces.qml @@ -7,7 +7,7 @@ Item { id: root property alias vertical: layout.vertical - readonly property color colour: Appearance.colours.mauve + property color colour: Appearance.colours.mauve readonly property list workspaces: layout.children.filter(c => c.isWorkspace) readonly property var occupied: Hyprland.workspaces.values.reduce((acc, curr) => { @@ -43,6 +43,7 @@ Item { } ActiveIndicator { + color: root.colour vertical: root.vertical workspaces: root.workspaces mask: layout -- cgit v1.2.3-freya