Ship default config/panels/themes with the app: --init, XDG discovery, build/CI bundling

- tui-wm --init [DIR] writes an embedded default config.toml,
  panels/topbar.toml and themes/{dark,light}.toml (default target
  ~/.config/tui-wm, existing files untouched)
- Config discovery: ./config.toml wins, otherwise ~/.config/tui-wm/
  is used (process switches working dir there so panels/themes/saves/
  hot-reload all resolve consistently); spawned PTYs still start in
  the user's original working directory
- VS Code build tasks copy themes/ into builds/, dist/ sample configs
  refreshed with all new keys and the settings gear
- CI release now also uploads tui-wm-config.tar.gz (config + panels +
  themes) alongside the binaries

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-15 20:12:13 +02:00
parent 35eb33b9a1
commit 8296081557
10 changed files with 348 additions and 24 deletions

View File

@@ -38,7 +38,10 @@ jobs:
mkdir -p build
cp target/release/tui-wm build/tui-wm-linux-arm64
cp target/x86_64-unknown-linux-gnu/release/tui-wm build/tui-wm-linux-x64
(cd build && sha256sum tui-wm-linux-* > checksums.txt && ls -la)
# Standardkonfiguration (config + paneler + teman) som eget paket.
# Binären kan också skapa allt själv med `tui-wm --init`.
tar czf build/tui-wm-config.tar.gz config.toml panels themes
(cd build && sha256sum tui-wm-linux-* tui-wm-config.tar.gz > checksums.txt && ls -la)
- name: Skapa/uppdatera latest-release + ladda upp binärer
env:
@@ -55,7 +58,7 @@ jobs:
[ -z "$rid" ] && rid=$(curl -s "$API/repos/$REPO/releases/tags/$TAG" \
-H "Authorization: token $TOKEN" | jq -r '.id')
echo "release id: $rid"
for f in tui-wm-linux-x64 tui-wm-linux-arm64 checksums.txt; do
for f in tui-wm-linux-x64 tui-wm-linux-arm64 tui-wm-config.tar.gz checksums.txt; do
aid=$(curl -s "$API/repos/$REPO/releases/$rid/assets" \
-H "Authorization: token $TOKEN" | jq -r ".[] | select(.name==\"$f\") | .id")
if [ -n "$aid" ] && [ "$aid" != "null" ]; then