From 293fbf1d0fa7b5d2fbd83013f1055ab83552ed08 Mon Sep 17 00:00:00 2001 From: Simon Schneegans Date: Sat, 15 Feb 2025 21:11:49 +0100 Subject: [PATCH] :wrench: Port Aura Glow effect to KDE --- kwin/aura-glow/config.ui | 204 ++++++++++++++++++++++++++++ kwin/aura-glow/main.xml | 36 +++++ kwin/aura-glow/onAnimationBegin.js | 8 ++ kwin/aura-glow/onSettingsChanged.js | 14 ++ kwin/build.sh | 1 + 5 files changed, 263 insertions(+) create mode 100755 kwin/aura-glow/config.ui create mode 100755 kwin/aura-glow/main.xml create mode 100644 kwin/aura-glow/onAnimationBegin.js create mode 100644 kwin/aura-glow/onSettingsChanged.js diff --git a/kwin/aura-glow/config.ui b/kwin/aura-glow/config.ui new file mode 100755 index 0000000..7358f82 --- /dev/null +++ b/kwin/aura-glow/config.ui @@ -0,0 +1,204 @@ + + + BMWConfigForm + + + + 0 + 0 + 562 + 353 + + + + + + + Animation Time [ms] + + + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + + + + + + + 100 + + + 9999 + + + 100 + + + + + + + Random Color + + + + + + + Start Hue + + + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + + + + + + + 0.000000000000000 + + + 1.000000000000000 + + + 0.100000000000000 + + + 0.500000000000000 + + + + + + + Speed + + + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + + + + + + + -5.000000000000000 + + + 5.000000000000000 + + + 0.100000000000000 + + + 1.000000000000000 + + + + + + + Saturation + + + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + + + + + + + 0.000000000000000 + + + 1.000000000000000 + + + 0.100000000000000 + + + 1.000000000000000 + + + + + + + Edge Size + + + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + + + + + + + 0.000000000000000 + + + 1.000000000000000 + + + 0.100000000000000 + + + 1.000000000000000 + + + + + + + Edge Hardness + + + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + + + + + + + 0.000000000000000 + + + 1.000000000000000 + + + 0.100000000000000 + + + 1.000000000000000 + + + + + + + Blur Amount + + + Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter + + + + + + + 0.000000000000000 + + + 30.000000000000000 + + + 1.000000000000000 + + + 1.000000000000000 + + + + + + + + diff --git a/kwin/aura-glow/main.xml b/kwin/aura-glow/main.xml new file mode 100755 index 0000000..614c07b --- /dev/null +++ b/kwin/aura-glow/main.xml @@ -0,0 +1,36 @@ + + + + + + + + + 750 + + + false + + + 0.0 + + + 2.5 + + + 0.75 + + + 0.75 + + + 0.25 + + + 15.0 + + + \ No newline at end of file diff --git a/kwin/aura-glow/onAnimationBegin.js b/kwin/aura-glow/onAnimationBegin.js new file mode 100644 index 0000000..462658c --- /dev/null +++ b/kwin/aura-glow/onAnimationBegin.js @@ -0,0 +1,8 @@ +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +// This part is automatically included in the effect's source during the build process. +// The code below is called whenever a window is closed or opened. + +let seed = [Math.random(), Math.random()]; +effect.setUniform(this.shader, 'uSeed', seed); diff --git a/kwin/aura-glow/onSettingsChanged.js b/kwin/aura-glow/onSettingsChanged.js new file mode 100644 index 0000000..a4b509c --- /dev/null +++ b/kwin/aura-glow/onSettingsChanged.js @@ -0,0 +1,14 @@ +// SPDX-FileCopyrightText: Simon Schneegans +// SPDX-License-Identifier: GPL-3.0-or-later + +// This part is automatically included in the effect's source during the build process. +// The code below is called whenever the user changes something in the configuration of +// the effect. + +effect.setUniform(this.shader, 'uColorSpeed', effect.readConfig('Speed', 1.0)); +effect.setUniform(this.shader, 'uRandomColorOffset', effect.readConfig('RandomColor', true) ? 1.0 : 0.0); +effect.setUniform(this.shader, 'uColorOffset', effect.readConfig('StartHue', 1.0)); +effect.setUniform(this.shader, 'uColorSaturation', effect.readConfig('Saturation', 1.0)); +effect.setUniform(this.shader, 'uBlur', effect.readConfig('BlurAmount', 1.0)); +effect.setUniform(this.shader, 'uEdgeSize', effect.readConfig('EdgeSize', 1.0)); +effect.setUniform(this.shader, 'uEdgeHardness', effect.readConfig('EdgeHardness', 1.0)); diff --git a/kwin/build.sh b/kwin/build.sh index 533e753..2fb4648 100755 --- a/kwin/build.sh +++ b/kwin/build.sh @@ -154,6 +154,7 @@ generate_impl() { } # Now run the above method for all supported effects. +generate "aura-glow" "Aura Glow [Burn-My-Windows]" "A radiant edge-lit animation" generate "doom" "Doom [Burn-My-Windows]" "Melt your windows" generate "energize-a" "Energize A [Burn-My-Windows]" "Beam your windows away" generate "energize-b" "Energize B [Burn-My-Windows]" "Using different transporter technology results in an alternative visual effect"