<feed xmlns='http://www.w3.org/2005/Atom'>
<title>archsetup/archsetup.conf.example, branch main</title>
<subtitle>Builds a full dev workstation from a bare Arch Linux install.
</subtitle>
<id>https://git.cjennings.net/archsetup/atom?h=main</id>
<link rel='self' href='https://git.cjennings.net/archsetup/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/'/>
<updated>2026-05-26T19:47:01+00:00</updated>
<entry>
<title>feat(archsetup): make the claude-code install optional</title>
<updated>2026-05-26T19:47:01+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-26T19:47:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=f2dad229d23ca7f43d1b698a3fe3b11a994d4a3f'/>
<id>urn:sha1:f2dad229d23ca7f43d1b698a3fe3b11a994d4a3f</id>
<content type='text'>
The claude-code step is a curl|sh from a third party, and not every user wants AI tooling. I put it behind INSTALL_CLAUDE_CODE (default yes, so current behavior is unchanged), with matching --claude-code / --no-claude-code flags. I wired it the same way as AUTOLOGIN and NO_GPU_DRIVERS: config mapping, a validate_config yes/no check, and a guard around the install block. I also documented the key in archsetup.conf.example.
</content>
</entry>
<entry>
<title>feat(archsetup): clone dotfiles repo and stow per DESKTOP_ENV</title>
<updated>2026-05-22T20:52:24+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-22T20:52:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=bab6901df8bbd9674d7adc0dea8818238d7b873b'/>
<id>urn:sha1:bab6901df8bbd9674d7adc0dea8818238d7b873b</id>
<content type='text'>
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.
</content>
</entry>
<entry>
<title>feat(archsetup): add interactive username/password prompts</title>
<updated>2026-01-25T19:50:20+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-01-25T19:50:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=887fdbbc9492f87cda3892d39de906743323bb2c'/>
<id>urn:sha1:887fdbbc9492f87cda3892d39de906743323bb2c</id>
<content type='text'>
Replace hardcoded "welcome" password with interactive prompts during
preflight checks. Fixes gnome-keyring password mismatch issue.

- Username validation (lowercase, starts with letter, alphanumeric)
- Password confirmation (enter twice, must match)
- Remove forced password change on first login (chage -d 0)
</content>
</entry>
<entry>
<title>fix(testing): remove obsolete --skip-slow-packages option</title>
<updated>2026-01-25T00:52:34+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-01-25T00:52:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=7d0f90da66985b402c6a25eb3eca8cc9e6060ced'/>
<id>urn:sha1:7d0f90da66985b402c6a25eb3eca8cc9e6060ced</id>
<content type='text'>
This flag was removed from archsetup but remained in test scripts.
</content>
</entry>
</feed>
