diff options
| author | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-09-14 19:05:08 +1000 |
|---|---|---|
| committer | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-09-14 19:05:08 +1000 |
| commit | 74272292979a9e9727444813d1af569c1a33cd9b (patch) | |
| tree | 6fb0cb303b30d4a6f3117ba8623895ff7b3ba16a | |
| parent | utilities: add scrim to recording delete modal (diff) | |
| download | caelestia-shell-74272292979a9e9727444813d1af569c1a33cd9b.tar.gz caelestia-shell-74272292979a9e9727444813d1af569c1a33cd9b.tar.bz2 caelestia-shell-74272292979a9e9727444813d1af569c1a33cd9b.zip | |
internal: add opacity mask component
| -rw-r--r-- | components/effects/OpacityMask.qml | 9 | ||||
| -rw-r--r-- | modules/bar/components/workspaces/SpecialWorkspaces.qml | 7 | ||||
| -rw-r--r-- | modules/lock/Media.qml | 8 |
3 files changed, 13 insertions, 11 deletions
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 |