Cross-platform dotfiles for macOS, Linux, and Windows (WSL2).
git clone https://github.com/vblazenka/dotfiles.git ~/Documents/github/vblazenka/dotfiles
cd ~/Documents/github/vblazenka/dotfiles
./install.shThe install script automatically detects your OS and:
- Installs required packages (zsh, neovim, zellij, etc.)
- Sets up Oh My Zsh with plugins
- Creates symlinks for all configs
- Installs development tools (UV, NVM)
- macOS - Uses Homebrew
- Linux - Uses apt (Debian/Ubuntu-based, including Omarchy)
- WSL2 - Windows Subsystem for Linux
dotfiles/
βββ install.sh # Main entry point
βββ scripts/
β βββ detect_os.sh # OS detection
β βββ setup_common.sh # Shared functions
β βββ setup_symlinks.sh
β βββ setup_macos.sh
β βββ setup_linux.sh
β βββ setup_wsl.sh
βββ shell/
β βββ zshrc # Loader (sources others)
β βββ zshrc.common # Shared config
β βββ zshrc.macos # macOS-specific
β βββ zshrc.linux # Linux-specific
β βββ zshrc.wsl # WSL-specific
β βββ hushlogin # Suppress login message
βββ git/
β βββ gitconfig
βββ zellij/
β βββ config.kdl
βββ nvim/
βββ (LazyVim config)
- Shell: Zsh + Oh My Zsh + plugins (autosuggestions, syntax highlighting)
- Editor: Neovim with LazyVim
- Terminal: Zellij
- Python: UV package manager
- Node.js: NVM + LTS version
- Packages: git, curl, wget, ripgrep, tree, htop, etc.
- Restart your terminal (or run
zsh) - Open Neovim - plugins will auto-install on first launch
- Configure any additional tools as needed
- Add aliases to
shell/zshrc.common(shared) or OS-specific files - Edit
git/gitconfigfor git settings - Modify
zellij/config.kdlfor terminal multiplexer - Neovim config is in
nvim/(LazyVim-based)