feat(overview-backdrop): softer wave, breathing pulse, random glitches

This commit is contained in:
Damocles 2026-04-17 10:34:34 +02:00
parent 862169aba0
commit 7cd6716eb8
2 changed files with 101 additions and 14 deletions

View file

@ -32,6 +32,9 @@ PanelWindow {
property real uSize: 50.0
property real uWavePhase: -200
property real uBreath: 0
property real uGlitch: 0
property real uGlitchSeed: 0.0
property vector4d uResolution: Qt.vector4d(width, height, 0, 0)
property color uC0: M.Theme.base0C
property color uC1: M.Theme.base0E
@ -40,8 +43,10 @@ PanelWindow {
Connections {
target: M.NiriIpc
function onOverviewOpenChanged() {
if (!M.NiriIpc.overviewOpen)
if (!M.NiriIpc.overviewOpen) {
fx.uWavePhase = -200;
fx.uBreath = 0;
}
}
}
@ -59,5 +64,66 @@ PanelWindow {
duration: 8000
}
}
// Breathing pulse while overview is open
SequentialAnimation on uBreath {
loops: Animation.Infinite
running: M.NiriIpc.overviewOpen && !M.Theme.reducedMotion
NumberAnimation {
from: 0
to: 1
duration: 2500
easing.type: Easing.InOutSine
}
NumberAnimation {
from: 1
to: 0
duration: 2500
easing.type: Easing.InOutSine
}
}
// Random subtle glitches fire every 1237s, total ~250ms each
Timer {
interval: 20000
repeat: true
running: !M.Theme.reducedMotion
onTriggered: {
interval = 12000 + Math.floor(Math.random() * 25000);
fx.uGlitchSeed = Math.random() * 1000.0;
_glitchAnim.start();
}
}
SequentialAnimation {
id: _glitchAnim
NumberAnimation {
target: fx
property: "uGlitch"
to: 0.7
duration: 50
easing.type: Easing.OutQuad
}
NumberAnimation {
target: fx
property: "uGlitch"
to: 0.15
duration: 50
}
NumberAnimation {
target: fx
property: "uGlitch"
to: 0.85
duration: 60
easing.type: Easing.OutQuad
}
NumberAnimation {
target: fx
property: "uGlitch"
to: 0
duration: 100
easing.type: Easing.InQuad
}
}
}
}