A comprehensive dotfiles repository for bootstrapping a complete modern development environment on macOS. This includes shell configuration, Neovim setup, Git workflows, and DevOps/Cloud tools.
This repository contains a carefully curated collection of configuration files and installation scripts designed to set up a productive development environment on macOS from scratch. It includes:
- Shell Configuration: Zsh with Powerlevel10k prompt, Zinit plugin manager, fzf integration, and organized category-specific aliases
- Editor Setup: Neovim with Lua configuration, lazy.nvim plugin manager, and LSP support via Mason
- Version Control: Git configuration with delta diff viewer and helpful aliases
- DevOps/Cloud Tools: Pre-configured aliases and tools for Docker, Kubernetes, Terraform, Helm, AWS, Azure, and Google Cloud
- Package Management: Homebrew bundle with 100+ carefully selected development dependencies
- macOS (tested on Apple Silicon and Intel Macs)
- Xcode Command Line Tools (installed automatically if missing)
- Internet connection for package downloads
- Clone this repository:
git clone https://github.com/dor-a/dotfiles.git ~/Developer/dotfiles
cd ~/Developer/dotfiles- Run the installation script:
chmod +x install.sh
./install.shThe installation script will:
- Verify you're on macOS and have Xcode Command Line Tools
- Install Homebrew (if not already installed)
- Install all packages from
Brewfile - Install and configure Oh My Zsh with plugins
- Install fzf and configure shell integrations
- Create symlinks using GNU Stow for all dotfiles
- Restart your terminal or reload the shell:
source ~/.zshrcThe installation manages dependencies through Homebrew. Key packages include:
Core Tools: stow, git, zsh, bash, curl, wget, fd, fzf, ripgrep, bat, jq, yq, tree, htop, ncdu, glances
Development: neovim, node, python@3.13, visual-studio-code, sublime-text, postman, mongodb-compass, redis-insight
Version Control: gh (GitHub CLI), git-delta
DevOps & Cloud:
- Container: orbstack (Docker Desktop alternative), docker-compose
- Kubernetes: kubectl, kubectx, helm, k9s, kind, eksctl
- Infrastructure as Code: tfenv, terragrunt, ansible, crossplane
- Cloud CLIs: aws-cli, azure-cli, gcloud-cli
- Security: trivy (container vulnerability scanner)
- GitOps: argocd
Neovim Dependencies: tree-sitter, luajit, lpeg, unibilium, libuv, libsodium
dotfiles/
├── zsh/ # Shell configuration
│ ├── .zshrc # Main zsh configuration
│ ├── .zprofile # Shell login profile
│ ├── fzf.zsh # FZF fuzzy finder setup
│ └── aliases/ # Organized aliases by category
│ ├── docker.zsh # Docker aliases
│ ├── git.zsh # Git aliases
│ ├── helm.zsh # Helm aliases
│ ├── k8s.zsh # Kubernetes aliases
│ ├── system.zsh # System aliases
│ └── terraform.zsh # Terraform aliases
├── nvim/ # Neovim configuration
│ └── .config/nvim/
│ ├── init.lua # Neovim entry point
│ └── lua/ # Lua configuration and plugins
├── git/ # Git configuration
│ ├── .gitconfig # Git settings with delta
│ └── .gitignore_global # Global gitignore patterns
├── images/ # Documentation images
├── Brewfile # Homebrew bundle manifest
├── install.sh # Installation and setup script
├── .stowrc # GNU Stow configuration
└── README.md # This file
- Powerlevel10k: Multi-line prompt with git status integration
- Zinit: Fast zsh plugin manager with lazy-loading
- FZF Integration: Fuzzy searching for files, directories, and command history
- FZF-Tab: Interactive completion with previews
- Syntax Highlighting: Real-time zsh syntax validation
- Auto-suggestions: Command completions based on history
- Extended History: 5000-line history with per-directory history support
- Organized Aliases: Category-specific aliases for Docker, Kubernetes, Git, Terraform, and system commands
- Lazy.nvim: Lightning-fast plugin manager with auto-loading
- LSP Support: Language Server Protocol via Mason and mason-lspconfig for multiple languages
- Telescope: Fuzzy finder for files, buffers, and grep searches
- Trouble: Diagnostics window for errors and warnings
- Lua-based: Modern, extensible configuration in Lua
- Tree-sitter: Advanced syntax highlighting and code navigation
- Hot Reload: Automatic plugin updates and configuration reload
- Delta: Beautiful, syntax-highlighted diffs
- Custom Aliases: Productivity-focused git shortcuts
- Global Gitignore: Centralized ignore patterns
- GPG Signing: Support for signed commits
Access organized aliases through the shell:
# Git operations
git-log-pretty # Pretty git log view
git-branch-delete # Delete merged branches
# Kubernetes
k # kubectl shortcut
kgp # Get pods
kgd # Get deployments
# Docker
docker-clean # Remove unused containers and images
docker-logs # Tail container logs
# Terraform
tf # Terraform shortcut
tf-plan # Terraform plan with output
tf-apply # Terraform apply with confirmationLaunch Neovim and start coding:
nvim filename.extCommon keybindings:
<leader>ff: Find files with Telescope<leader>fg: Live grep<leader>xx: Open Trouble diagnostics
Use fuzzy finder for enhanced navigation:
Ctrl+T: Fuzzy find files in current directoryCtrl+R: Search command historycd+Tab: Interactive directory completion
This is a dotfiles repository without traditional builds or tests. However, you can verify the setup:
# Verify all packages installed
brew bundle check
# Check zsh configuration
zsh -ic 'echo $ZSH_VERSION'
# Test Neovim configuration
nvim --version
nvim -c 'checkhealth'Contributions are welcome! To contribute:
- Fork the repository on GitHub
- Create a feature branch:
git checkout -b feature/your-feature - Test your changes on macOS
- Commit with clear messages:
git commit -m "Add/update: description" - Push and open a Pull Request with a description of changes
- Keep configurations modular and organized by tool/category
- Add comments explaining non-obvious configuration choices
- Update this README if adding new tools or aliases
- Test installation from scratch on a clean macOS environment
- Ensure all scripts are POSIX-compliant or explicitly use bash/zsh
This project is provided as-is for personal and educational use. See LICENSE file if present.
Built with inspiration from: