From 74272292979a9e9727444813d1af569c1a33cd9b Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Sun, 14 Sep 2025 19:05:08 +1000 Subject: internal: add opacity mask component --- components/effects/OpacityMask.qml | 9 +++++++++ modules/bar/components/workspaces/SpecialWorkspaces.qml | 7 ++----- modules/lock/Media.qml | 8 ++------ 3 files changed, 13 insertions(+), 11 deletions(-) create mode 100644 components/effects/OpacityMask.qml diff --git a/components/effects/OpacityMask.qml b/components/effects/OpacityMask.qml new file mode 100644 index 0000000..22e4249 --- /dev/null +++ b/components/effects/OpacityMask.qml @@ -0,0 +1,9 @@ +import Quickshell +import QtQuick + +ShaderEffect { + required property Item source + required property Item maskSource + + fragmentShader: Qt.resolvedUrl(`${Quickshell.shellDir}/assets/shaders/opacitymask.frag.qsb`) +} diff --git a/modules/bar/components/workspaces/SpecialWorkspaces.qml b/modules/bar/components/workspaces/SpecialWorkspaces.qml index 61ec723..ff2652e 100644 --- a/modules/bar/components/workspaces/SpecialWorkspaces.qml +++ b/modules/bar/components/workspaces/SpecialWorkspaces.qml @@ -18,11 +18,8 @@ Item { readonly property string activeSpecial: (Config.bar.workspaces.perMonitorWorkspaces ? monitor : Hypr.focusedMonitor)?.lastIpcObject.specialWorkspace.name ?? "" layer.enabled: true - layer.effect: ShaderEffect { - required property Item source - readonly property Item maskSource: mask - - fragmentShader: Qt.resolvedUrl(`${Quickshell.shellDir}/assets/shaders/opacitymask.frag.qsb`) + layer.effect: OpacityMask { + maskSource: mask } Item { diff --git a/modules/lock/Media.qml b/modules/lock/Media.qml index 79bd285..b7e58bb 100644 --- a/modules/lock/Media.qml +++ b/modules/lock/Media.qml @@ -4,7 +4,6 @@ import qs.components import qs.components.effects import qs.services import qs.config -import Quickshell import QtQuick import QtQuick.Layouts @@ -27,11 +26,8 @@ Item { sourceSize.height: height layer.enabled: true - layer.effect: ShaderEffect { - required property Item source - readonly property Item maskSource: mask - - fragmentShader: Qt.resolvedUrl(`${Quickshell.shellDir}/assets/shaders/opacitymask.frag.qsb`) + layer.effect: OpacityMask { + maskSource: mask } opacity: status === Image.Ready ? 1 : 0 -- cgit v1.2.3-freya