|
The installer found vaults by scanning ~/Documents/Obsidian for .obsidian
directories, which cannot tell a vault from a leftover. That parent folder
holds an abandoned .obsidian from a vault that no longer exists, so the scan
found six vaults where Obsidian knows five, and the extra one got a snippet
and an edited appearance.json for something Obsidian never opens.
It now reads ~/.config/obsidian/obsidian.json, which is the list Obsidian
itself maintains, and only writes to a path that is both registered and still
has a .obsidian directory.
The stray directory has been restored to its previous contents.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015gbjA2bmswN8jyPDKzrvqe
|
|
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
|