aboutsummaryrefslogtreecommitdiffstats
path: root/AGENTS.md
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-09-11 18:57:59 +0200
committerDanilo M. <danix@danix.xyz>2026-09-11 18:57:59 +0200
commit7b11746f0b6a280169150fc8e18146963a65c55c (patch)
tree75ad1834c11187d8f88cae2bf8b7c036675609da /AGENTS.md
parentfd0a0e63d78138b485c2440781f6c210dd3df8a2 (diff)
downloadunified-desktop-theme-7b11746f0b6a280169150fc8e18146963a65c55c.tar.gz
unified-desktop-theme-7b11746f0b6a280169150fc8e18146963a65c55c.zip
feat(palette): add Obsidian and Typora as consumers
Both expose a first-class, update-safe theming hook, which is what separates them from the Electron apps that cannot be consumers: Signal, Discord and Spotify ship closed bundles whose only theming route is patching a signed asar that every update reverts. Obsidian gets a CSS snippet rather than a theme, so it layers over whatever theme a vault already uses instead of replacing the user's choice. Enabling it means appending to enabledCssSnippets in each vault's appearance.json, which bin/udt-appthemes does by reading the list and adding to it: rewriting the file would have switched off the layout snippet one vault was already using. Typora's theme is derived from the Dracula theme installed here, whose 350 rules all resolve through :root variables, so only that block is templated and none of the layout is touched. Verified across six vaults, nested ones included: the vault with an existing snippet kept it, a vault with no appearance.json got a valid one, and three consecutive installs leave exactly one udt entry. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015gbjA2bmswN8jyPDKzrvqe
Diffstat (limited to 'AGENTS.md')
-rw-r--r--AGENTS.md12
1 files changed, 12 insertions, 0 deletions
diff --git a/AGENTS.md b/AGENTS.md
index 412fe41..d205bcd 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -54,6 +54,18 @@ desktop was already running by hand.
**Qt apps only read a theme at startup**, so a running one keeps the old
colours until restarted. `install.sh` cannot signal them and does not try.
+Obsidian and Typora are installed by `bin/udt-appthemes`, not by a copy.
+Obsidian gets a **snippet**, not a theme, so it layers over whatever theme a
+vault uses; enabling it means appending to `enabledCssSnippets` in that vault's
+`appearance.json`, never rewriting the list, or the vault loses the snippets it
+already had. Every vault under `~/Documents/Obsidian` is found by looking for
+`.obsidian` directories, nested ones included. Typora's theme is derived from
+its Dracula theme, whose 350 rules all route through `:root` variables, so only
+that block is templated.
+
+Signal, Discord and Spotify cannot be consumers: they ship closed bundles with
+no user-CSS hook, and patching a signed app bundle breaks on every update.
+
The homepage stylesheet is the one output that leaves this machine.
`install.sh` scp's it to `homepage:hp-stage/`, with a five second timeout and a
warning rather than a failure when the host is down, so installing the local