- Lua 53.3%
- Shell 42.3%
- Ruby 4.4%
Configurations
Optimized dotfiles using GNU Stow and XDG Base Directory Specification. Includes Homebrew, Neovim, Tmux, Zsh, and more.
Quick start
Installation
Note
You can use the paths as is but remember to change them to what works for your setup.
-
Clone the repository
git clone https://github.com/yourusername/configs.git ~/dev/personal/configs && cd ~/dev/personal/configs -
Run the setup script
Important
I manage my installs through the Brewfile. This will install software that I use and might not be what you want or need.
Make sure you understand and update the Brewfile (
brew/.config/Brewfile) before running the setup script../setup.sh -
Create a new shell
exec zsh
Done. All tools are lazy-loaded for speed—they initialize on first use.
Customize
All these configs can be used as is, but I recommend you update them to fit your setup:
- Aliases:
zsh/.config/zsh/aliases.zsh - Functions:
zsh/.config/zsh/funcs.zsh - Environment:
zsh/.config/zsh/exports.zsh - Keybindings:
zsh/.config/zsh/bindings.zsh
Update Stow
After updating config files execute stow:
stow
What's managed
| Config | Details |
|---|---|
| bat | Cat replacement with Catppuccin themes |
| git | Global git configuration |
| Neovim | LazyVim starter with community plugins |
| Starship | Fast shell prompt written in Rust |
| Tmux | Terminal multiplexer with Catppuccin theme |
| Zsh | Shell with lazy-loaded tools, optimized startup |
| Wezterm | Terminal emulator with image rendering support |
| Yazi | Terminal file browser with Catppuccin theme |
| Brewfile | Homebrew package configuration |
Performance
- Lazy loading: Tools (zoxide, 1Password, mise, direnv) load on first use
- Plugin pruning: Removed unnecessary plugins
- Simplified aliases: Reduced from 91 to 23 essential aliases
- On-demand completions: Rust completions auto-generate, not pre-built
See .zshrc for detailed implementation.
Important
The XDG base directory spec is not natively supported and must be configured. This is done via the
.zshenvfile to ensure these environment variables are always set for every ZSH shell invocation. For more details, see ZSH's startup files documentation.