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 whethere 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 POWERLEVEL9K_VCS_DISABLED_WORKDIR_PATTERN.
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:
If GITSTATUS_DAEMON is an absolute path, use that.
Else if GITSTATUS_DAEMON is a valid command name (PATH lookup), use that.
Else if GITSTATUS_DAEMON is not empty, try $gitstatus_dir/{usrbin,bin}/$GITSTATUS_DAEMON (in this order).
Else try $gitstatus_dir/{usrbin,bin}/gitstatusd-$os-$arch{,-static} (in this order).
Includes LC_ALL = "en_US.UTF-8"; that resolves a locale.Error exception
during the check phase.
[...]
File "/build/s-tui-1.0.0/s_tui/sensors_menu.py", line 27, in <module>
import urwid
File "/nix/store/xxhpq1kcjy0kimfwnwqlzh2pchkp9khi-python3.7-urwid-2.1.0/lib/python3.7/site-packages/urwid/__init__.py", line 26, in <module>
from urwid.widget import (FLOW, BOX, FIXED, LEFT, RIGHT, CENTER, TOP, MIDDLE,
File "/nix/store/xxhpq1kcjy0kimfwnwqlzh2pchkp9khi-python3.7-urwid-2.1.0/lib/python3.7/site-packages/urwid/widget.py", line 27, in <module>
from urwid.util import (MetaSuper, decompose_tagmarkup, calc_width,
File "/nix/store/xxhpq1kcjy0kimfwnwqlzh2pchkp9khi-python3.7-urwid-2.1.0/lib/python3.7/site-packages/urwid/util.py", line 61, in <module>
detected_encoding = detect_encoding()
File "/nix/store/xxhpq1kcjy0kimfwnwqlzh2pchkp9khi-python3.7-urwid-2.1.0/lib/python3.7/site-packages/urwid/util.py", line 58, in detect_encoding
locale.setlocale(locale.LC_ALL, initial)
File "/nix/store/ja04f3cmapzb3f2mvjrb883bfqclsirq-python3-3.7.6/lib/python3.7/locale.py", line 608, in setlocale
return _setlocale(category, locale)
locale.Error: unsupported locale setting
Release notes:
irc: fix crash when receiving a malformed message 352 (who)
irc: fix crash when a new message 005 is received with longer nick prefixes
irc: fix crash when receiving a malformed message 324 (channel mode) (CVE-2020-8955)
Disables support for Javascript and PHP:
- Javascript requires an old version of v8
- PHP requires a larger number of dependencies in addition to php-embed
Changelog [1]:
New features
- core: add option weechat.look.nick_color_hash_salt to shuffle nick colors (issue #635)
- core: add different icons sizes (16x16 to 512x512) (issue #1347)
- core: add file weechat.desktop
- core: add reverse of string for screen in evaluation of expressions with "revscr:"
- core: add length of string (number of chars and on screen) in evaluation of expressions with "length:xxx" and "lengthscr:xxx"
- core: add calculation of expression in evaluation of expressions with "calc:xxx" (issue #997)
- core: add optional default path (evaluated) in completion "filename"
- core: add support of modifiers in evaluation of expressions with "modifier:name,data,string"
- api: add modifier "color_encode_ansi" (issue #528)
- api: add modifier "eval_path_home"
- irc: add filters on raw buffer (issue #1000)
- irc: add option irc.look.display_pv_warning_address to display a warning in private buffer if the remote nick address has changed (issue #892)
- irc: add server option "ssl_password" (issue #115, issue #1416)
- irc: add "user" in output of irc_message_parse (issue #136)
- irc: add options irc.color.message_kick and irc.color.reason_kick (issue #683, issue #684)
- logger: add option logger.file.color_lines (issue #528, issue #621)
- script: add options "-ol" and "-il" in command "/script list" to send translated string with list of scripts loaded, display "No scripts loaded" if no scripts are loaded
- xfer: add option xfer.file.download_temporary_suffix with default value ".part" (issue #1237)
Bug fixes
- core: set buffer name, short name and title only if the value has changed
- core: fix scrolling up in bare mode when switched to bare mode at the top of the buffer (issue #899, issue #978)
- core: optimize load of configuration files
- core: fix window separators not respecting window splits (issue #630)
- core: fix cursor mode info when prefix_align is none and with words split across lines (issue #610, issue #617, issue #619)
- core: add support of reverse video in ANSI color codes
- core: fixed segfault during excessive evaluation in function string_repeat (issue #1400)
- buflist: fix extra spaces between buffers when conditions are used to hide buffers (regression introduced in version 2.6) (issue #1403)
- irc: do not automatically open a channel with name "0" (issue #1429)
- irc: remove option irc.network.channel_encode, add server option "charset_message" to control which part of the IRC message is decoded/encoded to the target charset (issue #832)
- irc: use path from option xfer.file.upload_path to complete filename in command "/dcc send" (issue #60)
- logger: fix write in log file if it has been deleted or renamed (issue #123)
- python: send "bytes" instead of "str" to callbacks in Python 3 when the string is not UTF-8 valid (issue #1389)
- relay: send message "_buffer_title_changed" to clients only when the title is changed
- xfer: fix memory leak when a xfer is freed and when the plugin is unloaded
Tests
- unit: add tests on GUI color functions
Build
- core: fix build on Haiku (issue #1420)
- core: fix build on Alpine
- core: remove file FindTCL.cmake
- core: display an error on missing dependency in CMake (issue #916, issue #956)
- debian: disable Javascript plugin on Debian Sid and Ubuntu Eoan
- debian: build with Guile 2.2
- guile: add support of Guile 2.2, disable /guile eval (issue #1098)
- python: add detection of Python 3.8
[1] https://weechat.org/files/changelog/ChangeLog-2.7.html
The test has recently been failing due to the IPv6 address
on the server still being in the tentative state, when the
client sends its first request. The server will not start
using the IPv6 address until DAD has completed.
Scripted networking seems not to wait for DAD completion
before completing network-online.target, so let's switch
to networkd instead, which does.
Fixes the following ImportError on application startup:
/nix/store/qh7ndfsar3icmwqbiwcla7pc8x1133vg-python2.7-Markdown-3.1.1/bin/markdown_py README.md > README.html.new
Traceback (most recent call last):
File "/nix/store/qh7ndfsar3icmwqbiwcla7pc8x1133vg-python2.7-Markdown-3.1.1/bin/.markdown_py-wrapped", line 7, in <module>
from markdown.__main__ import run
File "/nix/store/qh7ndfsar3icmwqbiwcla7pc8x1133vg-python2.7-Markdown-3.1.1/lib/python2.7/site-packages/markdown/__init__.py", line 25, in <module>
from .core import Markdown, markdown, markdownFromFile
File "/nix/store/qh7ndfsar3icmwqbiwcla7pc8x1133vg-python2.7-Markdown-3.1.1/lib/python2.7/site-packages/markdown/core.py", line 29, in <module>
import pkg_resources
ImportError: No module named pkg_resources
make: *** [Makefile:53: README.html] Error 1
Adds support for the following new printer variants:
- Original Prusa i3 MK3S
- Original Prusa i3 MK3S MMU2S
- Original Prusa i3 MK2.5S
- Original Prusa i3 MK2.5S MMU2S