aboutsummaryrefslogtreecommitdiff
path: root/archsetup.conf.example
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-22 15:52:24 -0500
committerCraig Jennings <c@cjennings.net>2026-05-22 15:52:24 -0500
commitbab6901df8bbd9674d7adc0dea8818238d7b873b (patch)
treed71ad700bd3b02dbeb88cec8cc53d4e925af5cb9 /archsetup.conf.example
parent7c264952e4711f78a4318db1ff41a667592318e9 (diff)
downloadarchsetup-bab6901df8bbd9674d7adc0dea8818238d7b873b.tar.gz
archsetup-bab6901df8bbd9674d7adc0dea8818238d7b873b.zip
feat(archsetup): clone dotfiles repo and stow per DESKTOP_ENV
Dotfiles now live in their own repo (git.cjennings.net/dotfiles.git), so archsetup clones DOTFILES_REPO to the user's ~/.dotfiles and stows the right tree for the chosen DESKTOP_ENV: dwm and hyprland get common/ plus their own layer, none gets the standalone minimal/ tree. The clone runs as the target user, so the working tree is user-owned with no chown-after race. Add DOTFILES_REPO / DOTFILES_BRANCH / DOTFILES_DIR config keys with the same injection guard the other repo keys carry. If the clone doesn't produce a git checkout, error_fatal stops the install rather than silently skipping the restore step that reverts what stow --adopt pulled in. That restore now runs for every DESKTOP_ENV, including none — minimal/ ships the .bashrc/.bash_profile that collide with /etc/skel, so its --adopt needs the same cleanup.
Diffstat (limited to 'archsetup.conf.example')
-rw-r--r--archsetup.conf.example16
1 files changed, 16 insertions, 0 deletions
diff --git a/archsetup.conf.example b/archsetup.conf.example
index fe8cd26..f866134 100644
--- a/archsetup.conf.example
+++ b/archsetup.conf.example
@@ -55,3 +55,19 @@
#SLOCK_REPO=https://github.com/yourusername/slock.git
#DOTEMACS_REPO=https://github.com/yourusername/dotemacs.git
#ARCHSETUP_REPO=https://github.com/yourusername/archsetup.git
+
+#############################
+# Dotfiles
+#############################
+# Dotfiles live in their own repo, cloned to DOTFILES_DIR and stowed at install
+# time. The repo must contain a common/ subdir plus dwm/, hyprland/, and/or
+# minimal/ subdirs that stow cleanly to ~. DESKTOP_ENV picks which:
+# dwm -> common/ + dwm/
+# hyprland -> common/ + hyprland/
+# none -> minimal/ only
+#DOTFILES_REPO=https://git.cjennings.net/dotfiles.git
+#DOTFILES_BRANCH=main
+# DOTFILES_DIR: leave unset to use the target user's ~/.dotfiles (recommended).
+# If you set it, use a literal absolute path under the user's home — this file is
+# sourced as root, so $HOME here is /root, not the user's home.
+#DOTFILES_DIR=/home/youruser/.dotfiles