diff --git a/kwin/build.sh b/kwin/build.sh
index 447d8dd..78854d4 100755
--- a/kwin/build.sh
+++ b/kwin/build.sh
@@ -26,19 +26,26 @@ mkdir -p "${BUILD_DIR}"
# $1: The nick of the effect (e.g. "tv")
# $2: The name of the effect (e.g. "TV Effect")
-# $3: A short description of the effect
+# $3: A short description of the effect (e.g. "Make windows close like turning off a TV")
generate() {
- cp -r "kwin4_effect_$1" "${BUILD_DIR}"
# Create resource directories.
mkdir -p "${BUILD_DIR}/kwin4_effect_$1/contents/shaders"
mkdir -p "${BUILD_DIR}/kwin4_effect_$1/contents/code"
+ mkdir -p "${BUILD_DIR}/kwin4_effect_$1/contents/config"
+ mkdir -p "${BUILD_DIR}/kwin4_effect_$1/contents/ui"
- sed -e "s;%NICK%;$1;g" -e "s;%NAME%;$2;g" -e "s;%DESCRIPTION%;$3;g" \
- metadata.desktop.in > "${BUILD_DIR}/kwin4_effect_$1/metadata.desktop"
+ cp "kwin4_effect_$1/main.xml" "${BUILD_DIR}/kwin4_effect_$1/contents/config"
+ cp "kwin4_effect_$1/config.ui" "${BUILD_DIR}/kwin4_effect_$1/contents/ui"
- sed -e "s;%NICK%;$1;g" -e "s;%NAME%;$2;g" -e "s;%DESCRIPTION%;$3;g" \
- main.js.in > "${BUILD_DIR}/kwin4_effect_$1/contents/code/main.js"
+ perl -pe "s/%LOAD_CONFIG%/`cat kwin4_effect_$1/loadConfig.js | tr '/' '\f' `/g;" \
+ main.js.in | tr '\f' '/' > "${BUILD_DIR}/kwin4_effect_$1/contents/code/main.js"
+
+ perl -pi -e "s/%NICK%/$1/g;" "${BUILD_DIR}/kwin4_effect_$1/contents/code/main.js"
+
+ perl -pe "s/%NICK%/$1/g;" metadata.desktop.in > "${BUILD_DIR}/kwin4_effect_$1/metadata.desktop"
+ perl -pi -e "s/%NAME%/$2/g;" "${BUILD_DIR}/kwin4_effect_$1/metadata.desktop"
+ perl -pi -e "s/%DESCRIPTION%/$3/g;" "${BUILD_DIR}/kwin4_effect_$1/metadata.desktop"
{
echo "#version 140"
diff --git a/kwin/kwin4_effect_tv/contents/ui/config.ui b/kwin/kwin4_effect_tv/config.ui
similarity index 100%
rename from kwin/kwin4_effect_tv/contents/ui/config.ui
rename to kwin/kwin4_effect_tv/config.ui
diff --git a/kwin/kwin4_effect_tv/loadConfig.js b/kwin/kwin4_effect_tv/loadConfig.js
new file mode 100644
index 0000000..e281b8e
--- /dev/null
+++ b/kwin/kwin4_effect_tv/loadConfig.js
@@ -0,0 +1,7 @@
+loadConfig() {
+ const defaultDuration = 400;
+ const duration = effect.readConfig('Duration', defaultDuration) || defaultDuration;
+ this.duration = animationTime(duration);
+
+ effect.setUniform(this.shader, 'uColor', effect.readConfig('Color', 'white'));
+}
\ No newline at end of file
diff --git a/kwin/kwin4_effect_tv/contents/config/main.xml b/kwin/kwin4_effect_tv/main.xml
similarity index 91%
rename from kwin/kwin4_effect_tv/contents/config/main.xml
rename to kwin/kwin4_effect_tv/main.xml
index 4d89142..0a6d131 100755
--- a/kwin/kwin4_effect_tv/contents/config/main.xml
+++ b/kwin/kwin4_effect_tv/main.xml
@@ -7,7 +7,7 @@
0
- 128,128,128
+ 255,255,255
\ No newline at end of file
diff --git a/kwin/main.js.in b/kwin/main.js.in
index 0e9ebe2..67e6fb5 100755
--- a/kwin/main.js.in
+++ b/kwin/main.js.in
@@ -30,13 +30,7 @@ class BMW%NICK%Effect {
this.loadConfig();
}
- loadConfig() {
- const defaultDuration = 1000;
- const duration = effect.readConfig("Duration", defaultDuration) || defaultDuration;
- this.duration = animationTime(duration);
-
- effect.setUniform(this.shader, "uColor", effect.readConfig("Color", "white"));
- }
+ %LOAD_CONFIG%
static isScaleWindow(window) {
// We don't want to animate most of plasmashell's windows, yet, some