diff --git a/kwin/build.sh b/kwin/build.sh
index d897bb4..78b5947 100755
--- a/kwin/build.sh
+++ b/kwin/build.sh
@@ -138,6 +138,7 @@ 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"
generate "fire" "Fire [Burn-My-Windows]" "The classic effect inspired by Compiz"
+generate "focus" "Focus [Burn-My-Windows]" "Focus dude, focus!"
generate "glide" "Glide [Burn-My-Windows]" "Fade the window to transparency with subtle 3D effects"
generate "glitch" "Glitch [Burn-My-Windows]" "This effect applies some intentional graphics issues to your windows"
generate "hexagon" "Hexagon [Burn-My-Windows]" "With glowing lines and hexagon-shaped tiles, this effect looks very sci-fi"
diff --git a/kwin/focus/config.ui b/kwin/focus/config.ui
new file mode 100755
index 0000000..e5d7ff6
--- /dev/null
+++ b/kwin/focus/config.ui
@@ -0,0 +1,93 @@
+
+
+
+
+
+ BMWConfigForm
+
+
+
+ 0
+ 0
+ 562
+ 365
+
+
+
+ -
+
+
+ Animation Time [ms]
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+ Quality
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+ 100
+
+
+ 9999
+
+
+ 100
+
+
+
+ -
+
+
+ Amount
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+ 0
+
+
+ 1.000000000000000
+
+
+ 10.000000000000000
+
+
+
+ -
+
+
+ 0
+
+
+ 0.000000000000000
+
+
+ 100.000000000000000
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/kwin/focus/main.xml b/kwin/focus/main.xml
new file mode 100755
index 0000000..3b2d617
--- /dev/null
+++ b/kwin/focus/main.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+ 500
+
+
+ 50
+
+
+ 3
+
+
+
\ No newline at end of file
diff --git a/kwin/focus/onSettingsChanged.js b/kwin/focus/onSettingsChanged.js
new file mode 100644
index 0000000..f04305d
--- /dev/null
+++ b/kwin/focus/onSettingsChanged.js
@@ -0,0 +1,9 @@
+// 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, 'uBlurAmount', effect.readConfig('Amount', 1.0));
+effect.setUniform(this.shader, 'uBlurQuality', effect.readConfig('Quality', 1.0));