Skip to content

Releases: eduarbo/simpl

v3.0.0

17 Mar 07:38
b73ddee

Choose a tag to compare

Sync with upstream pure v1.27.1 (7 years of improvements)

Major update incorporating all upstream sindresorhus/pure improvements since 2019, while preserving Simpl's unique features (host symbol map, RPROMPT, cursor shape vi-mode, env var colors, preposition layout).

Bug fixes

  • Fix typo in prompt_simmpl_debug_depth variable assignment (broken PS4 debug prompt)
  • Fix branch name escaping to prevent prompt injection via % in branch names
  • Fix PS2 context guard to avoid corrupting continuation prompt state
  • Rename global cl variable to prompt_simpl_reset (properly namespaced)
  • Fix pwd comparison in vcs_info callback (regex → string match)

New features

  • Git action display — shows rebase, merge, cherry-pick when in progress
  • Git stash indicator — opt-in via zstyle ':prompt:simpl:git:stash' show yes
  • Container detection — Docker, OCI, LXC, Podman, Kubernetes, systemd-nspawn
  • Suspended jobs indicator — separate from background jobs count
  • VIM prompt symbol — prompt character switches between (insert) and (command)
  • Nix shell environment display
  • VIRTUAL_ENV_PROMPT support for custom virtualenv names
  • GitHub Codespaces detection (skip user@host)
  • Upstream-only fetchzstyle ':prompt:simpl:git:fetch' only_upstream yes

Improvements

  • Update bundled zsh-async from v1.7.1 to v1.8.6 (security fixes, noclobber fix, WARN_CREATE_GLOBAL fix)
  • Optimized git fetch (--quiet --no-tags --no-prune-tags --recurse-submodules=no)
  • GIT_OPTIONAL_LOCKS=0 in dirty check to avoid index side-effects
  • GPG_TTY= in fetch to prevent gpg-agent TTY corruption
  • Respects git status.showUntrackedFiles config
  • Async worker renice (+15/ionice -c 3) for lower system impact
  • Improved async worker crash recovery (handles exit codes 2, 3, 130)
  • Handle async/eval failures with automatic task restart
  • INSIDE_EMACS check for title setting
  • CONDA_CHANGEPS1=no to prevent conda PS1 override
  • Cursor shape uses denylist instead of allowlist (supports all modern terminals)

New config options

  • SIMPL_GIT_STASH_SYMBOL (default ), SIMPL_GIT_ACTION_COLOR, SIMPL_GIT_STASH_COLOR
  • SIMPL_GIT_BRANCH_CACHED_COLOR, SIMPL_SUSPENDED_JOBS_SYMBOL, SIMPL_SUSPENDED_JOBS_COLOR
  • SIMPL_PROMPT_VICMD_SYMBOL (default )

Documentation

  • Remove discontinued plugin managers (antibody, zplugin)
  • Add modern plugin managers (zinit, sheldon, antidote, zgenom)
  • Document new zstyle options and all new config variables