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