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.
* Elvish: a small fixup
Fixing version variable in order to properly download the source code.
Also, some minor stylistical modifications and additions.
* elvish: use pname
* Update pkgs/shells/elvish/default.nix
Use `pname` instead of `name`.
Co-Authored-By: AndersonTorres <torres.anderson.85@protonmail.com>
This is important when typing characters such as ⚡(U+26A1 HIGH VOLTAGE
SIGN), otherwise fish computes a different character width than the
terminal. See https://github.com/fish-shell/fish-shell/pull/4816
Instead of searching `/usr` it should search for the `xkb`,
$XDG_DATA_DIRS will be searched. With this approach we allow compliance
on NixOS and non-NixOS systems to find `symbols` in the `xkb` directory.
The patch has been accepted by upstream, but isn't released yet, so this
is mainly a temporary fix until we can bump ZSH to the next stable version.
The `xserver` module links `/share/X11/xkb` to `/run/current-system` to
make this possible.
The fix can be tested inside the following VM:
```
{
zshtest = {
programs.zsh.enable = true;
users.extraUsers.vm = {
password = "vm";
isNormalUser = true;
};
services.xserver.enable = true;
};
}
```
Fixes#46025
From upstream's NEWS:
> Changes from 5.6.1 to 5.6.2
> ---------------------------
>
> Fix another SIGTTOU case.
>
> Fix SIGWINCH being ignored when zsh is not in the foreground.
>
> The release tarballs are now compressed using xz(1), whereas previously
> both xz(1) and gzip(1) versions were available. If this gets in your way,
> give us a shout.
>
This ensures that no impurity exists due to implicitly depending
on`/usr/bin/env`.
It stores the theme into `$out/share/zsh/themes` to make it possible to
find theme using `buildEnv` and remain consistent with other ZSH
extensions.
These files feature simple aliases and a nix-shell detector when using
`nix-shell --run zsh`. The package itself contains the completion scripts in
`$out/share/zsh/site-functions` (to keep it compatible with ZSH-only
setups) and the plugins in `$out/share/zsh/plugins` for oh-my-zsh.
Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools.
This update was made based on information from https://repology.org/metapackage/xonsh/versions.
These checks were done:
- built on NixOS
- Warning: no invocation of /nix/store/yp41kipqmmsjl0ldi4b16z2590shv9dp-xonsh-0.6.8/bin/xon.sh had a zero exit code or showed the expected version
- /nix/store/yp41kipqmmsjl0ldi4b16z2590shv9dp-xonsh-0.6.8/bin/.xonsh-wrapped passed the binary check.
- /nix/store/yp41kipqmmsjl0ldi4b16z2590shv9dp-xonsh-0.6.8/bin/xonsh passed the binary check.
- 2 of 3 passed binary check by having a zero exit code.
- 2 of 3 passed binary check by having the new version present in output.
- found 0.6.8 with grep in /nix/store/yp41kipqmmsjl0ldi4b16z2590shv9dp-xonsh-0.6.8
- directory tree listing: https://gist.github.com/e53ad25422aa303572f4452029cb65b3
- du listing: https://gist.github.com/0c29b7c27c01e8d34986163ba00f1615
This package adds completion scripts for `gradle` on the `bash` and
`zsh` shells.
The completions can be enabled like this:
```
{ pkgs, ... }:
{
environment.systemPackages = [ pkgs.gradle pkgs.gradle-completion ];
programs.zsh.enable = true;
}
```
The package stores the scripts into the expected directories in
`$out/share` to ensure that the shells can easily find their scripts.
Closes#42799
* treewide: http -> https sources
This updates the source urls of all top-level packages from http to
https where possible.
* buildtorrent: fix url and tab -> spaces
Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools.
This update was made based on information from https://repology.org/metapackage/xonsh/versions.
These checks were done:
- built on NixOS
- Warning: no invocation of /nix/store/mb1vva59dwhq6yzqf98gkygljbzpdf37-xonsh-0.6.7/bin/xon.sh had a zero exit code or showed the expected version
- /nix/store/mb1vva59dwhq6yzqf98gkygljbzpdf37-xonsh-0.6.7/bin/.xonsh-wrapped passed the binary check.
- /nix/store/mb1vva59dwhq6yzqf98gkygljbzpdf37-xonsh-0.6.7/bin/xonsh passed the binary check.
- 2 of 3 passed binary check by having a zero exit code.
- 2 of 3 passed binary check by having the new version present in output.
- found 0.6.7 with grep in /nix/store/mb1vva59dwhq6yzqf98gkygljbzpdf37-xonsh-0.6.7
- directory tree listing: https://gist.github.com/1d8694bad62c300714d6658deedc7ec0
- du listing: https://gist.github.com/2d8baff97fce82b5ba4ded4746d954a0
For some reason, building powershell derivation started failing with
these errors:
```
liblttng-ust.so.0 -> not found!
...
libpam.so.0 -> not found!
```
This patch adds these dependencies
Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools.
This update was made based on information from https://repology.org/metapackage/xonsh/versions.
These checks were done:
- built on NixOS
- Warning: no invocation of /nix/store/n2hvc59jjmqfww86pqz7w6hmr7wlklbw-xonsh-0.6.6/bin/xon.sh had a zero exit code or showed the expected version
- /nix/store/n2hvc59jjmqfww86pqz7w6hmr7wlklbw-xonsh-0.6.6/bin/.xonsh-wrapped passed the binary check.
- /nix/store/n2hvc59jjmqfww86pqz7w6hmr7wlklbw-xonsh-0.6.6/bin/xonsh passed the binary check.
- 2 of 3 passed binary check by having a zero exit code.
- 2 of 3 passed binary check by having the new version present in output.
- found 0.6.6 with grep in /nix/store/n2hvc59jjmqfww86pqz7w6hmr7wlklbw-xonsh-0.6.6
- directory tree listing: https://gist.github.com/dba795a63cf24871f010baf56dba68d0
- du listing: https://gist.github.com/afde349bcf27d995e595d895941de9de
Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools.
This update was made based on information from https://repology.org/metapackage/xonsh/versions.
These checks were done:
- built on NixOS
- Warning: no invocation of /nix/store/zdkhffpw9yfjkxi877mildima9kp7skm-xonsh-0.6.4/bin/xon.sh had a zero exit code or showed the expected version
- /nix/store/zdkhffpw9yfjkxi877mildima9kp7skm-xonsh-0.6.4/bin/.xonsh-wrapped passed the binary check.
- /nix/store/zdkhffpw9yfjkxi877mildima9kp7skm-xonsh-0.6.4/bin/xonsh passed the binary check.
- 2 of 3 passed binary check by having a zero exit code.
- 2 of 3 passed binary check by having the new version present in output.
- found 0.6.4 with grep in /nix/store/zdkhffpw9yfjkxi877mildima9kp7skm-xonsh-0.6.4
- directory tree listing: https://gist.github.com/f4e56948f12666dc9fa8965e32e1844e
- du listing: https://gist.github.com/de490af4f1967c7d07e86d7068da2c32
Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools.
This update was made based on information from https://repology.org/metapackage/xonsh/versions.
These checks were done:
- built on NixOS
- ran ‘/nix/store/prjh0vgnnn80ba9im4j9minjivsa8bj4-xonsh-0.6.3/bin/.xonsh-wrapped -h’ got 0 exit code
- ran ‘/nix/store/prjh0vgnnn80ba9im4j9minjivsa8bj4-xonsh-0.6.3/bin/.xonsh-wrapped --help’ got 0 exit code
- ran ‘/nix/store/prjh0vgnnn80ba9im4j9minjivsa8bj4-xonsh-0.6.3/bin/.xonsh-wrapped help’ got 0 exit code
- ran ‘/nix/store/prjh0vgnnn80ba9im4j9minjivsa8bj4-xonsh-0.6.3/bin/.xonsh-wrapped -V’ and found version 0.6.3
- ran ‘/nix/store/prjh0vgnnn80ba9im4j9minjivsa8bj4-xonsh-0.6.3/bin/.xonsh-wrapped --version’ and found version 0.6.3
- ran ‘/nix/store/prjh0vgnnn80ba9im4j9minjivsa8bj4-xonsh-0.6.3/bin/xonsh -h’ got 0 exit code
- ran ‘/nix/store/prjh0vgnnn80ba9im4j9minjivsa8bj4-xonsh-0.6.3/bin/xonsh --help’ got 0 exit code
- ran ‘/nix/store/prjh0vgnnn80ba9im4j9minjivsa8bj4-xonsh-0.6.3/bin/xonsh help’ got 0 exit code
- ran ‘/nix/store/prjh0vgnnn80ba9im4j9minjivsa8bj4-xonsh-0.6.3/bin/xonsh -V’ and found version 0.6.3
- ran ‘/nix/store/prjh0vgnnn80ba9im4j9minjivsa8bj4-xonsh-0.6.3/bin/xonsh --version’ and found version 0.6.3
- found 0.6.3 with grep in /nix/store/prjh0vgnnn80ba9im4j9minjivsa8bj4-xonsh-0.6.3
- directory tree listing: https://gist.github.com/c4698aa16268961773b245a4b849a9f0
- du listing: https://gist.github.com/db7c65ccf5f4bf3c4457401c300d1862
Semi-automatic update generated by https://github.com/ryantm/nix-update tools. These checks were done:
- built on NixOS
- Warning: no binary found that responded to help or version flags. (This warning appears even if the package isn't expected to have binaries.)
- found 2.8 with grep in /nix/store/svgfjl0v59ff90l6h2gzbsplhbk3aqhp-bash-completion-2.8
- directory tree listing: https://gist.github.com/23a9bb8eddc5667ef5a94d69ea7ab340