Appendix: Stow & Deployment Audit
Stow Audit Commands
Reusable commands for auditing dots-quantum deployment on any machine:
# Generate list of stow-able packages
ls ~/atelier/_projects/personal/dots-quantum/ | grep -v -E "LICENSE|README|PRIVATE|opencode.json|scripts|setup" | sort > /tmp/available.txt
# Check which packages are stowed (maxdepth 4 for share/bin)
for pkg in $(cat /tmp/available.txt); do
if find ~ -maxdepth 4 -type l -lname "*dots-quantum/${pkg}/*" 2>/dev/null | head -1 | grep -q .; then
echo "✓ $pkg"
else
echo "✗ $pkg"
fi
done
# Show all symlinks pointing to dots-quantum with targets
find ~ -maxdepth 4 -type l -lname "*dots-quantum*" 2>/dev/null | sort | awk -F'dots-quantum/' '{printf "%-50s → %s\n", $0, $2}'
# xargs version for one-liner audit
cat /tmp/available.txt | xargs -I{} sh -c \
'find ~ -maxdepth 4 -type l -lname "*dots-quantum/{}/*" 2>/dev/null | head -1 | grep -q . && echo "✓ {}" || echo "✗ {}"'
SSH Config IP Verification
Always verify host IPs before re-encrypting SSH config:
# Check actual IPs on the machine
ip -4 -o addr show | awk '$2!="lo" {print $2, $4}'
# Check what the SSH config has
grep -A2 'Host modestus-razer$' ~/atelier/_projects/personal/dots-quantum/ssh/.ssh/config
grep -A2 'Host modestus-p16g$' ~/atelier/_projects/personal/dots-quantum/ssh/.ssh/config
# Fix wrong IP (sed with address range — only changes within the Host block)
sed -i '/Host modestus-razer$/,/^$/s/HostName OLD_IP/HostName NEW_IP/' ssh/.ssh/config
# Re-encrypt workflow
age -e -R ~/.age/recipients/self.txt -o ssh/.ssh/config.age ssh/.ssh/config
git add ssh/.ssh/config.age
gach << 'COMMIT'
fix(ssh): Correct host IP for <hostname>
COMMIT
git push
# On target machine — decrypt (use >| for zsh noclobber)
git pull
age -d -i ~/.age/identities/personal.key ssh/.ssh/config.age >| ssh/.ssh/config
Stow Package Audit (Apr 3)
# Check which dots-quantum packages are stowed vs missing
ls ~/atelier/_projects/personal/dots-quantum/ | grep -v -E "LICENSE|README|PRIVATE|opencode.json|scripts|setup" | sort > /tmp/available.txt
for pkg in $(cat /tmp/available.txt); do
if find ~ -maxdepth 2 -type l -lname "*dots-quantum/${pkg}/*" 2>/dev/null | head -1 | grep -q .; then
echo "✓ $pkg"
else
echo "✗ $pkg"
fi
done
| Package | Status | Notes |
|---|---|---|
aerc |
✓ |
Email client |
aider |
✓ |
AI pair programming |
bash |
✓ |
|
bin |
✗ |
Needs |
btop |
✓ |
|
cava |
✓ |
Audio visualizer |
chromium |
✓ |
|
claude |
✓ |
|
eww |
✓ |
Desktop widgets |
fastfetch |
✓ |
|
fd |
✓ |
|
fish |
✗ |
Not used (zsh primary) |
fzf |
✓ |
|
ghostty |
✓ |
|
git |
✓ |
|
glow |
✗ |
Markdown viewer — stow if needed |
gpg |
N/A |
NOT a stow package — per-host config container (like hosts). GPG configs rsync’d directly to |
himalaya |
✗ |
Email — stow if using |
hosts |
N/A |
NOT a stow package — per-host config container. Each machine manually symlinks |
htop |
✗ |
Needs |
hyprland |
✓ |
|
jj |
✗ |
Jujutsu VCS — stow if using |
kitty |
✓ |
|
lazygit |
✓ |
|
libvirt |
✗ |
Needs |
mako |
✓ |
|
mimeapps |
✓ |
|
oh-my-posh |
✓ |
|
opencode |
✗ |
Needs |
powershell |
✓ |
|
ripgrep |
✓ |
|
secrets |
N/A |
NOT a dots-quantum package — separate git repo at |
share |
✓ |
Stowed at depth 4 ( |
shell |
✗ |
Needs |
ssh |
✓ |
|
systemd |
✗ |
Needs |
thunar |
✗ |
Needs |
tmux |
✗ |
Needs |
vim |
✓ |
|
vscodium |
✗ |
Needs |
waybar |
✓ |
|
wofi |
✓ |
|
zathura |
✓ |
|
zsh |
✓ |