Opinionated dotfiles for a modern shell-centric workflow with consistent tooling and color theme defaults.
- A modern but minimal base shell with sane defaults, lightweight UX improvements, and no heavy framework lock-in.
- Do not fight standard Unix muscle memory.
- Keep environments modular and opt-in: language and cloud tooling is activated only when needed via
activate_<name>functions. - Keep Linux and macOS first class, with different installation strategies where needed.
- Enable high daily productivity through strong prompt context, completions, navigation/search helpers, and useful aliases.
- Keep user control over automation: missing tools are handled with interactive prompts instead of silent system mutation.
- Maintain a safe install model: link/copy dotfiles without overwriting existing local files, and support explicit local overrides.
| Platform | Status | Notes |
|---|---|---|
| macOS | First class | Uses Homebrew for package bootstrap in zsh setup. |
| Linux | First class | Uses distro package managers; missing tools are reported with install hints. |
zshgitcurlnvimandtree-sitterCLI (required for thenvimmodule;./install nvimoffers to installneovimandtree-sitter-clion macOS)- Internet access during install (fonts, plugin/bootstrap downloads)
git clone https://github.com/bol/dotfiles.git
cd dotfiles
./installInstall specific modules only:
./install zsh git wezterm- Installs all modules by default (
fonts,git,nvim,wezterm,zsh). - Creates symlinks for managed config files.
- Copies selected local files only when missing:
~/.zshrc_local~/.gitconfig
- Never overwrites existing targets. Existing files are skipped.
- Zsh: shell config, prompt, completions, environment activators.
- WezTerm: terminal config with Selenized theme.
- Fonts: Nerd Font variants used by prompt/terminal.
- Git: defaults, Delta diffs, Difftastic difftool.
- NeoVim: editor setup with plugin bootstrap.
- Use
~/.zshrc_localfor machine- or user-specific overrides. ~/.zshrc_localis sourced last and is not tracked by this repo.
git pull --ff-only
./install- Remove symlinks created by this repo and restore your own files.
- Re-run
./installafter adjustments if you want selective re-linking.
- Install skipped because target already exists: move/remove the target, then re-run
./install. - AWS CLI on Linux: the setup prints distro package manager install hints when
awsis missing. - Neovim module fails: on macOS rerun
./install nvimand allow Homebrew to installneovim; on Linux installnvimmanually and rerun. - Neovim parser bootstrap fails: on macOS rerun
./install nvimand allow Homebrew to installtree-sitter-cli; on Linux installtree-sittermanually and rerun.
The Git module copies ~/.gitconfig from git/gitconfig.ini on first install. Review and update user identity/signing settings for your machine if needed.