diff --git a/modules/Shell.qml b/modules/Shell.qml index 41e7643..9971716 100644 --- a/modules/Shell.qml +++ b/modules/Shell.qml @@ -4,8 +4,9 @@ import "launcher" import "pomodoro" import "powermenu" import "storybook" -import Quickshell import QtQuick +import Quickshell +import Quickshell.Wayland Variants { model: Quickshell.screens @@ -15,7 +16,65 @@ Variants { required property ShellScreen modelData - Bar {} + PanelWindow { + id: exclusionZone + + anchors.top: true + anchors.left: true + anchors.right: true + + implicitWidth: bar.width + implicitHeight: bar.height + + color: "transparent" + } + + PanelWindow { + id: topWindow + + anchors.top: true + anchors.left: true + anchors.right: true + anchors.bottom: true + + color: 'transparent' + + WlrLayershell.exclusionMode: ExclusionMode.Ignore + WlrLayershell.layer: WlrLayer.Top + + mask: Region { + width: topWindow.width + height: topWindow.height + intersection: Intersection.Xor + regions: regions.instances + } + + Variants { + id: regions + + model: panels.children + + Region { + required property Item modelData + + x: modelData.x + y: modelData.y + width: modelData.width + height: modelData.height + intersection: Intersection.Subtract + } + } + + Item { + id: panels + + anchors.fill: parent + + Bar { + id: bar + } + } + } Launcher {} Pomodoro {} PowerMenu {} diff --git a/modules/bar/Bar.qml b/modules/bar/Bar.qml index 98d2aba..7a449bc 100644 --- a/modules/bar/Bar.qml +++ b/modules/bar/Bar.qml @@ -3,55 +3,29 @@ import "components/bluetooth" import "components/hyprland" import "components/notifications" import "components/tray" +import qs.components import qs.config import QtQuick import QtQuick.Layouts -import Quickshell -import Quickshell.Wayland -PanelWindow { - id: parentWindow +StyledWrapperRectangle { + id: root - anchors.top: true - anchors.left: true - anchors.right: true + anchors.left: parent.left + anchors.right: parent.right + anchors.top: parent.top + anchors.leftMargin: 8 + anchors.rightMargin: 8 + anchors.topMargin: 6 + anchors.bottomMargin: 6 - implicitHeight: 50 - color: 'transparent' + margin: 4 - WlrLayershell.layer: WlrLayer.Top - - Item { - - anchors.fill: parent - anchors.leftMargin: 8 - anchors.rightMargin: 8 - anchors.topMargin: 4 - anchors.bottomMargin: 4 - - Rectangle { - id: background - anchors.fill: parent - color: Styling.theme.base100 - radius: Styling.theme.radiusBox - - border { - color: Styling.theme.base200 - width: Styling.theme.border - pixelAligned: true - } - } + RowLayout { RowLayout { id: leftbar - anchors.left: parent.left - anchors.verticalCenter: parent.verticalCenter - - anchors.leftMargin: 8 - anchors.topMargin: 4 - anchors.bottomMargin: 4 - spacing: Styling.layout.spacing.base SystemLogo { @@ -66,11 +40,7 @@ PanelWindow { RowLayout { id: centerbar - anchors.horizontalCenter: parent.horizontalCenter - anchors.verticalCenter: parent.verticalCenter - - anchors.topMargin: 4 - anchors.bottomMargin: 4 + Layout.alignment: Qt.AlignHCenter spacing: Styling.layout.spacing.base @@ -80,12 +50,7 @@ PanelWindow { RowLayout { id: rightbar - anchors.right: parent.right - anchors.verticalCenter: parent.verticalCenter - - anchors.rightMargin: 8 - anchors.topMargin: 4 - anchors.bottomMargin: 4 + Layout.alignment: Qt.AlignRight spacing: Styling.layout.spacing.base