bff5ceddf07012708b92d676154a9151e2bd0213
Wire install_<name>.sh into the main installer through a shared catalog so fnm/pyenv/nvm (and future tools) share one CLI and prompt path.
Easy Zsh Setup
One-command zsh environment: oh-my-zsh, powerlevel10k, and a curated plugin set (autosuggestions, syntax-highlighting, completions, history-substring-search, fzf-tab, k), plus eza, zoxide, fzf, and Nerd Fonts.
Install
curl -fsSL https://git.miomio.moe/mio/easyzsh/raw/branch/master/install.sh | bash
Options:
--cp-hist/-c— import bash history--non-interactive/-n— skip default-shell change and optional prompts--with <names>— install optional add-ons (comma-separated, repeatable). Each name runsinstall_<name>.sh(currently:fnm,pyenv,nvm). Interactive installs (without-nand without--with) prompt for the same list.
./install.sh --with fnm
./install.sh --with fnm,pyenv -n
curl -fsSL …/install.sh | bash -s -- --with fnm
From a git checkout (shell stubs only):
./deploy.sh
Layout
| Path | Role | Reinstall |
|---|---|---|
~/.zshenv |
Always-on: Homebrew, ~/.local/bin, ~/.config/zsh/*.zsh, then local.zsh |
Overwritten |
~/.zshrc |
Interactive: omz, plugins, aliases, fzf, zoxide | Overwritten |
~/.config/zsh/*.zsh |
Always-on tool fragments (e.g. fnm.zsh) |
Left alone (via patch.sh) |
~/.config/zsh/local.zsh |
Machine-local overrides (every zsh, including agents) | Never overwritten |
~/.config/zshrc/*.zsh |
Personal/tool overlays before oh-my-zsh (interactive) | Left alone |
~/.local/bin/ |
User tools + shims (e.g. grok → ~/.grok/bin/grok) |
Left alone |
easyzsh does not manage ~/.zprofile. Put machine/login hooks in local.zsh.
Do not put ~/.grok/bin on PATH wholesale.
# ~/.config/zsh/local.zsh
. "$HOME/.cargo/env"
# ~/.config/zshrc/prefs.zsh
plugins+=(docker)
Tool fragments from this repo:
# always-on (sourced from ~/.zshenv)
curl -fsSL https://git.miomio.moe/mio/easyzsh/raw/branch/master/patch.sh | bash -s -- zsh/fnm
# interactive-only (sourced from ~/.zshrc)
curl -fsSL https://git.miomio.moe/mio/easyzsh/raw/branch/master/patch.sh | bash -s -- pyenv
Languages
Shell
100%