Cross-platform zsh environment for macOS, Linux, and WSL.
git clone https://github.com/RyanL1997/.vim.git ~/.dotfiles
cd ~/.dotfiles
./install.sh
exec zsh- zsh with zinit — syntax highlighting, autosuggestions, completions, omz git aliases
- Prompt — hand-rolled single-line (
➜ dir git:(branch) ✗), no external theme - Version managers — nvm (lazy-loaded), pyenv, mise
- CLI tools — fzf, ripgrep, jq, neovim, btop, htop, yazi, zellij, gh
- Terminal — Ghostty config (Citruszest theme, solid block cursor)
- tmux — starter config for Linux cloud dev sessions (
.tmux.conf, symlinked on Linux only) - IntelliJ IDEA — portable IDE settings backup/restore (
intellij/, secrets excluded)
.
├── install.sh # Entry point — detects OS, delegates
├── .zshrc # Cross-platform zsh config
├── .tmux.conf # tmux config (Linux only)
├── ghostty/config # Ghostty terminal settings
├── platform/
│ ├── common/setup.sh # Zinit, nvm, pyenv, symlinks
│ ├── mac/
│ │ ├── install.sh # Homebrew + Brewfile
│ │ └── Brewfile
│ └── linux/
│ ├── install.sh # apt/yum + GitHub release fallbacks
│ └── packages.txt
├── intellij/ # IntelliJ IDEA settings + backup/restore.sh
└── iterm2/ # Legacy iTerm2 profiles
- macOS (Apple Silicon / Intel) — Homebrew
- Ubuntu / Debian — apt
- Amazon Linux 2 — yum
- WSL2 — same as Linux
Prompt — edit the PROMPT= line in .zshrc. Colors use bright ANSI codes (9-14). Reference: zsh prompt expansion.
Terminal theme — edit ghostty/config. Run ghostty +list-themes to browse.
Adding tools — macOS: add to platform/mac/Brewfile. Linux: add to platform/linux/packages.txt.
The installer sets up nvm and pyenv but does not install any Node or Python versions. Install what you need:
nvm install <version> # e.g. nvm install 22
pyenv install <version> # e.g. pyenv install 3.12- SSH sessions force
TERM=xterm-256colorto prevent garbled input on remote hosts without Ghostty's terminfo. See Ghostty terminfo docs. - nvm is lazy-loaded for faster shell startup — it initializes on first
node/npmcall, not at shell open.