Skip to content

feat: improve Windows setup with scoop fallback and profile fixes - #67

Open
tctibbs wants to merge 1 commit into
mainfrom
feat/windows-scoop-setup
Open

feat: improve Windows setup with scoop fallback and profile fixes#67
tctibbs wants to merge 1 commit into
mainfrom
feat/windows-scoop-setup

Conversation

@tctibbs

@tctibbs tctibbs commented Jul 6, 2026

Copy link
Copy Markdown
Owner

Summary

  • Scoop fallback for all tools: install script now tries winget first, falls back to scoop — works on Windows LTSC/Server where winget is absent
  • Rust toolchain fix: replaced standalone `rust` + winget rustup with `rustup-gnu` + `mingw`, avoiding MSVC linker conflict from scoop git's `cc.exe`
  • Font install via scoop: replaced brittle manual download/copy with `scoop nerd-fonts/FiraCode-NF`
  • Scoop-first for binary tools: yazi, onefetch, dust, procs, difftastic install from scoop (pre-built) instead of cargo
  • Windows chezmoi fix: `.sh` scripts ignored on Windows, preventing `fork/exec` errors on `chezmoi apply`
  • Secrets hook: profile sources `claude_env.ps1` if present; gitignored so machine-local env vars never hit the repo
  • Profile dot-source fix: alias path uses `$MyInvocation.MyCommand.Path` instead of `$PSScriptRoot` (empty when dot-sourced)

Test plan

  • Run `chezmoi init --apply tctibbs/dotfiles` on a clean Windows machine (with and without winget)
  • Verify all CLI tools install correctly
  • Verify FiraCode Nerd Font installs and registers
  • Verify `. $PROFILE` correctly loads aliases (`cc`, `ccc`, etc.)
  • Verify `claude_env.ps1` is not tracked by chezmoi

🤖 Generated with Claude Code

- Rewrite Windows install script to try winget first, fall back to scoop
- Replace standalone rust + winget-only tools with rustup-gnu + mingw (fixes
  MSVC linker conflict when scoop git's cc.exe is on PATH)
- Install FiraCode Nerd Font via scoop nerd-fonts bucket instead of manual download
- Move yazi, onefetch, dust, procs, difftastic to scoop (faster than cargo build)
- Add mcat and treemd as cargo-only tools
- Ignore .sh chezmoi scripts on Windows to prevent fork/exec errors
- Ignore claude_env.ps1 to keep machine-local secrets out of git
- Source claude_env.ps1 from PS profile if present (machine-local secrets hook)
- Fix alias path resolution when profile is dot-sourced ($PSScriptRoot is empty)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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