diff --git a/kwin/build.sh b/kwin/build.sh
index fd6e2f3..e7678f7 100755
--- a/kwin/build.sh
+++ b/kwin/build.sh
@@ -130,6 +130,7 @@ generate() {
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 "doom" "Doom [Burn-My-Windows]" "Melt your windows"
generate "fire" "Fire [Burn-My-Windows]" "The classic effect inspired by Compiz"
generate "hexagon" "Hexagon [Burn-My-Windows]" "With glowing lines and hexagon-shaped tiles, this effect looks very sci-fi"
generate "incinerate" "Incinerate [Burn-My-Windows]" "A less snappy but definitely more fancy take on the fire effect"
diff --git a/kwin/doom/config.ui b/kwin/doom/config.ui
new file mode 100755
index 0000000..ef0b778
--- /dev/null
+++ b/kwin/doom/config.ui
@@ -0,0 +1,90 @@
+
+
+ BMWConfigForm
+
+
+
+ 0
+ 0
+ 562
+ 365
+
+
+
+ -
+
+
+ Duration:
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+ Pixel Size
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+ milliseconds
+
+
+ 100
+
+
+ 9999
+
+
+ 100
+
+
+
+ -
+
+
+ Randomness
+
+
+ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter
+
+
+
+ -
+
+
+ 0
+
+
+ 1.000000000000000
+
+
+ 50.000000000000000
+
+
+
+ -
+
+
+ 0
+
+
+ 1.000000000000000
+
+
+ 100.000000000000000
+
+
+
+
+
+
+
+
diff --git a/kwin/doom/main.xml b/kwin/doom/main.xml
new file mode 100755
index 0000000..4f8166c
--- /dev/null
+++ b/kwin/doom/main.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+ 1000
+
+
+ 10
+
+
+ 10
+
+
+ 10
+
+
+
\ No newline at end of file
diff --git a/kwin/doom/onSettingsChanged.js b/kwin/doom/onSettingsChanged.js
new file mode 100644
index 0000000..d9a9eef
--- /dev/null
+++ b/kwin/doom/onSettingsChanged.js
@@ -0,0 +1,12 @@
+// 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.
+
+// I have not yet found a way to scaling the actor canvas on KWin. So this effect cannot
+// look as good as on GNOME.
+effect.setUniform(this.shader, 'uActorScale', 1.0);
+
+effect.setUniform(this.shader, 'uHorizontalScale',
+ effect.readConfig('HorizontalScale', 1.0));
+effect.setUniform(this.shader, 'uVerticalScale', effect.readConfig('VerticalScale', 1.0));
+effect.setUniform(this.shader, 'uPixelSize', effect.readConfig('PixelSize', 1.0));