Browse Source

Update README with multi-host documentation

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
G. Capella 21 hours ago
parent
commit
af3b850483
1 changed files with 81 additions and 1 deletions
  1. 81 1
      README

+ 81 - 1
README

@@ -1 +1,81 @@
-curl https://git.capella.pro/capella/dotfiles/raw/master/start | bash -s -- sync
+# Dotfiles
+
+Manages dotfiles across multiple machines via symlinks, with per-host
+and per-group overrides.
+
+## Quick start
+
+    curl https://git.capella.pro/capella/dotfiles/raw/master/start | bash -s -- sync
+
+Or if already installed:
+
+    dotsync
+
+## Usage
+
+    start sync [--machine|--group <name>] [dot_file]
+    start list
+    start status
+
+## Multi-host
+
+Each host is identified by its hostname (`uname -n`).
+
+### File overrides
+
+    dots/                    # common dotfiles (all hosts)
+    dots.<hostname>/         # host-specific overrides (entire files)
+    dots.@<group>/           # group-level overrides
+
+Resolution order (last wins): common -> groups (alphabetical) -> host.
+
+### Sync lists
+
+    to_sync                  # files synced to all hosts
+    to_sync.<hostname>       # additional files for a specific host
+    to_sync.@<group>         # additional files for a group
+
+### Groups
+
+    groups.<hostname>        # one group name per line
+
+Example `groups.jellyfish`:
+
+    wayland
+
+Hosts in the same group share `to_sync.@<group>` and `dots.@<group>/`.
+
+### In-file markers
+
+For files that are mostly shared with a few per-host differences,
+use markers instead of duplicating the whole file:
+
+    # @host jellyfish
+    set $mod Mod4
+    # @end
+
+    # @host tompot
+    set $mod Mod1
+    # @end
+
+    # @group wayland
+    exec waybar
+    # @end
+
+- Lines between `@host <name>` and `@end` are included only on that host
+- Lines between `@group <name>` and `@end` are included for hosts in that group
+- Lines outside any markers are always included
+- The comment prefix (`#`, `//`, `;`, etc.) is auto-detected
+- Files with markers are processed and written (not symlinked)
+- Files without markers are symlinked as usual
+
+## Adding dotfiles
+
+    # Add to common (all hosts):
+    dotsync sync .config/foo
+
+    # Add for this host only:
+    dotsync sync --machine .config/bar
+
+    # Add for a group:
+    dotsync sync --group wayland .config/baz