Personal macOS development environment: Zsh, Neovim (LazyVim), Zellij, Git.
git clone https://github.com/vblazenka/dotfiles.git ~/dotfiles
cd ~/dotfiles
./install.shThe install script:
-
Installs Homebrew (if missing) and required packages
-
Sets up Oh My Zsh with plugins
-
Symlinks all configs into place (existing files are backed up with a
.backupsuffix) -
Installs development tools (UV, Bun, NVM + Node LTS)
-
Creates the folder structure:
~/code/github.com/<owner>/<repo>: cloned repos, grouped by host and owner~/code/playground/: throwaway experiments~/Documents/notes/: notes (fine to sync with iCloud)
Code is kept out of
~/Documentsbecause iCloud Desktop & Documents sync chokes on.gitandnode_modules.
dotfiles/
βββ install.sh # Entry point (macOS only)
βββ bin/ # Personal scripts, on PATH
βββ scripts/
β βββ setup_tools.sh # Homebrew, packages, Oh My Zsh, UV, Bun, NVM
β βββ setup_symlinks.sh # Links configs into $HOME
βββ shell/
β βββ zshrc # -> ~/.zshrc
β βββ hushlogin # -> ~/.hushlogin (suppress "Last login" banner)
βββ git/
β βββ gitconfig # -> ~/.gitconfig
βββ zellij/
β βββ config.kdl # -> ~/.config/zellij/config.kdl
βββ herdr/
β βββ config.toml # -> ~/.config/herdr/config.toml
βββ nvim/ # -> ~/.config/nvim (LazyVim)
- Shell: Zsh + Oh My Zsh + plugins (autosuggestions, syntax highlighting)
- Editor: Neovim with LazyVim
- Terminal workspace: herdr (agent multiplexer); Zellij is still installed and configured
- Python: UV
- JavaScript: NVM + Node LTS, Bun
- CLI tools: git, curl, wget, ripgrep, fd, fzf, tree, htop, direnv, hunk (git pager)
Optional tools referenced by the shell config but not installed by the script: Go and OpenJDK (via Homebrew), pnpm, opencode, Maestro. Their PATH entries are harmless when absent.
- Restart your terminal (or run
zsh) - Open Neovim; plugins install automatically on first launch
- Put secrets (private registry tokens, etc.) in
~/.zshenv, which is not part of this repo
- Aliases and functions:
shell/zshrc - Git settings and aliases:
git/gitconfig - Zellij keybindings:
zellij/config.kdl - herdr settings:
herdr/config.toml - Neovim:
nvim/lua/config/andnvim/lua/plugins/