Skip to content

v1.2.0

Compare
Choose a tag to compare
@romkatv romkatv released this 26 Feb 17:17
· 972 commits to master since this release

Changes since the last release

  • New segments:
    • wifi: shows WiFi data transfer speed; can optionally display security level, SSID, etc.
    • asdf: tool versions from asdf.
    • taskwarrior: task counts from taskwarrior.
    • phpenv: PHP version from phpenv.
  • New parameters:
    • POWERLEVEL9K_${SEGMENT}_${STATE}_SHOW_ON_UPGLOB with regular fallback; this allows you to display a prompt segment only when there is a file matching a certain pattern in the current directory, or in .., or in ../.., etc. For example: POWERLEVEL9K_NODE_VERSION_SHOW_ON_UPGLOB='package.json|node_modules' to show node_version segment only in Node project directories.
    • POWERLEVEL9K_VPN_IP_SHOW_ALL: if set to true, vpn_ip will show IPs from all matching network interfaces instead of just the first.
    • POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER: when set to true, drops path before the last marked directory (usually a Git repo root).
    • More fine grained control over battery colors: POWERLEVEL9K_BATTERY_${state}_{STAGES,LEVEL_BACKGROUND,LEVEL_FOREGROUND}.
    • Network transfer speed: P9K_IP_TX_RATE and P9K_IP_RX_RATE in ip segment.
  • Configuration wizard:
    • Gracefully handle non-writable ~/.zshrc.
    • New segments enabled by default: asdf, taskwarrior, phpenv.
    • New segments disabled by default: php_version, laravel_version.
    • Git status now displays VCS_STATUS_PUSH_COMMITS_{AHEAD,BEHIND}.
    • Git status now displays "─" when POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY is in effect.
    • Git status by default ignores the git repo rooted at $HOME; see FAQ.
    • Pure style now has context on the very left; upstream: sindresorhus/pure#530.
    • When installing the recommended font for iTerm2, detect and attempt to delete (after confirmation from the user) other versions of MesloLGS NF.
  • New style: robbyrussell; not exposed through the wizard; enable it with source .../powerlevel10k/config/p10k-robbyrussell.zsh.
  • Prompt performance improvements:
    • Async worker chatter is now 2x faster.
    • Prompt rendering and gitstatus_query now run in parallel; this reduces prompt latency by up to 5ms.
  • Bug fixes:
    • truncate_to_last now behaves exactly like %1~.
    • Don't crap out when file names contain colon.
    • Don't crap out when using more than one prompt_char.
    • Don't crap out when PATH is empty.
    • gcloud now works when using non-default configs.
    • timewarrior segment now respects $TIMEWARRIORDB (thanks, @errantepiphany!).
    • Pick up ip and ifconfig tools from PATH (used to be /sbin/ip and /sbin/ifconfig).
    • SHOW_ON_COMMAND now works with legacy custom prompt segments.
    • Git status in Pure style now has correct number of spaces.
  • Robustness improvements:
    • Work around a bug in sysread in Zsh (fixed in Zsh 5.8).
    • Replace all wide icons with narrow by default (many terminals choke on wide icons).
    • Replace terraform icons with another (emacs crashes on the old icon).
    • Prompt should now function even when locale is misconfigured as long as there is at least one UTF-8 locale installed on the system.
    • Workarounds for Zsh bugs in handling of ZLE_RPROMPT_INDENT=0 are now applied in more cases.
  • gitstatus:
    • Support repositories where .git is a symbolic link.
    • Support repositories with preciousObjects extension.
    • Add VCS_STATUS_PUSH_{REMOTE_NAME,REMOTE_URL,COMMITS_AHEAD,COMMITS_BEHIND}: similar to VCS_STATUS_{REMOTE_NAME,REMOTE_URL,COMMITS_AHEAD,COMMITS_BEHIND} but for @push remote.
    • Add VCS_STATUS_NUM_SKIP_WORKTREE and VCS_STATUS_NUM_ASSUME_UNCHANGED: the number of files in the index with --skip-worktree and --assume-unchanged bits respectively.
    • Support Cygwin on older versions of Windows.
    • Completely rewritten Zsh API (similar to async worker in powerlevel10k); this makes startup about 5x faster and should be more robust.
    • The gitstatusd binary is now looked up as follows:
      1. If GITSTATUS_DAEMON is an absolute path, use that.
      2. Else if GITSTATUS_DAEMON is a valid command name (PATH lookup), use that.
      3. Else if GITSTATUS_DAEMON is not empty, try $gitstatus_dir/{usrbin,bin}/$GITSTATUS_DAEMON (in this order).
      4. Else try $gitstatus_dir/{usrbin,bin}/gitstatusd-$os-$arch{,-static} (in this order).

Build time dependencies