From 7a8ebebd4ad3a8e8885f5c6ebacfd341e4f02764 Mon Sep 17 00:00:00 2001 From: Jeremy McClure Date: Sat, 1 Aug 2026 01:35:08 -0400 Subject: [PATCH] zsh: strip comments, add branch toggle, disable updates flag --- zsh/zshrc | 44 ++++++++------------------------------------ 1 file changed, 8 insertions(+), 36 deletions(-) diff --git a/zsh/zshrc b/zsh/zshrc index 22c7d9d..7c68e34 100644 --- a/zsh/zshrc +++ b/zsh/zshrc @@ -52,10 +52,7 @@ install_opencode(){ curl -fsSL https://opencode.ai/install | bash } -# Bootstrap: download and run once per bootstrap version. Installs missing CLI -# tools and oh-my-zsh/plugins across distros; prints a banner so the user knows -# what the activity is. Re-runs only when ZSHRC_BOOTSTRAP_VERSION is bumped or -# BOOTSTRAP=true is set. +# Bootstrap: installs missing CLI tools and oh-my-zsh plugins across distros. if [[ ! -f "$ZSHRC_BOOTSTRAP" || "$(cat "$ZSHRC_BOOTSTRAP" 2>/dev/null)" != "$ZSHRC_BOOTSTRAP_VERSION" || "$BOOTSTRAP" == "true" ]]; then tmp=/tmp/.zshrc_bootstrap.$$ curl -fsSL --connect-timeout 5 --max-time 10 -o "$tmp" "$ZSHRC_BOOTSTRAP_URL" 2>/dev/null @@ -70,17 +67,12 @@ TMUXCONF="$HOME/.config/tmux" BYOBUCONF="$HOME/.config/byobu" TMUXREMOTE="$ZSHRC_GIT/tmux.conf" if [ ! -f "$TMUXCONF/tmux.conf" ] && [ ! -f "$BYOBUCONF/.tmux.conf" ]; then - # Create a secure temporary file TEMP_TMUXCONF=$(mktemp) - - # Download to temp file. - # The '&&' ensures the 'mv' only runs if curl succeeds (exit code 0). if curl -fsSL --connect-timeout 5 --max-time 10 -o "$TEMP_TMUXCONF" "$TMUXREMOTE"; then mkdir -p "$TMUXCONF" "$BYOBUCONF" cp "$TEMP_TMUXCONF" "$TMUXCONF/tmux.conf" mv "$TEMP_TMUXCONF" "$BYOBUCONF/.tmux.conf" else - # Optional: Clean up temp file if download failed rm -f "$TEMP_TMUXCONF" echo "Error: Failed to download tmux config from $TMUXREMOTE" >&2 fi @@ -140,10 +132,6 @@ zstyle ':omz:plugins:eza' 'icons' yes zstyle ':omz:plugins:eza' 'color-scale' all zstyle ':omz:plugins:eza' 'color-scale-mode' fixed zstyle ':omz:plugins:eza' 'size-prefix' si -# NOTE: 'hyperlink' is intentionally NOT set here. The oh-my-zsh eza plugin adds -# a bare "--hyperlink" flag which eza (clap) treats as taking the next token as -# its optional value, so `la /` fails with "invalid value '/'". We re-enable -# hyperlinks safely below via the glued `--hyperlink=always` form. zstyle ':completion:*' menu select zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}' @@ -152,14 +140,7 @@ zstyle ':completion:*' special-dirs true source $OHMYZSH/oh-my-zsh.sh -# Re-enable eza hyperlinks, picking the flag form the installed eza supports. -# Newer eza: --hyperlink takes an optional value; the oh-my-zsh plugin's bare -# --hyperlink would eat the following path arg (e.g. `la /` -> invalid value '/'), -# so we use the glued --hyperlink=always form. -# Older eza (e.g. Debian's): --hyperlink is a pure boolean and rejects a value, -# so --hyperlink=always errors; the bare --hyperlink is correct and safe there -# (boolean flags don't consume the next token, so the path-eating bug doesn't -# apply). +# eza hyperlink workaround: oh-my-zsh's bare --hyperlink eats the next arg on newer eza. _hl_flag="--hyperlink" if command -v eza >/dev/null && eza --help 2>&1 | grep -q -- '--hyperlink.*'; then _hl_flag="--hyperlink=always" @@ -169,13 +150,10 @@ for _ea in la ldot lD lDD ll ls lsd lsdl lS lT; do done unset _ea _hl_flag -# --- Tool integrations (self-configuring: enabled only when the tool exists) --- - -# zoxide: frecency-based directory jumping — `z ` / `zi` (fzf picker). -# Replaces nothing; `cd` still works. Auto-installed by the bootstrap. +# zoxide: frecency-based directory jumping. command -v zoxide >/dev/null && eval "$(zoxide init zsh)" 2>/dev/null -# bat: colored `cat` and colored man pages. bat/batcat handled by bootstrap. +# bat: colored `cat` and colored man pages. if command -v bat >/dev/null; then alias cat='bat' export BAT_THEME="${BAT_THEME:-Monokai Extended}" @@ -183,9 +161,7 @@ if command -v bat >/dev/null; then export MANROFFOPT='-c' fi -# delta: prettier git diffs as git's pager (git respects GIT_PAGER). Auto-installed -# by the bootstrap. Not aliased to `diff` since delta reads diff input on stdin, -# not two file arguments — GIT_PAGER is the correct integration. +# delta: prettier git diffs as git's pager. command -v delta >/dev/null && export GIT_PAGER='delta' alias c='clear' @@ -196,12 +172,8 @@ alias nbstat=$'netbird status --json | jq -r \'.peers.details[]? | [(.hostname / alias open-ports="ss -tulpn | grep LISTEN" alias yeet='yay -Rcs' -# Auto-update self and managed configs: checked every interactive shell start, -# silently skipped if the server is unreachable. Keeps zshrc + starship.toml in -# sync across machines (reproducible/self-configuring); only reloads the shell -# when the zshrc itself changes (starship applies its config live per render). -if [[ -o interactive ]]; then - # zshrc (reload shell if changed) +# Auto-update zshrc and starship config on interactive shell start. Disable with ZSHRC_UPDATE_DISABLED=true. +if [[ -o interactive && "$ZSHRC_UPDATE_DISABLED" != "true" ]]; then tmp=/tmp/.zshrc.$$ if curl -fsSL --connect-timeout 3 --max-time 8 "$ZSHRC_URL" -o "$tmp" 2>/dev/null \ && [[ -f "$tmp" ]] && zsh -n "$tmp" 2>/dev/null \ @@ -211,7 +183,7 @@ if [[ -o interactive ]]; then fi rm -f "$tmp" - # starship prompt config (overwrite if changed; applied live on next render) + # starship config if command -v starship >/dev/null; then stmp=$(mktemp) if curl -fsSL --connect-timeout 3 --max-time 8 "$ZSHRC_GIT/starship.toml" -o "$stmp" 2>/dev/null \