Dotfiles/setup
Amir Alexander Abdelbaki 7627dd67ff feat(setup): seed /etc/skel from installed user's ~/.config after all modules run
Problem: every module installs its config into the running user's ~/.config, but
/etc/skel was never updated afterwards. Any additional user created with
`useradd -m` later would get an empty home directory with no configs at all —
they would have to manually copy or re-run setup.

Solution: at the end of both TUI installer scripts (after every module and the
colorway step have finished), copy the fully-configured user's home into
/etc/skel so that it becomes the template for all future users.

How it works — tui-install.sh + simple-install.sh (identical block in both):

  The block runs AFTER the last run_module call and AFTER apply-theme.sh, so
  the snapshot is taken when the home directory is in its final state. It copies:

    ~/.config/  → /etc/skel/.config/    (all app configs, DE configs, etc.)
    ~/.themes/  → /etc/skel/.themes/    (GTK themes, including cyberqueer)
    ~/.zshrc    → /etc/skel/.zshrc
    ~/.bashrc   → /etc/skel/.bashrc
    ~/.vimrc    → /etc/skel/.vimrc

  Each copy is guarded ([[ -d ]] / [[ -f ]]) so missing files are silently
  skipped rather than erroring. sudo is used because /etc/skel is root-owned
  but the installer runs as the normal user.

arch-autoinstall.sh + archbaseos-guided-install.sh (chroot-phase changes):

  The previous version tried to cherry-pick specific subdirectories from the
  Dotfiles repo clone (hypr/, niri/, waybar/, etc.) using a long list of cp
  commands. This was brittle — any new module that installs to ~/.config was
  not automatically captured, and the list had to be manually maintained.

  Replaced with a minimal block that only copies the three shell dotfiles
  (.zshrc, .bashrc, .vimrc) from the repo clone into /etc/skel. This is
  sufficient for the first user created during installation (useradd -m runs
  immediately after, before any modules). The full ~/.config sync above then
  takes over for all subsequent users after the modules have run.

  arch-autoinstall.sh additionally had the skel setup moved to before the
  useradd -m call (was missing entirely before) so even the first user gets
  the shell dotfiles, with a fallback direct-clone path if the skel clone fails.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-24 10:19:06 +02:00
..
Setup-shell-4-containers setup: housekeeping — rename, deprecate, fix refs 2026-05-11 15:02:25 +02:00
archiso fix(hypridle,sysupdate,archiso): misc improvements 2026-06-23 09:03:17 +02:00
deprecated privacy: remove hardcoded username and AWS signed URL 2026-05-12 14:17:48 +02:00
modules feat(setup/apps): convert graphical apps to Flatpak-first with cyberqueer GTK theme 2026-06-24 10:19:06 +02:00
arch-autoinstall.sh feat(setup): seed /etc/skel from installed user's ~/.config after all modules run 2026-06-24 10:19:06 +02:00
archbaseos-guided-install.sh feat(setup): seed /etc/skel from installed user's ~/.config after all modules run 2026-06-24 10:19:06 +02:00
audit-packages.sh setup: fix pamtester/pinta/kew package source categorization 2026-05-11 19:45:33 +02:00
generate-answerfile.sh feat(setup): wire mail-notmuch and caldav-sync into TUI installers + answerfile 2026-06-24 10:19:06 +02:00
install-modules.sh fix(installer): sync all setup scripts with recent DE and module additions 2026-06-02 14:04:53 +02:00
install.sh feat(installer): add structured logging to all modules and installers 2026-05-22 01:44:31 +02:00
reset-arch.sh feat(archiso): add system reset mode to installer 2026-05-20 15:09:00 +02:00
simple-install.sh feat(setup): seed /etc/skel from installed user's ~/.config after all modules run 2026-06-24 10:19:06 +02:00
tui-install.sh feat(setup): seed /etc/skel from installed user's ~/.config after all modules run 2026-06-24 10:19:06 +02:00