Skip to content

feat: complete dotfiles for cross-platform parity and agent containers#4

Merged
iagodahlem merged 3 commits into
masterfrom
iago/dotfiles-completion
Apr 17, 2026
Merged

feat: complete dotfiles for cross-platform parity and agent containers#4
iagodahlem merged 3 commits into
masterfrom
iago/dotfiles-completion

Conversation

@iagodahlem

Copy link
Copy Markdown
Owner

Summary

  • M1: Package lists — added AI CLIs (claude-code, codex, gemini-cli) to brew/pacman/aur/cask, expanded apt.txt and Brewfile with missing tools, added Nerd Font to Fontfile
  • M2: OS scripts — implemented arch.sh and ubuntu.sh (locale, timezone, chsh, docker group, systemd services, ufw, liquidctl)
  • M3: asdf → mise — replaced asdf with mise for Go/Ruby/Rust, added command guards for atuin/mise init, fixed PATH wipe in .exports, set EDITOR=nvim everywhere, moved brew aliases to macos overlay
  • Bug fix — install-node-globals.sh grep pipefail on empty globals file

Test plan

  • Ubuntu Docker image builds
  • Arch Docker image builds
  • Smoke tests pass (non-root user, symlinks, shell login)
  • Interactive shell has EDITOR=nvim
  • mise activates in Arch container
  • atuin init guarded (no errors when missing)
  • CI shellcheck passes
  • CI smoke matrix passes

M1: Package lists — added AI CLIs (claude-code, codex, gemini-cli) to
brew/pacman/aur/cask, expanded apt.txt and Brewfile with missing tools
(bat, btop, eza, jq, neovim, mise, etc.), added Nerd Font to Fontfile.

M2: OS scripts — implemented arch.sh (locale, timezone, zsh default,
docker group, systemd services, ufw, liquidctl) and ubuntu.sh (locale,
timezone, zsh default, docker group, systemd services).

M3: Replaced asdf with mise for Go/Ruby/Rust version management. Added
command guards for atuin/mise init. Fixed PATH wipe in .exports (now
prepends instead of replacing). Set EDITOR=nvim everywhere. Moved
brew-specific aliases from base to macos overlay.

Fix: install-node-globals.sh grep pipefail on empty globals file.

Both Ubuntu and Arch Docker images build and pass smoke tests.
- Fix shellcheck CI: run shellcheck directly via sh instead of through
  bash wrapper (Alpine lacks bash)
- Fix grep pipefail in install-node-globals.sh on empty globals file
- Suppress SC2086 for intentional word splitting in pnpm add
- Suppress SC1091 for external /etc/os-release source
- Add $GOPATH/bin to PATH in mise init (regression from asdf removal)
- Guard chsh with || true under set -euo pipefail
- Add /snap/bin to PATH for Ubuntu snap packages
- Make arch.sh locale.conf write idempotent
@iagodahlem iagodahlem merged commit 7caf92f into master Apr 17, 2026
6 checks passed
@iagodahlem iagodahlem deleted the iago/dotfiles-completion branch April 17, 2026 19:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant