A minimal, modular, and XDG-compliant ZSH configuration prioritizing calm and focus to reduce distractions and maintain momentum when working in the terminal.
- ✨ XDG Base Directory compliant - Clean home directory, follows standards
- 📦 Modular architecture - Easy to extend and customize
- 🎨 Nord theme - Beautiful, consistent color scheme
- ⚡ Fast startup - Optimized loading with lazy evaluation
- 🔌 Plugin management - Uses zinit for efficient plugin handling
- 🎯 Focused functionality - Only what you need, nothing more
- ZSH 5.0 or later
- Git
- Optional but recommended:
The contents of this repository should be placed in your $HOME/.config.
git clone --recursive https://github.com/dotbrains/zsh.git $HOME/.config/zshIn your $HOME directory you would want a .zshrc that contains:
source "$HOME"/.config/zsh/zshrcThe configuration will automatically:
- Create necessary XDG directories on first run
- Initialize the zinit plugin manager
- Set up XDG-compliant paths for history, data, and cache
.
├── zshrc # Main configuration file
├── conf.d/ # Modular configuration (loaded in order)
├── aliases/ # Organized aliases
├── functions/ # Shell functions
│ └── git/ # Git-specific functions
├── themes/nord/ # Nord theme
├── zsh-dircolors-nord/ # Git submodule
├── docs/ # Documentation
└── README.md
- Configuration Guide - Modular configuration, XDG compliance, customization
- Plugins - Plugin management, adding plugins, troubleshooting
- Aliases - Complete aliases reference
- Functions - Complete functions reference
- Troubleshooting - Common issues and solutions
The configuration automatically:
- Creates necessary XDG directories
- Installs zinit plugin manager
- Sets up history, completions, and key bindings
- Loads Nord theme
- Sources all aliases and functions
Add machine-specific settings to ~/.config/zsh/local.zsh:
# ~/.config/zsh/local.zsh
export MY_VARIABLE="value"
alias myalias="my command"- Directory navigation:
..,...,.... - Shell shortcuts:
:q,c,vim→nvim - Git:
acp,lg(lazygit) - Package managers:
brewi,npmi,ya,pipi
- General:
e,mkd,extract,u(update all) - Git:
gbl,gbs,ginfo,gstats - GitHub:
gh(repository browser) - Emoji-log:
gnew,gimp,gfix,grlz
zsh-syntax-highlighting- Syntax highlightingzsh-completions- Additional completionszsh-autosuggestions- Fish-like suggestionsfzf-tab- FZF tab completion
Nord - Default theme with:
- FZF colors
- Bat syntax highlighting
- Directory colors (via submodule)
- Remove the configuration directory:
rm -rf ~/.config/zsh-
Remove the source line from
~/.zshrc -
Optionally remove data directories:
rm -rf ~/.local/share/zsh
rm -rf ~/.local/state/zsh
rm -rf ~/.cache/zshContributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
MIT License - See LICENSE file for details
- Inspired by various ZSH configurations
- Nord theme by Arctic Ice Studio
- Plugin manager: zinit