diff options
| -rw-r--r-- | modules/background/Background.qml | 32 | ||||
| -rw-r--r-- | modules/background/Border.qml | 108 | ||||
| -rw-r--r-- | modules/drawers/Border.qml | 52 | ||||
| -rw-r--r-- | modules/drawers/Drawers.qml | 49 | ||||
| -rw-r--r-- | modules/drawers/Exclusions.qml | 39 | ||||
| -rw-r--r-- | shell.qml | 2 |
6 files changed, 154 insertions, 128 deletions
diff --git a/modules/background/Background.qml b/modules/background/Background.qml index fe02a1a..ca3aaff 100644 --- a/modules/background/Background.qml +++ b/modules/background/Background.qml @@ -5,30 +5,22 @@ import Quickshell.Wayland Variants { model: Quickshell.screens - Scope { - id: scope + StyledWindow { + id: win required property ShellScreen modelData - Border { - screen: scope.modelData - } + screen: modelData + name: "background" + exclusionMode: ExclusionMode.Ignore + layer: WlrLayer.Background + color: "black" - StyledWindow { - id: win + anchors.top: true + anchors.bottom: true + anchors.left: true + anchors.right: true - screen: scope.modelData - name: "background" - exclusionMode: ExclusionMode.Ignore - layer: WlrLayer.Background - color: "black" - - anchors.top: true - anchors.bottom: true - anchors.left: true - anchors.right: true - - Wallpaper {} - } + Wallpaper {} } } diff --git a/modules/background/Border.qml b/modules/background/Border.qml deleted file mode 100644 index 3c2958a..0000000 --- a/modules/background/Border.qml +++ /dev/null @@ -1,108 +0,0 @@ -pragma ComponentBehavior: Bound - -import "root:/widgets" -import "root:/services" -import "root:/config" -import Quickshell -import QtQuick -import QtQuick.Effects - -Scope { - id: root - - required property ShellScreen screen - - StyledWindow { - id: win - - screen: root.screen - name: "border" - exclusionMode: ExclusionMode.Ignore - - mask: Region { - x: BorderConfig.thickness - y: BorderConfig.thickness - width: win.screen.width - BorderConfig.thickness * 2 - height: win.screen.height - BorderConfig.thickness * 2 - intersection: Intersection.Xor - } - - anchors.top: true - anchors.bottom: true - anchors.left: true - anchors.right: true - - StyledRect { - id: rect - - anchors.fill: parent - color: Colours.alpha(BorderConfig.colour, false) - visible: false - } - - Item { - id: mask - - anchors.fill: parent - layer.enabled: true - visible: false - - Rectangle { - anchors.fill: parent - anchors.margins: BorderConfig.thickness - radius: BorderConfig.rounding - } - } - - MultiEffect { - id: effect - - visible: false - anchors.fill: parent - maskEnabled: true - maskInverted: true - maskSource: mask - source: rect - maskThresholdMin: 0.5 - maskSpreadAtMin: 1 - } - - LayerShadow { - source: effect - } - - MouseArea { - anchors.fill: parent - hoverEnabled: true - onPositionChanged: event => Drawers.setPosForScreen(root.screen, event.x, event.y) - } - } - - ExclusionZone { - anchors.left: false - } - - ExclusionZone { - anchors.top: false - } - - ExclusionZone { - anchors.right: false - } - - ExclusionZone { - anchors.bottom: false - } - - component ExclusionZone: StyledWindow { - screen: root.screen - name: "border-exclusion" - width: BorderConfig.thickness - height: BorderConfig.thickness - - anchors.top: true - anchors.left: true - anchors.bottom: true - anchors.right: true - } -} diff --git a/modules/drawers/Border.qml b/modules/drawers/Border.qml new file mode 100644 index 0000000..124f73f --- /dev/null +++ b/modules/drawers/Border.qml @@ -0,0 +1,52 @@ +import "root:/widgets" +import "root:/services" +import "root:/config" +import Quickshell +import QtQuick +import QtQuick.Effects + +Item { + id: root + + required property ShellScreen screen + + anchors.fill: parent + + StyledRect { + id: rect + + anchors.fill: parent + color: Colours.alpha(BorderConfig.colour, false) + visible: false + } + + Item { + id: mask + + anchors.fill: parent + layer.enabled: true + visible: false + + Rectangle { + anchors.fill: parent + anchors.margins: BorderConfig.thickness + radius: BorderConfig.rounding + } + } + + MultiEffect { + anchors.fill: parent + maskEnabled: true + maskInverted: true + maskSource: mask + source: rect + maskThresholdMin: 0.5 + maskSpreadAtMin: 1 + } + + MouseArea { + anchors.fill: parent + hoverEnabled: true + onPositionChanged: event => Drawers.setPosForScreen(root.screen, event.x, event.y) + } +} diff --git a/modules/drawers/Drawers.qml b/modules/drawers/Drawers.qml new file mode 100644 index 0000000..30fcae0 --- /dev/null +++ b/modules/drawers/Drawers.qml @@ -0,0 +1,49 @@ +import "root:/widgets" +import "root:/config" +import Quickshell + +Variants { + model: Quickshell.screens + + Scope { + id: scope + + required property ShellScreen modelData + + Exclusions { + screen: scope.modelData + } + + StyledWindow { + id: win + + screen: scope.modelData + name: "drawers" + exclusionMode: ExclusionMode.Ignore + + mask: Region { + x: BorderConfig.thickness + y: BorderConfig.thickness + width: scope.modelData.width - BorderConfig.thickness * 2 + height: scope.modelData.height - BorderConfig.thickness * 2 + intersection: Intersection.Xor + } + + anchors.top: true + anchors.bottom: true + anchors.left: true + anchors.right: true + + Border { + id: border + + visible: false + screen: scope.modelData + } + + LayerShadow { + source: border + } + } + } +} diff --git a/modules/drawers/Exclusions.qml b/modules/drawers/Exclusions.qml new file mode 100644 index 0000000..c8b3959 --- /dev/null +++ b/modules/drawers/Exclusions.qml @@ -0,0 +1,39 @@ +pragma ComponentBehavior: Bound + +import "root:/widgets" +import "root:/config" +import Quickshell + +Scope { + id: root + + required property ShellScreen screen + + ExclusionZone { + anchors.left: false + } + + ExclusionZone { + anchors.top: false + } + + ExclusionZone { + anchors.right: false + } + + ExclusionZone { + anchors.bottom: false + } + + component ExclusionZone: StyledWindow { + screen: root.screen + name: "border-exclusion" + width: BorderConfig.thickness + height: BorderConfig.thickness + + anchors.top: true + anchors.left: true + anchors.bottom: true + anchors.right: true + } +} @@ -2,6 +2,7 @@ import "modules/bar" import "modules/launcher" import "modules/osd" import "modules/background" +import "modules/drawers" import Quickshell ShellRoot { @@ -9,4 +10,5 @@ ShellRoot { Launcher {} Osd {} Background {} + Drawers {} } |