Currently the tests take an eternity and are also sometimes flaky. By
following upstream in using xdist for parallel test execution we at
least get the feedback cycle down. On my machine that means instead of
running this for ~25min it runs in 1 minute and 10 seconds.
`nix-build -A fish.tests.fishConfig` will now test that the
`fish_config` tool would start up properly. Previously, this test was
effectively disabled due to `withTests` being stubbed out.
I don't think this test ever truly worked, because the generated
temporary file would be cleaned up automatically (or maybe this
"automatically" changed between versions). The solution to this is to
add `delete=False` to the `NamedTemporaryFile` function call, to keep
the temporary file around in order to grep its contents for the expected
output.
Changes since the last release
New and changed parameters
POWERLEVEL9K_DIR_TRUNCATE_BEFORE_MARKER can now be set to last (equivalent to true from older versions) or first (new feature).
Bug fixes
gitstatus once again works on 32-bit ARM Linux (armv6l and armv7l).
https://github.com/fish-shell/fish-shell/compare/3.1.1...3.1.2
"This release of fish fixes a major issue discovered in fish 3.1.1:
Commands such as `fzf` and `enhancd`, when used with `eval`, would hang.
`eval` buffered output too aggressively, which has been fixed."
Changes since the last release
Bug fixes
Configuration wizard no longer redraws screen every second
Configuration wizard no longer prints spurious errors before the charset screen
Configuration wizard once again honors prompt frame selection
https://github.com/fish-shell/fish-shell/compare/3.1.0...3.1.1
The patch we had to use for Apple SDKs was merged upstream, so it can be
dropped. I ran nixpkgs-fmt, and removed the `with stdenv.lib;` scope
expander.
Additionally, did a little bit of cleanup. I plan on refactoring this
more down the line, but this'll do for now.
I finally figured out why we use `fetchurl` for the tagged release: the
published release tarballs contain a version file, which the
`build_tools/git_version_gen.sh` script reads (and uses as the version
if it exists). The other thing it contains are pre-generated docs for
various `fish` builtins. I've expanded the comment to document this so
nobody is as confused as I was when I first saw it. (Though I plan to
change this and add sphinx as a native build input in order to build the
docs ourselves.)
Changes since the last release
Wizard
Configuration wizard now reacts to terminal size changes in real time and can function at much smaller terminal dimensions.
Configs with prompt_char now have vi_mode disabled by default.
Generated configs now unset DEFAULT_USER.
Classic and Rainbow configs now set POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_GAP_BACKGROUND. This makes it easier to define 3-line prompt.
New parameters
If POWERLEVEL9K_CONFIG_FILE is set, configuration wizard will write configs to the specified location instead of the default ${ZDOTDIR:-~}/.p10k.zsh.
gitstatus
Support older macOS versions (at least El Capitan; even older versions might work).
Support Linux on armv6, i386 and i686.
Support cygwin and msys2 on i686.
macOS builds now use iconv from Homebrew.
gitstatusd binaries are now being built with https://github.com/romkatv/gitstatus/blob/release/mbuild.
Misc
The default icon for proxy segment is now ↔ instead of ⮂. The old icon is missing in many fonts.
Bug fixes
gitstatus once again works on 64-bit Linux without glibc.
Instant prompt no longer gets gradually slower over time when XDG_HOME_CACHE is on a slow filesystem.
Instant prompt no longer prints spurious erros when XDG_HOME_CACHE is on NTFS.
The old-style (and discouraged) custom prompts now work on zsh 5.3.1.
Configuration wizard once again presents "extra icons" and "fluent prompt" options when using 12-hour time format.
The app is still maintained upstream, but they aren't cutting releases on
crates.io anymore:
https://crates.io/crates/ion-shell
This fixes the build with the latest Rust toolchain by upgrading to the current
commit off the project's `master`.
ZHF: #80379
Changes since the last release
New and changed parameters:
Two additional parameters are available in gcloud: P9K_GCLOUD_CONFIGURATION and P9K_GCLOUD_PROJECT_NAME.
gcloud segment can now be in two states: PARTIAL and COMPLETE. See documentation.
Wizard:
The screen asking whether to display current time now offers a choice between two formats: 24-hour and 12-hour.
os_icon is no longer bold.
Slanted and flat separators are now using glyphs from Box Drawing Unicode block. They should look much better in fonts with correctly sized Box Drawing glyphs.
gcloud now displays project name instead of project id whenever possible.
Bug fixes:
Powerlevel10k no longer resolves symbolic links when calling commands that might act differently depending on argv[0].
java_version now works properly when using AdoptOpenJDK.
Misc:
Arch Linux users can now install Powerlevel10k with pacman. See instructions.
There is a new version of MesloLGS NF (the recommended font) with better alignment of powerline glyphs and 44% larger icons (by area). iTerm2 users can upgrade by typing p10k configure. Users of other terminals can follow manual installation instructions.
Changes since the last release
New prompt segments:
package: shows npm name and version from package.json (disabled by default).
New and changed parameters:
P9K_OS_ICON: set by Powerlevel10k on initialization; can be used in user-defined prompt segments and *_EXPANSION parameters.
POWERLEVEL9K_ICON_PADDING: when set to moderate, some icons will have an extra space after them. This is meant to avoid icon overlap when using non-monospace fonts. When set to none, spaces are not added.
Performance improvement:
detect_virt prompt segment is now 50% faster.
Bug fixes:
Many terminal escape sequences are now terminated with BEL instead of ST. BEL is the standard terminator according to ECMA-48 §8.3.89 but Konsole doesn't understand it. Thankfully, all terminals appear to understand BEL as extension.
Superfluous spaces have been removed from vcs segment when using a monospace font and not using my_git_formatter.
Wizard:
Generated configs now set POWERLEVEL9K_ICON_PADDING in favor of *_VISUAL_IDENTIFIER_EXPANSION. The value of this parameters depends on the answers to the first few questions that concern terminal font capabilities.
Generated configs no longer attempt to work around misconfigured locale. The workarounds in Powerlevel10k proper are sufficient.
gitstatus:
Fix a regression on Linux systems where uname doesn't understand -o.
Fix a regression on Cygwin and MinGW when running on older versions of Windows.
Fix a bug that can result in occasional gitstatus initialization failure on WSL when using Powerlevel10k with Instant Prompt.
Closes#81951
The PR unnecessarily removes the `patchShebangs .`-call, also the
non-deterministically failing testcase `test_pyghooks` isn't excluded
there.
Co-authored-by: Mario Rodas <marsam@users.noreply.github.com>
As noted in the comment, its Rust vendor directory no longer compiles. That
said, we can still compute the new `cargoSha256`, and the package fails in
precisely the same way.
Changes since the last release
New prompt segments:
haskell_stack: haskell version from stack.
New and changed parameters:
POWERLEVEL9K_MODE can now be set to ascii for ASCII prompt.
The default value of POWERLEVEL9K_VIRTUALENV_GENERIC_NAMES now contains env.
New parameter: POWERLEVEL9K_JAVA_VERSION_PROJECT_ONLY. Display java_version only in java project (sub)directories.
POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND now contains istioctl and kogito in all config templates. Thanks, @errantepiphany!
All *env segments now respect POWERLEVEL9K_*ENV_SHOW_SYSTEM. If set to false, the segment will be hidden if its content is "system". The default value is true.
nodenv now understand POWERLEVEL9K_NODENV_SOURCES, just like all other *env segments.
POWERLEVEL9K_DIR_OMIT_FIRST_CHARACTER now has useful semantics (incompatible with powerleve9k, where it was useless). If set to true, it'll remove the leading slash from the current directory if it's absolute. It no longer does anything if the directory is not absolute or if the leading character has been removed or changed by the shortener. This is meant for users who override POWERLEVEL9K_DIR_PATH_SEPARATOR.
Robustness improvements:
Powerlevel10k now works when there are no utf-8 locales on the machine.
Configuration wizard:
Lean, Classic and Rainbow styles now have an option to restrict prompt character set to ASCII.
Styles that require 256 colors are not offered when terminal cannot display 256 colors.
Rainbow and Classic styles now have an option to use flat heads. This option is offered in ASCII mode and when powerline glyphs are unavailable.
Configuration wizard now restores screen upon exit.
New segments in config templates: haskell_stack (enabled by default) and java_version (disabled by default).
Bug fixes:
Visual mode indicator now correctly switches back to command mode indicator after pressing d and similar when using Zsh >= 5.3. Visual mode indicator no longer gets displayed in Zsh prior to 5.3. Please upgrade Zsh if this matters to you.
*ENV_DIR parameters are now handled the same way as in the underlying *env projects.
Misc:
There is no longer an empty line at the top of the screen after hitting Ctrl-L or typing clear or reset, even with POWERLEVEL9K_PROMPT_ADD_NEWLINE=true and POWERLEVEL9K_TRANSIENT_PROMPT=always.
It's now possible to install powerlevel10k with Homebrew.
Subseparators are now displayed with the foreground color of the previous/next segment in left/right prompt. Used to be the other way around. Thanks, @ahaasler!
gitstatus:
make now produces usrbin/gitstatusd instead of ./gitstatusd.
build.zsh now puts the binary in usrbin subdirectory. If you place it in the same subdirectory of your gitstatus installation without changing the file name, gitstatus will pick it up automatically.
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).
Pulls in a patch committed a couple of days after the 0.9.13 release
(the one here), to fix the tests.
(cherry picked from commit bf822c4caa96666d5ee1c20870229b9f6484e5cd)
Resolves#80117 by using the newer fetcher; see #79975 for details.
Would also be fixed by #80153 eventually, but we want to upgrade Rust packages
either way, so might as well start with the broken ones!
fish-shell 3.1.0 was just released today with many niceties (including
the ability to have bash-like temporary env vars e.g. `VAR="var1"
command` instead of needing to use `env VAR="var1" command`). To see the
full list of changes, please visit
https://github.com/fish-shell/fish-shell/releases/tag/3.1.0.
Changes the default fetcher in the Rust Platform to be the newer
`fetchCargoTarball`, and changes every application using the current default to
instead opt out.
This commit does not change any hashes or cause any rebuilds. Once integrated,
we will start deleting the opt-outs and recomputing hashes.
See #79975 for details.
"`^` as a redirection deprecated and will be removed in the future."
(see the changelog, under the 3.0b1 release)
The latest fish beta release (3.1b1 as of time of writing) errors when
encountering `^&1` (though the fact it is now an error has yet to be
documented by them). The plugin was updated last year to account for
this change, and with the "imminent" release of fish-shell v3.1, this
should be fixed.
In 87a19e9048 I merged staging-next into master using the GitHub gui as intended.
In ac241fb7a5 I merged master into staging-next for the next staging cycle, however, I accidentally pushed it to master.
Thinking this may cause trouble, I reverted it in 0be87c7979. This was however wrong, as it "removed" master.
This reverts commit 0be87c7979.
I merged master into staging-next but accidentally pushed it to master.
This should get us back to 87a19e9048.
This reverts commit ac241fb7a5, reversing
changes made to 76a439239e.
According to https://repology.org/repository/nix_unstable/problems, we have a
lot of packages that have http links that redirect to https as their homepage.
This commit updates all these packages to use the https links as their
homepage.
The following script was used to make these updates:
```
curl https://repology.org/api/v1/repository/nix_unstable/problems \
| jq '.[] | .problem' -r \
| rg 'Homepage link "(.+)" is a permanent redirect to "(.+)" and should be updated' --replace 's@$1@$2@' \
| sort | uniq > script.sed
find -name '*.nix' | xargs -P4 -- sed -f script.sed -i
```
Idea shamelessly stolen from 4e60b0efae.
I realized that I don't really know anymore where I'm listed as maintainer and what
I'm actually (co)-maintaining which means that I can't proactively take
care of packages I officially maintain.
As I don't have the time, energy and motivation to take care of stuff I
was interested in 1 or 2 years ago (or packaged for someone else in the
past), I decided that I make this explicit by removing myself from several
packages and adding myself in some other stuff I'm now interested in.
I've seen it several times now that people remove themselves from a
package without removing the package if it's unmaintained after that
which is why I figured that it's fine in my case as the affected pkgs
are rather low-prio and were pretty easy to maintain.
Since 2.9 bash-completion hardcodes paths in pkgconfig file. We want to
be able to override certain paths, so this commit restores the original
behaviour.
https://github.com/NixOS/nixpkgs/issues/71662
The expression claimed there are differences between the release tarball and the tarball github packages from the tag but fetchFromGitHub literally downloads the same tarball.
There ver very many conflicts, basically all due to
name -> pname+version. Fortunately, almost everything was auto-resolved
by kdiff3, and for now I just fixed up a couple evaluation problems,
as verified by the tarball job. There might be some fallback to these
conflicts, but I believe it should be minimal.
Hydra nixpkgs: ?compare=1538299
Fish 3.0 has an updated an more robust handling of unicode glyphs. Per
the original author of the INTERNAL_WCWIDTH flag, it was something of
misfeature, and they regret that NixOS came to rely on it.
Removes the flag from the Nix expression.
Flag was added originally to Nixpkgs in 68076b7d49
It is being removed entirely from upstream fish:
https://github.com/fish-shell/fish-shell/pull/5777.
Simple zsh plugin that reminds you to use existing aliases. With
`oh-my-zsh` it can be installed like this:
```
{
programs.zsh.ohMyZsh = {
customPkgs = [ pkgs.zsh-you-should-use ];
plugins = [ "you-should-use" ];
};
}
```
A recent upgrade of cargo-vendor changed its output slightly, which
broke all cargoSha256 hashes in nixpkgs.
See https://github.com/NixOS/nixpkgs/issues/60668 for more information.
Since then, a few hashes have been fixed in master by hand, but there
were a lot still to do, so I did all of the ones left over with some
scripts I wrote.
The one hash I wasn’t able to update was habitat's, because it’s
currently broken and the build doesn’t get far enough to produce a
hash anyway.
See 61c373c...6b83aed
The newly introduced commit (87e7cd7) adds support for LAMBDA_MOD_N_DIR_LEVELS
to control the amount of dir levels shown in the prompt.
There seems to be a consensus among many packagers that RSSH is
probably no longer a good idea. There are a few fixes for some of the
issues but people should move on and use other software these days.
Removing it from further (stable) releases is probably a good idea. If
someone really needs it we still have it in the tree and they can
whitelist it again.