Skip to content

odysseyalive/dotfiles

Repository files navigation

YADRLite

Setup Demo

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.

The Architecture

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.


⚡ Installation

Requirements: git

  1. 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`"
  1. Install Development Tools: Installs Node.js, Go tools, ripgrep, fd, starship, and essential language servers.
zsh ~/.yadrlite/setup.zsh tools

🖥️ Workstation Setups

macOS Workstation

Transform 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 macos

This installs:

  • Ghostty - Modern GPU-accelerated terminal with Kitty graphics protocol.
  • AeroSpace - i3-like tiling window manager.
  • Sketchybar - Custom status bar.
  • JankyBorders - Window border highlighting.

Arch / Linux Workstation

For Linux environments, specifically targeted at Omarchy:

zsh ~/.yadrlite/setup.zsh --linux --with-omarchy
# or use the shorthand alias:
zsh ~/.yadrlite/setup.zsh omarchy

Headless Servers / Linux without zsh

For 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.

Optional Features

  • Language Management (ASDF): Install languages dynamically using ASDF via --with-langs or 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

📚 Documentation & Shortcuts

We've moved the massive lists of shortcuts and editor documentation into their own dedicated guides. YADRLite includes heavily optimized configurations for:


🔄 Maintenance & Uninstallation

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 --migrate

On headless servers without zsh, use the POSIX entry point — --upgrade runs natively under /bin/sh:

sh ~/.yadrlite/setup.sh --upgrade

Uninstall and Restore (Local): Restores your original ~/.bashrc, ~/.zshrc, and other configs to their pre-YADRLite state.

/bin/sh ~/.yadrlite/uninstall.sh

Uninstall 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

About

YADRLite is a collection of my personal streamlined dotfiles with influence from YADR.

Resources

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors