Skip to content

Latest commit

 

History

559 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Taylor Buchanan's dotfiles

A dotfiles configuration using chezmoi.

Features

Limitations

  • Only Android, Windows, Linux, and macOS platforms are supported

    • I don't use iOS, and it's too limited for terminal emulation (AFAIK)

    • Linux support only tested on Ubuntu WSL (for now)

  • Only Bash and PowerShell (pwsh.exe) shells are supported

    • Bash is available almost everywhere, and ble.sh makes it just as good as other shells

    • CMD and Windows PowerShell are effectively in maintenance mode. Long live PowerShell!

    • On macOS, ZSH is replaced by the latest Bash for consistency

Getting Started

Install on Windows

bootstrap.ps1 installs the prerequisites, provisions an SSH key, and runs chezmoi init --apply for you. Run it from Windows PowerShell — pwsh is one of the things it installs:

irm https://raw.githubusercontent.com/gtbuchanan/dotfiles/main/bootstrap.ps1 | iex

It prompts for the host type and is safe to re-run after a partial failure.

Personal hosts expect Bitwarden Desktop to be signed in, unlocked, and serving its SSH agent before you start, since that agent is where the SSH key comes from. Work hosts pull the key from Dashlane and prompt you to authenticate, plus once for elevation to enable the SSH agent service. The key is streamed into that agent rather than written to disk, and the agent keeps it across reboots, so the vault is only read once per host.

iex can't forward parameters, so pass them through a scriptblock instead:

$s = irm https://raw.githubusercontent.com/gtbuchanan/dotfiles/main/bootstrap.ps1
& ([scriptblock]::Create($s)) -HostType ewn -ResetWinGet

-ResetWinGet applies the WinGet reset workaround for winget's intermittent RPC errors.

Afterward, on work hosts, sign in to the Microsoft 365 CLI:

m365 login --appId <your-ewn-app-id> --tenant ewn.com --authType browser

Install on macOS and Linux

No bootstrap script yet. Install the prerequisites first:

  • Chezmoi
    • macOS: brew install chezmoi
    • Ubuntu/Snap: snap install --classic chezmoi
  • Chezmoi Modify Manager: Unzip release and add to PATH
    • macOS: xattr -d com.apple.quarantine "$HOME/bin/chezmoi_modify_manager"
  • Dashlane CLI (Work only): brew install dashlane/tap/dashlane-cli

Then:

  1. dcli sync (Work only)

  2. Ensure an SSH key is available to git — --ssh clones over SSH, and the git-repo externals authenticate over SSH mid-apply

  3. chezmoi init --apply --ssh gtbuchanan

    This first connection also trusts github.com's host key, which the SSH externals then rely on (gist.github.com via the HostKeyAlias in ~/.ssh/config).

Troubleshooting

WinGet Errors

WinGet intermittently fails with RPC errors. To retry from the repo root (cmcd):

winget configure -f dist/winget.yaml --suppress-initial-details --accept-configuration-agreements

Alternatively, clear the script cache and re-run chezmoi apply:

chezmoi state delete-bucket --bucket=scriptState

About

My dotfiles managed by chezmoi

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages