Files
scripts/zsh
jeremy eed5879a25 zsh: harden bootstrap against network failures and unsafe paths
- Add --connect-timeout 5 --max-time 30 to all curl calls (starship,
  lazydocker, fastfetch, eza) so an unreachable/slow host aborts instead
  of hanging the new shell during a bootstrap version bump
- Add -f/--fail to curl calls so a 502/HTML error page is not saved as
  a tarball or piped into sh
- Guard fastfetch extract: only cp/chmod when $ffdir is non-empty,
  preventing cp of '/usr/bin/fastfetch' and glob against '/' when
  curl/tar fails
- Only run fastfetch/eza copy steps when both curl and tar succeed;
  clean up temp tarballs in both success and failure paths
- git clone now uses GIT_TERMINAL_PROMPT=0 and http.lowSpeedLimit/
  lowSpeedTime so a stalled clone aborts after ~10s of no progress
  and an unexpected credential prompt cannot block startup
- Drop invalid -y flag from 'dnf list available' availability check
  (it is a global dnf option, not a list subcommand arg) which could
  cause the check to fail and skip the dnf path
2026-07-29 10:53:17 -04:00
..

Zsh Config

Files

zshrc

Main Zsh configuration file. Sets up Oh My Zsh, plugins (git, sudo, eza, fzf, starship, etc.), history options, aliases, and auto-updates itself from a remote source. Before replacing ~/.zshrc, the downloaded file is validated with zsh -n to ensure it's syntactically valid — this prevents error pages or corrupted content from breaking the shell. Also bootstraps tmux config and runs a fastfetch system info display on interactive shells.

zshrc-bootstrap.zsh

One-shot setup script executed by zshrc. Installs missing dependencies (starship, lazydocker, fastfetch, eza, fzf, etc.) via the system package manager (brew, apt, dnf, pacman) or cargo, clones Oh My Zsh and custom plugins (zsh-autosuggestions, fast-syntax-highlighting, fzf-tab). Runs only when the bootstrap version changes.

tmux.conf

Tmux configuration with GitHub Dark theming, Nerd Font auto-install, TPM plugin manager, pane/window keybindings (Vim-style navigation with h/j/k/l), status bar showing session info, battery, online status, and a built-in cheatsheet (bound to prefix + ?).