<feed xmlns='http://www.w3.org/2005/Atom'>
<title>archsetup/dotfiles/common/.bashrc.d, 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-06-02T17:16:38+00:00</updated>
<entry>
<title>refactor: drop in-repo dotfiles/, move stow tooling to the dotfiles repo</title>
<updated>2026-06-02T17:16:38+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-06-02T17:16:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=b10cba594db836c0747066addad48bda4d30cd02'/>
<id>urn:sha1:b10cba594db836c0747066addad48bda4d30cd02</id>
<content type='text'>
Since the installer clones DOTFILES_REPO into ~/.dotfiles and stows from there, the in-repo dotfiles/ tree was dead weight. Nothing reads it at install time. I removed it (831 files) now that both machines are migrated.

The Makefile's stow / restow / reset / unstow / import targets and the dotfile-script unit suites moved to the dotfiles repo. They sit alongside the scripts they manage and run standalone (cd ~/.dotfiles &amp;&amp; make ...). This Makefile keeps the VM-integration targets and the installer-helper suite (safe-rm-rf).

I updated CLAUDE.md and README.md so stow operations run from ~/.dotfiles, and the dotfile-management, theme, and unit-test sections point at the standalone repo. The README was already describing the old in-repo model from before the installer switched to cloning. This brings it in line.
</content>
</entry>
<entry>
<title>chore(dotfiles): drop ai-tooling refs from common/, plus minor drift</title>
<updated>2026-05-08T00:22:49+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-08T00:22:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=1b58db366885bf014d14da19d14da8ee68aff9da'/>
<id>urn:sha1:1b58db366885bf014d14da19d14da8ee68aff9da</id>
<content type='text'>
I removed the `ai-assistants` tmux launcher and the `.claude/settings.local.json` permissions stub from the stowed common dotfiles. The two `aliases.sh` files (bash and zsh) each lost a matching 5-line comment block about the Claude `ai` launcher. None of these belong in a shared dotfile tree.

Two small adjacent updates landed in the same commit. The gitconfig `includeIf` path moved from `~/code/deepsat/` to `~/projects/work/deepsat/code/` to match the on-disk layout. Qalculate auto-saved its config version bump from 5.9.0 to 5.10.0.
</content>
</entry>
<entry>
<title>remove aix and hey: 'ai' lives in claude-templates now</title>
<updated>2026-04-20T14:28:47+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-20T14:28:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=c092ed493a9ff4a823e38c4c23e571d27286bd49'/>
<id>urn:sha1:c092ed493a9ff4a823e38c4c23e571d27286bd49</id>
<content type='text'>
Both the aix script and hey shell function are superseded by the
unified 'ai' launcher in claude-templates (bin/ai, installed via
make install). Single command, three modes, smart in-tmux behavior
so all sessions survive Hyprland crashes.

Per-machine setup adds a step:
  cd ~/projects/claude-templates &amp;&amp; make install

The orphaned ~/.local/bin/aix symlink should be removed manually on
each machine after pulling this change (rm ~/.local/bin/aix). Stow
re-stow would also clean it up.
</content>
</entry>
<entry>
<title>hey: convert alias to function with git awareness + FETCH_HEAD cache</title>
<updated>2026-04-20T14:12:03+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-04-20T14:12:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=fdb68c120e8544ae29006e76fb1165c3310ab631'/>
<id>urn:sha1:fdb68c120e8544ae29006e76fb1165c3310ab631</id>
<content type='text'>
The 'hey' alias launched claude with 'Read docs/protocols.org' — broken
after the docs/ → .ai/ restructure. While updating the path, add
matching behavior to aix:

- Bail early if the current dir isn't a .ai/ template project
- Fetch upstream only when FETCH_HEAD is stale (&gt;10 min old) — avoids
  re-fetching on back-to-back invocations in the same project
- Auto-pull when clean, behind, not ahead
- Print a one-line git-status summary otherwise (↑N ↓N dirty)
- Launch claude with the updated .ai/protocols.org path

Function identical across .bashrc.d and .zshrc.d (bash/zsh compatible).

Tested: non-template dir bails cleanly with exit 1; template project
shows status and launches claude; repeated invocations reuse
FETCH_HEAD cache silently.
</content>
</entry>
<entry>
<title>feat(archsetup): add slack with Wayland/DWM conditional</title>
<updated>2026-02-09T03:34:07+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-02-09T03:34:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=2c01a5dd8a2c05480818de2be17bc72a41fb9992'/>
<id>urn:sha1:2c01a5dd8a2c05480818de2be17bc72a41fb9992</id>
<content type='text'>
Add slack-desktop-wayland for Hyprland, slack-desktop for DWM.
Update Claude startup prompts, fix Hyprland portal/waybar startup
order, add signal-desktop Wayland .desktop override.
</content>
</entry>
<entry>
<title>fix(dotfiles): remove vim=nvim alias</title>
<updated>2026-01-28T19:09:52+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-01-28T19:09:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=db2d17193c0afc4ced119c19031d79b960b0fc6d'/>
<id>urn:sha1:db2d17193c0afc4ced119c19031d79b960b0fc6d</id>
<content type='text'>
Use vim directly instead of aliasing to neovim.
</content>
</entry>
<entry>
<title>chore(scripts): remove 11 unused scripts, fix yt-dlp aliases</title>
<updated>2026-01-27T00:17:14+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-01-27T00:17:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=6ceab828e7593db2e538f1c4fe91a725e2ebb0e3'/>
<id>urn:sha1:6ceab828e7593db2e538f1c4fe91a725e2ebb0e3</id>
<content type='text'>
Removed scripts:
- dotfiles_pushall, lsbak, project, protonvpn, steam
- sudo-update-grub, sysupdate, transadd, update-backup-repositories
- virtstart, ytp (duplicate of alias)

Updated yt-dlp aliases in media.sh:
- --add-metadata -&gt; --embed-metadata (deprecated option)

Co-Authored-By: Claude Opus 4.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
<entry>
<title>refactor(dotfiles): rename system/ to common/ and remove unused configs</title>
<updated>2026-01-26T23:36:38+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-01-26T23:36:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=8728aef98ffd78a9a0d78918e4b781d08f5bf846'/>
<id>urn:sha1:8728aef98ffd78a9a0d78918e4b781d08f5bf846</id>
<content type='text'>
Rename dotfiles/system to dotfiles/common for clarity - indicates
shared dotfiles used across all desktop environments (DWM, Hyprland).

Removed config directories for uninstalled applications:
- ghostty (using different terminal)
- lf (using ranger instead)
- mopidy (using mpd instead)
- nitrogen (X11-only, obsolete for Wayland)
- pychess (not installed)
- JetBrains (not installed via archsetup)
- youtube-dl (using yt-dlp with different config location)

Kept audacious config for potential future use.

Updated all references in archsetup, CLAUDE.md, todo.org, and
validation.sh.

Co-Authored-By: Claude Opus 4.5 &lt;noreply@anthropic.com&gt;
</content>
</entry>
</feed>
