import Quickshell // for PanelWindow import QtQuick // for Text import QtQuick.Shapes import QtQuick.Controls import QtQuick.Layouts import Quickshell.Io import Quickshell.Widgets import Quickshell.Wayland import Quickshell.Hyprland PanelWindow { property real radius: 10 onRadiusChanged: Hyprland.dispatch("exec hyprctl keyword decoration:rounding " + radius) anchors { top: true left: true right: true bottom: true } Component.onCompleted: { Hyprland.dispatch("exec hyprctl keyword monitor " + Hyprland.monitorFor(root.screen).name + ",addreserved," + topEx + "," + botEx + "," + leftEx + "," + rightEx) Hyprland.dispatch("exec hyprctl keyword decoration:rounding " + radius) } property int topEx: topRect.reserve property int botEx: botRect.reserve property int leftEx: leftRect.reserve property int rightEx: rightRect.reserve id: root exclusionMode: ExclusionMode.Ignore WlrLayershell.layer: WlrLayer.Top //color: Pywal.special.background color: "transparent" mask: Region { Region { item: topRect.topRectArea } Region { item: leftRect } Region { item: topRect.midFO.visible ? topRect.midFO : leftRect } Region { item: dash.visible ? dash : leftRect } } BarBottom { id: botRect } BarLeft { id: leftRect window: root } BarRight { id: rightRect } Shape { x: leftRect.x + leftRect.width - 1 y: topRect.cornerY ShapePath { strokeWidth: 4 strokeColor: Pywal.special.background fillColor: Pywal.special.background startX: 0; startY: 0 PathLine { relativeX: 0; relativeY: radius } PathArc { radiusX: radius radiusY: -radius relativeX: radius relativeY: -radius } PathLine { relativeX: -radius; relativeY: 0 } } } Shape { x: rightRect.x + 1 y: topRect.cornerY ShapePath { strokeWidth: 4 strokeColor: Pywal.special.background fillColor: Pywal.special.background startX: 0; startY: 0 PathLine { relativeX: 0; relativeY: radius } PathArc { direction: PathArc.Counterclockwise radiusX: radius radiusY: radius relativeX: -radius relativeY: -radius } PathLine { relativeX: radius; relativeY: 0 } } } Shape { x: leftRect.x + leftRect.width - 1 y: botRect.y + 1 ShapePath { strokeWidth: 4 strokeColor: Pywal.special.background fillColor: Pywal.special.background startX: 0; startY: 0 PathLine { relativeX: 0; relativeY: -radius } PathArc { direction: PathArc.Counterclockwise radiusX: radius radiusY: radius relativeX: radius relativeY: radius } PathLine { relativeX: -radius; relativeY: 0 } } } Shape { x: rightRect.x + 1 y: botRect.y + 1 ShapePath { strokeWidth: 4 strokeColor: Pywal.special.background fillColor: Pywal.special.background startX: 0; startY: 0 PathLine { relativeX: 0; relativeY: -radius } PathArc { radiusX: radius radiusY: -radius relativeX: -radius relativeY: radius } PathLine { relativeX: radius; relativeY: 0 } } } BarTop { id: topRect x: leftRect.x + leftRect.width width: rightRect.x - x //y: topRect.y + topRect.height - 1 window: root radius: root.radius onShowDashChanged: dash.visible = showDash } onTopExChanged: Hyprland.dispatch("exec hyprctl keyword monitor " + Hyprland.monitorFor(root.screen).name + ",addreserved," + topEx + "," + botEx + "," + leftEx + "," + rightEx) onBotExChanged: Hyprland.dispatch("exec hyprctl keyword monitor " + Hyprland.monitorFor(root.screen).name + ",addreserved," + topEx + "," + botEx + "," + leftEx + "," + rightEx) onRightExChanged: Hyprland.dispatch("exec hyprctl keyword monitor " + Hyprland.monitorFor(root.screen).name + ",addreserved," + topEx + "," + botEx + "," + leftEx + "," + rightEx) onLeftExChanged: Hyprland.dispatch("exec hyprctl keyword monitor " + Hyprland.monitorFor(root.screen).name + ",addreserved," + topEx + "," + botEx + "," + leftEx + "," + rightEx) Dashboard { id: dash x: root.screen.width / 2 - width / 2 y: topRect.reserve - 1 onVisibleChanged: topRect.showDash = visible //onEntered: topRect.midFO.visible = true onHoveredChanged: topRect.midFO.visible = !hovered radius: root.radius } }