YADRLite is a highly-modular, lightning-fast dotfiles collection designed for cross-platform portability. Built on top of Homebrew and Zsh, it provides a unified configuration experience across macOS and Linux without the brittle OS-detection scripts.
It provisions modern, GPU-accelerated terminals, intelligent tiling window managers, and powerful IDE-like Neovim setups out of the box.
Credit: This repository is heavily based on the excellent YADR, trimmed down considerably for speed and portability. Check out the original repo if you work heavily in Python or Ruby.
YADRLite is driven by a completely dynamic feature router. It doesn't rely on monolithic bash scripts. Instead, you define exactly what you want via --with-<feature> flags.
The router simply looks for <feature>.Brewfile bundles and hooks/pre/<feature>.zsh lifecycle hooks, making it infinitely scalable.
Requirements: git
- Bootstrap the environment: This single command installs Homebrew (if missing), updates Git and Zsh, sets your default shell, and clones the repository.
/bin/sh -c "`curl -fsSL https://raw.githubusercontent.com/odysseyalive/dotfiles/master/install.sh`"- Install Development Tools: Installs Node.js, Go tools, ripgrep, fd, starship, and essential language servers.
zsh ~/.yadrlite/setup.zsh toolsTransform your Mac into a tiling window manager setup (no SIP disable required).
zsh ~/.yadrlite/setup.zsh --macos --with-macos
# or use the shorthand alias:
zsh ~/.yadrlite/setup.zsh macosThis installs:
- Ghostty - Modern GPU-accelerated terminal with Kitty graphics protocol.
- AeroSpace - i3-like tiling window manager.
- Sketchybar - Custom status bar.
- JankyBorders - Window border highlighting.
For Linux environments, specifically targeted at Omarchy:
zsh ~/.yadrlite/setup.zsh --linux --with-omarchy
# or use the shorthand alias:
zsh ~/.yadrlite/setup.zsh omarchyFor headless servers and remote Linux hosts where zsh isn't installed, use the POSIX setup.sh entry point instead of setup.zsh. It's a drop-in companion that parses the same flags:
sh ~/.yadrlite/setup.sh --upgrade
sh ~/.yadrlite/setup.sh help--upgrade, help, remove/uninstall, version detection, and .tool-versions generation all run natively under /bin/sh. Feature hooks (--with-macos, --with-omarchy, --with-keyboard, etc.) are still zsh files under setup/hooks/; setup.sh will dispatch them through zsh if available, or skip them with a warning if not — so --upgrade works fine on a zsh-less box, but a full feature install still needs zsh.
- Language Management (ASDF): Install languages dynamically using ASDF via
--with-langsor granular versions via--with-lang-<name>-<version>. If you prefer legacy installers (NVM/G-Install), use--without-asdf.zsh ~/.yadrlite/setup.zsh --with-langs zsh ~/.yadrlite/setup.zsh --with-lang-ruby-3.2.0
- GNU Linuxify (macOS): Standardize your macOS coreutils to use GNU versions via Homebrew.
zsh ~/.yadrlite/setup.zsh --with-gnu - Keyboard Remap (macOS): Swaps Caps Lock and Escape keys using
hidutil.zsh ~/.yadrlite/setup.zsh --with-keyboard
We've moved the massive lists of shortcuts and editor documentation into their own dedicated guides. YADRLite includes heavily optimized configurations for:
- LazyVim (Modern IDE Setup) - Highly Recommended
- Tmux
- Vim (Classic)
- Ranger (File Manager)
- AeroSpace (macOS Window Manager)
- Ghostty (Terminal)
- Kitty (Terminal)
- Hyprland (Linux Window Manager)
Apply Rolling Migrations & Updates: Safely updates the repository, refreshes tmux plugins, and applies any new configuration changes automatically (e.g., migrating from legacy NVM to ASDF).
zsh ~/.yadrlite/setup.zsh --upgrade --migrateOn headless servers without zsh, use the POSIX entry point — --upgrade runs natively under /bin/sh:
sh ~/.yadrlite/setup.sh --upgradeUninstall and Restore (Local):
Restores your original ~/.bashrc, ~/.zshrc, and other configs to their pre-YADRLite state.
/bin/sh ~/.yadrlite/uninstall.shUninstall and Restore (Remote): If your local directory is broken or deleted, you can uninstall remotely:
/bin/sh -c "`curl -fsSL https://raw.githubusercontent.com/odysseyalive/dotfiles/master/uninstall.sh`"Note: To violently remove all Homebrew packages managed by YADRLite as well, pass the --all and --force flags to the uninstaller.
Maintained with Claude Enforcer
