Skip to content

Extracts Obsidian into dedicated modules#253

Open
crdant wants to merge 4 commits intomainfrom
refactor/crdant/extracts-obsidian-module
Open

Extracts Obsidian into dedicated modules#253
crdant wants to merge 4 commits intomainfrom
refactor/crdant/extracts-obsidian-module

Conversation

@crdant
Copy link
Owner

@crdant crdant commented Mar 21, 2026

TL;DR

Moves all Obsidian configuration into dedicated home-manager and system modules with vault directory setup, group-based access control, and headless sync.

Details

Extracts Obsidian package installation from home/modules/desktop/default.nix and home/users/crdant/darwin.nix into a dedicated home/modules/obsidian module for the user-level config and systems/modules/obsidian for system-level concerns.

The system module creates two groups for vault access sharing: obsidian for read/write and obsidian-readonly for read-only. Homebrew cask and Web Clipper masApp installation live here since homebrew.* options are system-level, not home-manager.

The home module installs obsidian-headless (the official CLI for Obsidian Sync) on all platforms and the Obsidian GUI on Linux. On activation it creates ~/workspace/vaults, sets group ownership and setgid for the obsidian group, applies ACLs for both groups (platform-appropriate — setfacl on Linux, chmod +a on macOS), and syncs the "Notes" vault. First-time setup requires ob login and ob sync-setup --vault Notes before the sync activation will run.

Adds the obsidian-headless Nix package built with buildNpmPackage from the official npm distribution.

🤖 Generated with Claude Code

crdant and others added 4 commits March 21, 2026 14:16
Moves obsidian installation out of desktop module and darwin.nix into
its own home-manager module. Adds a system module with obsidian and
obsidian-readonly groups for vault access sharing via filesystem
permissions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
homebrew.casks and homebrew.masApps are system-level options, not
home-manager options. Moves obsidian cask and Web Clipper masApp
to the system obsidian module.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Packages obsidian-headless (ob) as a buildNpmPackage derivation and
installs it on all systems via the obsidian home module.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Creates ~/workspace/vaults with obsidian group ownership, setgid, and
ACLs for both obsidian (r/w) and obsidian-readonly groups. Syncs the
Notes vault via obsidian-headless on each home-manager activation.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant