Skip to content
AlexLombryPublic

About

Public dotfiles configuration

Resources

Stars

3 stars

Watchers

1 watching

Forks

Latest commit

 

History

276 Commits

Folders and files

Repository files navigation

Dotfiles

Dotfiles Manager

Personal macOS dotfiles managed with GNU Stow and Just.

Fresh machine setup

Step 1 — Bootstrap

Run this in a terminal. It installs Xcode CLT and clones the repo to ~/dotfiles:

curl -fsSL https://raw.githubusercontent.com/AlexLombry/dotfiles/refs/heads/main/install/init.sh | zsh

Step 2 — Install everything

Open a new terminal, then:

cd ~/dotfiles && ./install/install.sh

This installs Oh My Zsh, Homebrew, Mise, Just, and GNU Stow — then runs just setup automatically.

Step 3 — Restart your terminal

Shell config and custom NeoVim setup are now symlinked. Open a fresh terminal session to pick up all changes.


What just setup does

Step Task What it does
1 check Verifies prerequisites (Homebrew, Just, Stow, Xcode CLT)
2 stow-fresh Symlinks all packages into $HOME using --adopt (first-time only)
3 os Applies optimized macOS system defaults (install/macos.sh)
4 brew Installs grouped packages and apps from install/BrewFile
5 mise Installs language runtimes (Python, Node, Ruby) via mise
6 completions Generates uv/uvx shell completions into ~/.zsh/completions/
7 init-shell Generates static initialization for starship and zoxide for faster startup

Web interface

A local web UI is available for managing symlinks without touching the CLI.

cd ~/dotfiles/web && npm install   # first time only
just web                           # → http://localhost:3131

What it does:

  • Scans all stow packages and shows each file as linked / missing / conflict
  • Dry-run preview, backup-before-overwrite, install, and remove — per package or all at once
  • Streams real-time output for every just command via a built-in terminal panel
  • Backup history with one-click rollback

Timestamped conflict backups land in backup/YYYY-MM-DD.../ and are git-ignored.


Day-to-day commands

just              # List all available tasks
just check        # Verify if all prerequisites are installed
just stow         # Re-apply symlinks (safe re-run, e.g. after adding a dotfile)
just stow-fresh   # First-time stow with --adopt (clean machine only)
just stow-check   # Dry-run check for symlinks
just unstow       # Remove all symlinks
just doctor       # Diagnose stow conflicts, brew drift, stale caches
just brew         # Sync Homebrew packages with BrewFile
just mise         # Reinstall/update language runtimes
just init-shell   # Regenerate static shell init files
just backup-agent # Install/reload the backup_secure LaunchAgent
just update       # Update all package managers (brew, mise, mas…)
just bench        # Measure zsh startup time (3 runs)
just os           # Re-apply macOS system defaults
just completions  # Regenerate uv/uvx completions
just gpg-pass     # Store GPG backup password in macOS Keychain

To stow or unstow a single package:

stow -d ~/dotfiles/stow -t ~ zsh        # Symlink only zsh
stow -d ~/dotfiles/stow -t ~ -D config  # Remove symlinks for config

NeoVim

This project uses a custom NeoVim configuration located in stow/config/.config/nvim. It is automatically symlinked during the stow process. It uses lazy.nvim for plugin management.


Work config

~/.zshrc sources ~/.work.zsh for work-specific aliases and environment variables. This file is tracked in the repo via the work stow package (stow/work/.work.zsh) and symlinked to ~/.work.zsh during just stow.

About

Public dotfiles configuration

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages