🔧 Add new kwin effect
This commit is contained in:
+29
-18
@@ -22,30 +22,40 @@ cd "$( cd "$( dirname "$0" )" && pwd )" || \
|
||||
|
||||
BUILD_DIR="_build"
|
||||
|
||||
mkdir -p "${BUILD_DIR}"
|
||||
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 (e.g. "Make windows close like turning off a TV")
|
||||
# $1: The nick of the effect (e.g. "energize-a")
|
||||
# $2: The name of the effect (e.g. "Energize A")
|
||||
# $3: A short description of the effect (e.g. "Beam your windows away")
|
||||
generate() {
|
||||
|
||||
# Use the nick for the effect's directory name by replacing dashes by underscoares.
|
||||
DIR_NAME="kwin4_effect_$(echo $1 | tr '-' '_')"
|
||||
|
||||
# Use the name of the effect for the JavaScript class name by removing all spaces.
|
||||
EFFECT_CLASS="BurnMyWindows$(echo $2 | tr -d ' ')"
|
||||
|
||||
# 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"
|
||||
mkdir -p "$BUILD_DIR/$DIR_NAME/contents/shaders"
|
||||
mkdir -p "$BUILD_DIR/$DIR_NAME/contents/code"
|
||||
mkdir -p "$BUILD_DIR/$DIR_NAME/contents/config"
|
||||
mkdir -p "$BUILD_DIR/$DIR_NAME/contents/ui"
|
||||
|
||||
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"
|
||||
# Copy the config and ui files.
|
||||
cp "$DIR_NAME/main.xml" "$BUILD_DIR/$DIR_NAME/contents/config"
|
||||
cp "$DIR_NAME/config.ui" "$BUILD_DIR/$DIR_NAME/contents/ui"
|
||||
|
||||
perl -pe "s/%LOAD_CONFIG%/$(tr '/' '\f' < "kwin4_effect_$1/loadConfig.js")/g;" \
|
||||
main.js.in | tr '\f' '/' > "${BUILD_DIR}/kwin4_effect_$1/contents/code/main.js"
|
||||
perl -pe "s/%LOAD_CONFIG%/$(tr '/' '\f' < "$DIR_NAME/loadConfig.js")/g;" \
|
||||
main.js.in | tr '\f' '/' > "$BUILD_DIR/$DIR_NAME/contents/code/main.js"
|
||||
|
||||
perl -pi -e "s/%NICK%/$1/g;" "${BUILD_DIR}/kwin4_effect_$1/contents/code/main.js"
|
||||
perl -pi -e "s/%EFFECT_CLASS%/$EFFECT_CLASS/g;" "$BUILD_DIR/$DIR_NAME/contents/code/main.js"
|
||||
perl -pi -e "s/%SHADER_NAME%/$1/g;" "$BUILD_DIR/$DIR_NAME/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"
|
||||
cp metadata.desktop.in "$BUILD_DIR/$DIR_NAME/metadata.desktop"
|
||||
perl -pi -e "s/%ICON%/$1/g;" "$BUILD_DIR/$DIR_NAME/metadata.desktop"
|
||||
perl -pi -e "s/%NAME%/$2/g;" "$BUILD_DIR/$DIR_NAME/metadata.desktop"
|
||||
perl -pi -e "s/%DESCRIPTION%/$3/g;" "$BUILD_DIR/$DIR_NAME/metadata.desktop"
|
||||
perl -pi -e "s/%DIR_NAME%/$DIR_NAME/g;" "$BUILD_DIR/$DIR_NAME/metadata.desktop"
|
||||
|
||||
{
|
||||
echo "#version 140"
|
||||
@@ -55,7 +65,7 @@ generate() {
|
||||
echo ""
|
||||
cat "../resources/shaders/common.glsl"
|
||||
cat "../resources/shaders/$1.frag"
|
||||
} > "${BUILD_DIR}/kwin4_effect_$1/contents/shaders/$1_core.frag"
|
||||
} > "$BUILD_DIR/$DIR_NAME/contents/shaders/$1_core.frag"
|
||||
|
||||
{
|
||||
echo "#define KWIN_LEGACY"
|
||||
@@ -64,8 +74,9 @@ generate() {
|
||||
echo ""
|
||||
cat "../resources/shaders/common.glsl"
|
||||
cat "../resources/shaders/$1.frag"
|
||||
} > "${BUILD_DIR}/kwin4_effect_$1/contents/shaders/$1.frag"
|
||||
} > "$BUILD_DIR/$DIR_NAME/contents/shaders/$1.frag"
|
||||
}
|
||||
|
||||
generate "tv" "TV Effect" "Make windows close like turning off a TV"
|
||||
generate "energize-a" "Energize A" "Beam your windows away"
|
||||
# generate "fire" "Fire" "Make windows burn"
|
||||
Reference in New Issue
Block a user