Skip to content
cyrildewitPublic

About

My dotfiles and personal preferences managed using Chezmoi

Resources

Code of conduct

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

dotfiles

My dotfiles and personal preferences managed using chezmoi.

Setting up a new machine

macOS

bash -c "$(curl -fsLS https://raw.githubusercontent.com/cyrildewit/dotfiles/main/setup.sh)"

Windows

irm https://raw.githubusercontent.com/cyrildewit/dotfiles/main/setup.ps1 | iex

Both scripts install a package manager (Homebrew on macOS, scoop on Windows), install chezmoi with it, then run chezmoi init --apply, which clones this repository, asks its questions and runs the install scripts. Running either on a machine that is already set up changes nothing.

What gets installed

macOS

Script Installs Personal Work
command_line_tools.sh Xcode Command Line Tools ✓ ✓
homebrew.sh Homebrew ✓ ✓
dependencies.sh chezmoi, gh, git, zsh ✓ ✓
oh_my_posh.sh oh-my-posh ✓ ✓
docker.sh docker-desktop ✓ ✓
tools.sh ccusage, eza, glow, herdr, htop, lazygit, zsh-autosuggestions ✓ ✓
applications.sh 1password, 1password-cli, betterdisplay, brave-browser, claude, claude-code, ghostty, jetbrains-toolbox, logi-options+, macsyzones, obsidian, spotify, stats, todoist-app, visual-studio-code ✓ ✓
fonts.sh font-jetbrains-mono-nerd-font ✓ ✓
personal/applications.sh proton-drive, proton-mail, proton-pass, protonvpn ✓ —
optional/dotnet.sh dotnet, aspire opt-in opt-in

Everything above is skipped when it is already installed, including apps that were installed by hand rather than through Homebrew.

herdr is also handed to brew services, so the server that owns its terminals starts at login. Run brew services stop herdr to undo that. The script that registers it runs once per machine, so a later chezmoi apply leaves the server stopped.

The herdr hook that reports Claude Code sessions to that server is reinstalled on every apply rather than once, because herdr versions the hook script and rewrites it on update. Only that script is herdr's to write. The settings.json entry calling it is templated with the rest of the Claude Code settings, because an apply would otherwise revert what herdr wrote into that file. Windows is left out. The hook is a shell script run through bash, and nothing here has checked that it works there.

Windows

Script Installs Personal Work
scoop.ps1 scoop ✓ ✓
dependencies.ps1 1password-cli, chezmoi, gh, git ✓ ✓
tools.ps1 claude-code, eza, glow, herdr, lazygit, nodejs-lts, vim ✓ ✓
npm-tools.ps1 @colbymchenry/codegraph, ccusage, through npm ✓ ✓
applications.ps1 brave, bruno, claude, jetbrains-toolbox, vscode ✓ ✓
onepassword.ps1 AgileBits.1Password, through winget ✓ ✓
fonts.ps1 JetBrainsMono-NF, JetBrainsMono-NF-Mono, JetBrainsMono-NF-Propo ✓ ✓

applications.ps1 cannot skip an application that was installed by hand, since Windows has no equivalent of /Applications to check: an installer can land in Program Files or under LOCALAPPDATA, per-machine or per-user. scoop installs its own copy alongside, which for a browser means a second profile.

scoop has no brew services, so nothing registers the herdr server here. The first herdr starts one, and its panes keep running once the client detaches. Its config is written to %APPDATA%\herdr rather than ~/.config, from the same template the macOS copy renders.

The repository layout and the conventions behind it are in docs/.

About

My dotfiles and personal preferences managed using Chezmoi

Resources

Code of conduct

Stars

1 star

Watchers

1 watching

Forks

Releases

Contributors

Languages