- Chezmoi-powered with secret management and machine-specific overrides
- External Neovim configs - Multiple Neovim setups from separate repository
- Automated setup scripts - Complete system bootstrapping for macOS
- Brew/Apt duality - supports both Homebrew and Apt packages
- Universal symlinks where needed (via Chezmoi templates)
- Automated Homebrew setup via
brewinstall.sh - System preferences configuration via
macconfig.sh - Application installation and setup via
macapps.sh - Font management for development environments
- Bat syntax highlighting with custom themes
graph TD
A[Chezmoi] --> B[Linux Configs]
A --> C[macOS Configs]
A --> F[External Repos]
B --> D[APT Packages]
C --> E[Homebrew Scripts]
F --> G[Neovim Main]
F --> H[Neovim LazyVim]
A --> I[Shared Configs]
I --> J[Zsh/Shell]
I --> L[Development Tools]
~/.local/share/chezmoi/
βββ .chezmoiexternal.toml # External repository management
βββ .chezmoiignore # Files to exclude from home
βββ chezmoi.toml # Configuration matrix
βββ home/ # Dotfiles source (to be moved to root)
β βββ dot_config/ # ~/.config/ - Application configs
β βββ dot_curlrc # ~/.curlrc - curl configuration
β βββ dot_env # ~/.env - Environment variables
β βββ dot_gitconfig # ~/.gitconfig - Git configuration
β βββ dot_gitmessage # ~/.gitmessage - Git commit template
β βββ dot_ideavimrc # ~/.ideavimrc - IntelliJ Vim plugin
β βββ dot_shellrc.d/ # ~/.shellrc.d/ - Shell modules
β βββ dot_tmux.conf # ~/.tmux.conf - tmux configuration
β βββ dot_zprofile # ~/.zprofile - Zsh profile
β βββ dot_zshrc # ~/.zshrc - Zsh configuration
β βββ dot_zshrc.d/ # ~/.zshrc.d/ - Zsh modules
βββ scripts/ # Setup and maintenance scripts
βββ setup.sh # Main setup orchestrator
βββ brewinstall.sh # Homebrew packages installation
βββ macconfig.sh # macOS system preferences
βββ macapps.sh # macOS applications setup
βββ fontinstall.sh # Programming fonts installation
βββ bat-theme.sh # Bat syntax highlighting
βββ extras/ # Additional utilities
βββ programs/ # Program-specific configurationsManaged via .chezmoiexternal.toml from walkeratmind/nvim:
- Main Config:
~/.config/nvim- Personal Neovim setup - LazyVim Config:
~/.config/nvim-lazy- LazyVim distribution
# Switch between configurations
nvim # Main config
NVIM_APPNAME=nvim-lazy nvim # LazyVim config# Install Chezmoi
sh -c "$(curl -fsLS get.chezmoi.io)"# Initialize and apply dotfiles
chezmoi init --apply walkeratmind/dotfiles
# This will automatically:
# β
Install dotfiles to home directory
# β
Pull external Neovim configurations
# β
Exclude project files (README, scripts) from homemacOS Complete Setup:
# Navigate to chezmoi source
cd ~/.local/share/chezmoi
# Run automated setup
./scripts/setup.sh # Main orchestrator
./scripts/brewinstall.sh # Install Homebrew packages
./scripts/macconfig.sh # Configure macOS preferences
./scripts/macapps.sh # Install macOS applications
./scripts/fontinstall.sh # Install programming fonts
./scripts/bat-theme.sh # Configure bat themeLinux:
# Manual package installation based on your distro
# Configurations will work cross-platform| Task | Command |
|---|---|
| Add new config | chezmoi add ~/.config/foo |
| Edit managed file | chezmoi edit ~/.zshrc |
| Sync changes | chezmoi apply |
| Update externals | chezmoi apply --refresh-externals |
| Diff changes | chezmoi diff |
| Check status | chezmoi status |
# Update Neovim configs (respects refreshPeriod)
chezmoi apply
# Force update external repos (ignores refreshPeriod)
chezmoi -R apply- Nushell with custom aliases
- command:
smfor session manager for bothzellijandtmux - command:
pmfor project navigation and switch similar to tmux-sesionizer using fzf. Inspired from zellij-sessionizer- you can check
dot_config/nushell/integrations/project-manager.nuand modify/add paths for your projects directory.
- you can check
- Zsh with modular configuration (
dot_zshrc.d/) - Shell modules in
dot_shellrc.d/for cross-shell compatibility - Environment management via
dot_envanddot_zprofile
- Git with custom config and commit templates
- tmux for terminal multiplexing
- curl with personalized settings
- IntelliJ IDEA Vim plugin configuration
- Neovim configurations from separate repository
- Cross-platform compatibility maintained through Chezmoi templates
- Automated updates with configurable refresh periods
With gratitude to these inspirations:
- victoriadrake - Cross-platform approach
- tomnomnom - Minimalist philosophy
- rhoit - Modular configurations
- Chezmoi Documentation - External repository management
β Star this repo if you find it helpful!
Ready for both Linux tinkering and macOS productivity π