diff --git a/.gitignore b/.gitignore
index 9dba94e..f1a2de5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
/package/contents/code/main.js
+/package/contents/config/main.xml
/.idea
diff --git a/Makefile b/Makefile
index 56d62ca..d99e404 100644
--- a/Makefile
+++ b/Makefile
@@ -2,10 +2,14 @@
INSTALL_DIR := ~/.local/share/kwin/scripts/karousel
+config:
+ mkdir -p ./package/contents/config
+ tsc ./src/config/definition.ts ./configgen/kcfg.ts --outFile /dev/stdout | node - > ./package/contents/config/main.xml
+
build:
tsc --outFile ./package/contents/code/main.js
-install: build
+install: build config
mkdir -p ${INSTALL_DIR}
rm -r ${INSTALL_DIR}/*
cp -r ./package/* ${INSTALL_DIR}
diff --git a/configgen/kcfg.ts b/configgen/kcfg.ts
new file mode 100644
index 0000000..f79298e
--- /dev/null
+++ b/configgen/kcfg.ts
@@ -0,0 +1,13 @@
+console.log(`
+
+
+ `);
+
+for (const entry of configDef) {
+ console.log(`
+ ${entry.default}
+ `);
+}
+
+console.log(`
+`);
diff --git a/package/contents/config/main.xml b/package/contents/config/main.xml
deleted file mode 100644
index 17e72b0..0000000
--- a/package/contents/config/main.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-
-
-
-
-
- 18
-
-
- 18
-
-
- 18
-
-
- 18
-
-
- 18
-
-
- 18
-
-
- 18
-
-
- 200
-
-
- false
-
-
- [
- {
- "class": "ksmserver-logout-greeter",
- "tile": false
- },
- {
- "class": "kcalc",
- "tile": false
- },
- {
- "class": "kfind",
- "tile": true
- },
- {
- "class": "kruler",
- "tile": false
- },
- {
- "class": "zoom",
- "caption": "Zoom Cloud Meetings",
- "tile": false
- },
- {
- "class": "zoom",
- "caption": "zoom",
- "tile": false
- },
- {
- "class": "jetbrains-idea",
- "caption": "splash",
- "tile": false
- },
- {
- "class": "jetbrains-studio",
- "caption": "splash",
- "tile": false
- },
- {
- "class": "jetbrains-idea",
- "caption": "Unstash Changes|Paths Affected by stash@.*",
- "tile": true
- },
- {
- "class": "jetbrains-studio",
- "caption": "Unstash Changes|Paths Affected by stash@.*",
- "tile": true
- }
-]
-
-
-
diff --git a/src/config/definition.ts b/src/config/definition.ts
index be88eaf..3fd2877 100644
--- a/src/config/definition.ts
+++ b/src/config/definition.ts
@@ -1,42 +1,52 @@
const configDef = [
{
"name": "gapsOuterTop",
+ "type": "UInt",
"default": 18
},
{
"name": "gapsOuterBottom",
+ "type": "UInt",
"default": 18
},
{
"name": "gapsOuterLeft",
+ "type": "UInt",
"default": 18
},
{
"name": "gapsOuterRight",
+ "type": "UInt",
"default": 18
},
{
"name": "gapsInnerHorizontal",
+ "type": "UInt",
"default": 18
},
{
"name": "gapsInnerVertical",
+ "type": "UInt",
"default": 18
},
{
"name": "overscroll",
+ "type": "UInt",
"default": 18
},
{
"name": "manualScrollStep",
+ "type": "UInt",
"default": 200
},
{
"name": "stackColumnsByDefault",
+ "type": "Bool",
"default": false
},
{
"name": "windowRules",
+ "type": "String",
"default": `[
{
"class": "ksmserver-logout-greeter",
diff --git a/tsconfig.json b/tsconfig.json
index 8897208..d3be465 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -101,5 +101,8 @@
/* Completeness */
// "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */
"skipLibCheck": true /* Skip type checking all .d.ts files. */
- }
+ },
+ "include": [
+ "src/**/*"
+ ]
}