diff --git a/README.md b/README.md
index 884cb21f..fbcced45 100644
--- a/README.md
+++ b/README.md
@@ -2,11 +2,6 @@
[](
https://gitter.im/powerlevel10k/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
-- **THE PROJECT HAS VERY LIMITED SUPPORT**
-- **NO NEW FEATURES ARE IN THE WORKS**
-- **MOST BUGS WILL GO UNFIXED**
-- **HELP REQUESTS WILL BE IGNORED**
-
Powerlevel10k is a theme for Zsh. It emphasizes [speed](#uncompromising-performance),
[flexibility](#extremely-customizable) and [out-of-the-box experience](#configuration-wizard).
@@ -220,8 +215,9 @@ Configs created by `p10k configure` enable show on command for several prompt se
Here's the relevant parameter for kubernetes context:
```zsh
-# Show prompt segment "kubecontext" only when the command you are typing invokes one of these tools.
-typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens'
+# Show prompt segment "kubecontext" only when the command you are typing
+# invokes kubectl, helm, kubens, kubectx, oc, istioctl, kogito, k9s, helmfile, flux, fluxctl or stern.
+typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|flux|fluxctl|stern'
```
To customize when different prompt segments are shown, open `~/.p10k.zsh`, search for
@@ -305,11 +301,10 @@ To ~~ridiculous~~ extravagant:
### Batteries included
-Powerlevel10k comes with dozens of built-in high quality prompt segments that can display
-information from a variety of sources. When you run `p10k configure` and choose any style
-except [Pure](#pure-compatibility), many of these segments get enabled by
-default while others can be manually enabled by opening `~/.p10k.zsh` and uncommenting them.
-You can enable as many segments as you like. It won't slow down your prompt or Zsh startup.
+Powerlevel10k comes with dozens of built-in high quality segments. When you run `p10k configure`
+and choose any style except [Pure](#pure-compatibility), many of these segments get enabled by
+default while others be manually enabled by opening `~/.p10k.zsh` and uncommenting them. You can
+enable as many segments as you like. It won't slow down your prompt or Zsh startup.
| Segment | Meaning |
|--------:|---------|
@@ -322,7 +317,6 @@ You can enable as many segments as you like. It won't slow down your prompt or Z
| `battery` | internal battery state and charge level (yep, batteries *literally* included) |
| `command_execution_time` | duration (wall time) of the last command |
| `context` | user@hostname |
-| `cpu_arch` | CPU architecture |
| `dir` | current working directory |
| `direnv` | [direnv](https://direnv.net/) status |
| `disk_usage` | disk usage |
@@ -343,8 +337,6 @@ You can enable as many segments as you like. It won't slow down your prompt or Z
| `midnight_commander` | [midnight commander](https://midnight-commander.org/) shell |
| `nix_shell` | [nix shell](https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) indicator |
| `nnn` | [nnn](https://github.com/jarun/nnn) shell |
-| `lf` | [lf](https://github.com/gokcehan/lf) shell |
-| `chezmoi_shell` | [chezmoi](https://www.chezmoi.io/) shell |
| `nodeenv` | node.js environment from [nodeenv](https://github.com/ekalinin/nodeenv) |
| `nodenv` | node.js environment from [nodenv](https://github.com/nodenv/nodenv) |
| `node_version` | [node.js](https://nodejs.org/) version |
@@ -352,8 +344,6 @@ You can enable as many segments as you like. It won't slow down your prompt or Z
| `nvm` | node.js environment from [nvm](https://github.com/nvm-sh/nvm) |
| `os_icon` | your OS logo (apple for macOS, swirl for debian, etc.) |
| `package` | `name@version` from [package.json](https://docs.npmjs.com/files/package.json) |
-| `per_directory_history` | Oh My Zsh [per-directory-history](https://github.com/jimhester/per-directory-history) local/global indicator |
-| `perlbrew` | perl version from [perlbrew](https://github.com/gugod/App-perlbrew) |
| `phpenv` | php environment from [phpenv](https://github.com/phpenv/phpenv) |
| `php_version` | [php](https://www.php.net/) version |
| `plenv` | perl environment from [plenv](https://github.com/tokuhirom/plenv) |
@@ -363,11 +353,9 @@ You can enable as many segments as you like. It won't slow down your prompt or Z
| `pyenv` | python environment from [pyenv](https://github.com/pyenv/pyenv) |
| `ram` | free RAM |
| `ranger` | [ranger](https://github.com/ranger/ranger) shell |
-| `yazi` | [yazi](https://github.com/sxyazi/yazi) shell |
| `rbenv` | ruby environment from [rbenv](https://github.com/rbenv/rbenv) |
| `rust_version` | [rustc](https://www.rust-lang.org) version |
| `rvm` | ruby environment from [rvm](https://rvm.io) |
-| `scalaenv` | scala version from [scalaenv](https://github.com/scalaenv/scalaenv) |
| `status` | exit code of the last command |
| `swap` | used swap |
| `taskwarrior` | [taskwarrior](https://taskwarrior.org/) task count |
@@ -380,7 +368,6 @@ You can enable as many segments as you like. It won't slow down your prompt or Z
| `vcs` | Git repository status |
| `vim_shell` | [vim](https://www.vim.org/) shell (`:sh`) |
| `virtualenv` | python environment from [venv](https://docs.python.org/3/library/venv.html) |
-| `vi_mode` | vi mode (you don't need this if you've enabled prompt_char) |
| `vpn_ip` | virtual private network indicator |
| `wifi` | WiFi speed |
| `xplr` | [xplr](https://github.com/sayanarijit/xplr) shell |
@@ -404,11 +391,6 @@ it out of the box.
Type `p10k help segment` for reference.
-*Note*: If you modify `POWERLEVEL9K_*` parameters in an already initialized interactive shell (as
-opposed to editing `~/.p10k.zsh`), the changes might not be immediately effective. To apply the
-modifications, invoke `p10k reload`. Setting `POWERLEVEL9K_DISABLE_HOT_RELOAD=false` eliminates the
-necessity for `p10k reload` but results in a marginally slower prompt.
-
*Tip*: Prefix names of your own segments with `my_` to avoid clashes with future versions of
Powerlevel10k.
@@ -419,18 +401,13 @@ Powerlevel10k.
- [Prezto](#prezto)
- [Zim](#zim)
- [Antibody](#antibody)
-- [Antidote](#antidote)
- [Antigen](#antigen)
- [Zplug](#zplug)
- [Zgen](#zgen)
- [Zplugin](#zplugin)
- [Zinit](#zinit)
-- [Zi](#zi)
-- [Zap](#zap)
- [Homebrew](#homebrew)
- [Arch Linux](#arch-linux)
-- [Alpine Linux](#alpine-linux)
-- [Fig](#fig)
### Manual
@@ -439,8 +416,8 @@ git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc
```
-Users in China can use the official mirror on gitee.com for faster download.
-中国用户可以使用 gitee.com 上的官方镜像加速下载.
+Users in mainland China can use the official mirror on gitee.com for faster download.
+中国大陆用户可以使用 gitee.com 上的官方镜像加速下载.
```zsh
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ~/powerlevel10k
@@ -457,8 +434,8 @@ make sure to disable the current theme in your plugin manager. See
```zsh
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
```
- Users in China can use the official mirror on gitee.com for faster download.
- 中国用户可以使用 gitee.com 上的官方镜像加速下载.
+ Users in mainland China can use the official mirror on gitee.com for faster download.
+ 中国大陆用户可以使用 gitee.com 上的官方镜像加速下载.
```zsh
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
@@ -477,10 +454,6 @@ Add `zmodule romkatv/powerlevel10k --use degit` to `~/.zimrc` and run `zimfw ins
Add `antibody bundle romkatv/powerlevel10k` to `~/.zshrc`.
-### Antidote
-
-Add `romkatv/powerlevel10k` to `~/.zsh_plugins.txt`.
-
### Antigen
Add `antigen theme romkatv/powerlevel10k` to `~/.zshrc`. Make sure you have `antigen apply`
@@ -508,22 +481,11 @@ Add `zinit ice depth=1; zinit light romkatv/powerlevel10k` to `~/.zshrc`.
The use of `depth=1` ice is optional. Other types of ice are neither recommended nor officially
supported by Powerlevel10k.
-### Zi
-
-Add `zi ice depth=1; zi light romkatv/powerlevel10k` to `~/.zshrc`.
-
-The use of `depth=1` ice is optional. Other types of ice are neither recommended nor officially
-supported by Powerlevel10k.
-
-### Zap
-
-Add `plug "romkatv/powerlevel10k"` to `~/.zshrc`.
-
### Homebrew
```zsh
-brew install powerlevel10k
-echo "source $(brew --prefix)/share/powerlevel10k/powerlevel10k.zsh-theme" >>~/.zshrc
+brew install romkatv/powerlevel10k/powerlevel10k
+echo "source $(brew --prefix)/opt/powerlevel10k/powerlevel10k.zsh-theme" >>~/.zshrc
```
### Arch Linux
@@ -537,23 +499,10 @@ echo 'source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme' >>~/.zs
referenced above is the official Powerlevel10k package.
There is also [zsh-theme-powerlevel10k](
- https://www.archlinux.org/packages/extra/x86_64/zsh-theme-powerlevel10k/) package.
+ https://www.archlinux.org/packages/community/x86_64/zsh-theme-powerlevel10k/) community package.
Historically, [it has been breaking often and for extended periods of time](
https://github.com/romkatv/powerlevel10k/pull/786). **Do not use it.**
-### Alpine Linux
-
-```zsh
-apk add zsh zsh-theme-powerlevel10k
-mkdir -p ~/.local/share/zsh/plugins
-ln -s /usr/share/zsh/plugins/powerlevel10k ~/.local/share/zsh/plugins/
-```
-
-### Fig
-
-Follow the instructions on
-[this page](https://fig.io/plugins/other/powerlevel10k).
-
## Configuration
- [For new users](#for-new-users)
@@ -672,10 +621,11 @@ If you are using a different terminal, proceed with manual font installation.
*Custom font* under *Text Appearance* and select `MesloLGS NF Regular`.
- **Windows Console Host** (the old thing): Click the icon in the top left corner, then
*Properties → Font* and set *Font* to `MesloLGS NF`.
- - **Windows Terminal** by Microsoft (the new thing): Open *Settings* (Ctrl+,), click
- either on the selected profile under *Profiles* or on *Defaults*, click *Appearance* and set
- *Font face* to `MesloLGS NF`.
- - **Conemu**: Open *Setup → General → Fonts* and set *Main console font* to `MesloLGS NF`.
+ - **Windows Terminal** by Microsoft (the new thing): Open `settings.json` (Ctrl+Shift+,),
+ search for `fontFace` and set the value to `MesloLGS NF` for every profile. If you don't find
+ `fontFace`, add it under *profiles → defaults*. See [this settings file](
+ https://raw.githubusercontent.com/romkatv/dotfiles-public/aba0e6c4657d705ed6c344d700d659977385f25c/dotfiles/microsoft-terminal-settings.json)
+ for example.
- **IntelliJ** (and other IDEs by Jet Brains): Open *IDE → Edit → Preferences → Editor →
Color Scheme → Console Font*. Select *Use console font instead of the default* and set the font
name to `MesloLGS NF`.
@@ -683,7 +633,7 @@ If you are using a different terminal, proceed with manual font installation.
*Meslo Nerd Font*.
- **Blink**: Type `config`, go to *Appearance*, tap *Add a new font*, tap *Open Gallery*, select
*MesloLGS NF.css*, tap *import* and type `exit` in the home view to reload the font.
- - **Tabby** (formerly **Terminus**): Open *Settings → Appearance* and set *Font* to `MesloLGS NF`.
+ - **Terminus**: Open *Settings → Appearance* and set *Font* to `MesloLGS NF`.
- **Terminator**: Open *Preferences* using the context menu. Under *Profiles* select the *General*
tab (should be selected already), uncheck *Use the system fixed width font* (if not already)
and select `MesloLGS NF Regular`. Exit the Preferences dialog by clicking *Close*.
@@ -691,9 +641,7 @@ If you are using a different terminal, proceed with manual font installation.
tab, uncheck *Use the system fixed width font* (if not already) and select `MesloLGS NF Regular`.
Exit the Preferences dialog by clicking *Close*.
- **MobaXterm**: Open *Settings* → *Configuration* → *Terminal* → (under *Terminal look and feel*)
- and change *Font* to `MesloLGS NF`. If you have *sessions*, you need to change the font in each
- of them through *Settings* → right click on an individual session → *Edit Session* → *Terminal
- Settings* → *Font settings*.
+ and change *Font* to `MesloLGS NF`.
- **Asbrú Connection Manager**: Open *Preferences → Local Shell Options → Look and Feel*, enable
*Use these personal options* and change *Font:* under *Terminal UI* to `MesloLGS NF Regular`.
To change the font for the remote host connections, go to *Preferences → Terminal Options →
@@ -703,17 +651,14 @@ If you are using a different terminal, proceed with manual font installation.
- **Yakuake**: Click *≡* → *Manage Profiles* → *New* → *Appearance*. Click *Choose* next to the
*Font* dropdown, select `MesloLGS NF` and click *OK*. Click *OK* to save the profile. Select the
new profile and click *Set as Default*.
- - **Alacritty**: Create or open `~/.config/alacritty/alacritty.toml` and add the following
- section to it:
- ```toml
- [font.normal]
- family = "MesloLGS NF"
+ - **Alacritty**: Create or open `~/.config/alacritty/alacritty.yml` and add the following section
+ to it:
+ ```yaml
+ font:
+ normal:
+ family: "MesloLGS NF"
```
- - **foot**: Create or open `~/.config/foot/foot.ini` and add the following section to it:
- ```ini
- font=MesloLGS NF:size=12
- ```
- - **kitty**: Create or open `~/.config/kitty/kitty.conf` and add the following line to it:
+ - **kitty**: Create or open `~/.config/kitty/kitty.conf` and add the following line to it:
```text
font_family MesloLGS NF
```
@@ -741,45 +686,6 @@ If you are using a different terminal, proceed with manual font installation.
```
After changing the config run `xrdb ~/.Xresources` to reload it. The new config is applied to
all new terminals.
- - **Zed**: Open `~/.config/zed/settings.json` and set `terminal.font_family` to `"MesloLGS NF"`.
- ```jsonc
- {
- "terminal": {
- "font_family": "MesloLGS NF"
- },
- // Other settings.
- }
- ```
- - Crostini (Linux on Chrome OS): Open
- chrome-untrusted://terminal/html/nassh_preferences_editor.html, set *Text font family* to
- `'MesloLGS NF'` (including the quotes) and *Custom CSS (inline text)* to the following:
- ```css
- @font-face {
- font-family: "MesloLGS NF";
- src: url("https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/MesloLGS%20NF%20Regular.ttf");
- font-weight: normal;
- font-style: normal;
- }
- @font-face {
- font-family: "MesloLGS NF";
- src: url("https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/MesloLGS%20NF%20Bold.ttf");
- font-weight: bold;
- font-style: normal;
- }
- @font-face {
- font-family: "MesloLGS NF";
- src: url("https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/MesloLGS%20NF%20Italic.ttf");
- font-weight: normal;
- font-style: italic;
- }
- @font-face {
- font-family: "MesloLGS NF";
- src: url("https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/MesloLGS%20NF%20Bold%20Italic.ttf");
- font-weight: bold;
- font-style: italic;
- }
- ```
- **_CAVEAT_**: If you open the normal terminal preferences these settings will be overwritten.
1. Run `p10k configure` to generate a new `~/.p10k.zsh`. The old config may work
incorrectly with the new font.
@@ -789,7 +695,7 @@ PR to expand the list!_
## Try it in Docker
Try Powerlevel10k in Docker. You can safely make any changes to the file system while trying out
-the theme. Once you exit Zsh, the container is deleted.
+the theme. Once you exit Zsh, the image is deleted.
```zsh
docker run -e TERM -e COLORTERM -e LC_ALL=C.UTF-8 -it --rm alpine sh -uec '
@@ -846,23 +752,19 @@ Powerlevel10k is released under the
The command to update Powerlevel10k depends on how it was installed.
-| Installation | Update command |
-|-------------------------------|-------------------------------------------------------------|
-| [Manual](#manual) | `git -C ~/powerlevel10k pull` |
-| [Oh My Zsh](#oh-my-zsh) | `git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k pull` |
-| [Prezto](#prezto) | `zprezto-update` |
-| [Zim](#zim) | `zimfw update` |
-| [Antigen](#antigen) | `antigen update` |
-| [Antidote](#antidote) | `antidote update` |
-| [Zplug](#zplug) | `zplug update` |
-| [Zgen](#zgen) | `zgen update` |
-| [Zplugin](#zplugin) | `zplugin update` |
-| [Zinit](#zinit) | `zinit update` |
-| [Zi](#zi) | `zi update` |
-| [Zap](#zap) | `zap update` |
-| [Homebrew](#homebrew) | `brew update && brew upgrade` |
-| [Arch Linux](#arch-linux) | `yay -S --noconfirm zsh-theme-powerlevel10k-git` |
-| [Alpine Linux](#alpine-linux) | `apk update && apk upgrade` |
+| Installation | Update command |
+|---------------------------|-------------------------------------------------------------|
+| [Manual](#manual) | `git -C ~/powerlevel10k pull` |
+| [Oh My Zsh](#oh-my-zsh) | `git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k pull` |
+| [Prezto](#prezto) | `zprezto-update` |
+| [Zim](#zim) | `zimfw update` |
+| [Antigen](#antigen) | `antigen update` |
+| [Zplug](#zplug) | `zplug update` |
+| [Zgen](#zgen) | `zgen update` |
+| [Zplugin](#zplugin) | `zplugin update` |
+| [Zinit](#zinit) | `zinit update` |
+| [Homebrew](#homebrew) | `brew update && brew upgrade` |
+| [Arch Linux](#arch-linux) | `yay -S --noconfirm zsh-theme-powerlevel10k-git` |
**IMPORTANT**: Restart Zsh after updating Powerlevel10k. [Do not use `source ~/.zshrc`](
#weird-things-happen-after-typing-source-zshrc).
@@ -900,23 +802,19 @@ The command to update Powerlevel10k depends on how it was installed.
Powerlevel10k. The command to delete them depends on which installation method you'd chosen.
Refer to the [installation instructions](#installation) if you need a reminder.
- | Installation | Uninstall command |
- |-------------------------------|------------------------------------------------------------------|
- | [Manual](#manual) | `rm -rf ~/powerlevel10k` |
- | [Oh My Zsh](#oh-my-zsh) | `rm -rf -- ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k` |
- | [Prezto](#prezto) | n/a |
- | [Zim](#zim) | `zimfw uninstall` |
- | [Antigen](#antigen) | `antigen purge romkatv/powerlevel10k` |
- | [Antidote](#antidote) | `antidote purge romkatv/powerlevel10k` |
- | [Zplug](#zplug) | `zplug clean` |
- | [Zgen](#zgen) | `zgen reset` |
- | [Zplugin](#zplugin) | `zplugin delete romkatv/powerlevel10k` |
- | [Zinit](#zinit) | `zinit delete romkatv/powerlevel10k` |
- | [Zi](#zi) | `zi delete romkatv/powerlevel10k` |
- | [Zap](#zap) | `zsh -ic 'zap clean'` |
- | [Homebrew](#homebrew) | `brew uninstall powerlevel10k` |
- | [Arch Linux](#arch-linux) | `yay -R --noconfirm zsh-theme-powerlevel10k-git` |
- | [Alpine Linux](#alpine-linux) | `apk del zsh-theme-powerlevel10k` |
+ | Installation | Uninstall command |
+ |---------------------------|------------------------------------------------------------------|
+ | [Manual](#manual) | `rm -rf ~/powerlevel10k` |
+ | [Oh My Zsh](#oh-my-zsh) | `rm -rf -- ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k` |
+ | [Prezto](#prezto) | n/a |
+ | [Zim](#zim) | `zimfw uninstall` |
+ | [Antigen](#antigen) | `antigen purge romkatv/powerlevel10k` |
+ | [Zplug](#zplug) | `zplug clean` |
+ | [Zgen](#zgen) | `zgen reset` |
+ | [Zplugin](#zplugin) | `zplugin delete romkatv/powerlevel10k` |
+ | [Zinit](#zinit) | `zinit delete romkatv/powerlevel10k` |
+ | [Homebrew](#homebrew) | `brew uninstall powerlevel10k; brew untap romkatv/powerlevel10k` |
+ | [Arch Linux](#arch-linux) | `yay -R --noconfirm zsh-theme-powerlevel10k-git` |
6. Restart Zsh. [Do not use `source ~/.zshrc`](#weird-things-happen-after-typing-source-zshrc).
7. Delete Powerlevel10k cache files.
```zsh
@@ -987,8 +885,6 @@ Powerlevel10k does not affect:
- Prompt parameters other than `PS1` and `RPS1`.
- Zsh options other than those [related to prompt](
http://zsh.sourceforge.net/Doc/Release/Options.html#Prompting).
-- The set of available commands. Powerlevel10k does not install any new commands
- with the only exception of `p10k`.
### I'm using Powerlevel9k with Oh My Zsh. How do I migrate?
@@ -1156,7 +1052,6 @@ feature:master wip ⇣42⇡42 ⇠42⇢42 *42 merge ~42 +42 !42 ?42
| `feature` | current branch; replaced with `#tag` or `@commit` if not on a branch | `git status --ignore-submodules=dirty` |
| `master` | remote tracking branch; only shown if different from local branch | `git rev-parse --abbrev-ref --symbolic-full-name @{upstream}` |
| `wip` | the latest commit's summary contains "wip" or "WIP" | `git show --pretty=%s --no-patch HEAD` |
-| `=` | up to date with the remote (neither ahead nor behind) | `git rev-list --count HEAD...@{upstream}` |
| `⇣42` | this many commits behind the remote | `git rev-list --right-only --count HEAD...@{upstream}` |
| `⇡42` | this many commits ahead of the remote | `git rev-list --left-only --count HEAD...@{upstream}` |
| `⇠42` | this many commits behind the push remote | `git rev-list --right-only --count HEAD...@{push}` |
@@ -1208,7 +1103,7 @@ completes, Powerlevel10k refreshes prompt with new information, this time with c
When using *Rainbow* style, Git status is displayed as black on grey while it's still being
computed. Depending on the terminal color palette, this may be difficult to read. In this case you
-might want to change the background color to something lighter for more contrast. To do that, open
+might want to change the background color to something ligher for more contrast. To do that, open
`~/.p10k.zsh`, search for `POWERLEVEL9K_VCS_LOADING_BACKGROUND`, uncomment it if it's commented out,
and change the value.
@@ -1261,9 +1156,9 @@ Prompt segments can be configured to be shown only when the current command you
a relevant tool.
```zsh
-# Show prompt segment "kubecontext" only when the command you are typing invokes
-# invokes kubectl, helm, or kubens.
-typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens'
+# Show prompt segment "kubecontext" only when the command you are typing
+# invokes kubectl, helm, kubens, kubectx, oc, istioctl, kogito, k9s, helmfile, flux, fluxctl or stern.
+typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|flux|fluxctl|stern'
```
Configs created by `p10k configure` may contain parameters of this kind. To customize when different
@@ -1279,7 +1174,7 @@ function kube-toggle() {
if (( ${+POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND} )); then
unset POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND
else
- POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens'
+ POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|flux|fluxctl|stern'
fi
p10k reload
if zle; then
@@ -1332,28 +1227,15 @@ terminals. Many terminals also support customization of these colors through col
Type `source ~/.p10k.zsh` to apply your changes to the current Zsh session.
-To see how different numbered colors look in your terminal, run the following command:
+To see how different colors look in your terminal, run the following command:
```zsh
for i in {0..255}; do print -Pn "%K{$i} %k%F{$i}${(l:3::0:)i}%f " ${${(M)$((i%6)):#3}:+$'\n'}; done
```
-If your terminal supports truecolor, you can use 24-bit colors in the `#RRGGBB` format in addition
-to the numbered colors.
-
-```zsh
-typeset -g POWERLEVEL9K_TIME_FOREGROUND='#FF0000'
-```
-
*Related:*
- [Directory is difficult to see in prompt when using Rainbow style.](
#directory-is-difficult-to-see-in-prompt-when-using-rainbow-style)
- - [Incorrect foreground color in VSCode Terminal.](#incorrect-foreground-color-in-vscode-terminal)
-
-By default, VSCode Terminal may arbitrarily replace the foreground color of your choice with a
-different color. This behavior can be
-[turned off](https://code.visualstudio.com/docs/terminal/appearance#_minimum-contrast-ratio) in
-VSCode settings.
### Why does Powerlevel10k spawn extra processes?
@@ -1525,7 +1407,6 @@ Powerlevel10k are released. This may change in the future but not soon.
## Troubleshooting
-- [`[oh-my-zsh] theme 'powerlevel10k/powerlevel10k' not found`](#oh-my-zsh-theme-powerlevel10kpowerlevel10k-not-found)
- [Question mark in prompt](#question-mark-in-prompt)
- [Icons, glyphs or powerline symbols don't render](#icons-glyphs-or-powerline-symbols-dont-render)
- [Sub-pixel imperfections around powerline symbols](#sub-pixel-imperfections-around-powerline-symbols)
@@ -1543,32 +1424,9 @@ Powerlevel10k are released. This may change in the future but not soon.
- [Transient prompt stops working after some time](#transient-prompt-stops-working-after-some-time)
- [Cannot make Powerlevel10k work with my plugin manager](#cannot-make-powerlevel10k-work-with-my-plugin-manager)
- [Directory is difficult to see in prompt when using Rainbow style](#directory-is-difficult-to-see-in-prompt-when-using-rainbow-style)
-- [Incorrect foreground color in VSCode Terminal.](#incorrect-foreground-color-in-vscode-terminal)
- [Horrific mess when resizing terminal window](#horrific-mess-when-resizing-terminal-window)
- [Icons cut off in Konsole](#icons-cut-off-in-konsole)
- [Arch Linux logo has a dot in the bottom right corner](#arch-linux-logo-has-a-dot-in-the-bottom-right-corner)
-- [Incorrect git status in prompt](#incorrect-git-status-in-prompt)
-
-### `[oh-my-zsh] theme 'powerlevel10k/powerlevel10k' not found`
-
-When opening a terminal, or starting zsh manually, you may encounter this error message:
-
-```text
-[oh-my-zsh] theme 'powerlevel10k/powerlevel10k' not found
-```
-
-1. First, run `typeset -p P9K_VERSION` to check whether Powerlevel10k has been loaded.
- - If `typeset -p P9K_VERSION` succeeds and prints something like `typeset P9K_VERSION=1.19.14`
- (the version could be different), remove the following line from `~/.zshrc`:
- ```zsh
- ZSH_THEME="powerlevel10k/powerlevel10k"
- ```
- - If `typeset -p P9K_VERSION` fails with the error `typeset: no such variable: P9K_VERSION`, run
- the following command:
- ```zsh
- git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
- ```
-2. Restart Zsh with `exec zsh`.
### Question mark in prompt
@@ -1753,15 +1611,10 @@ and make sure that `TERM` environment variable is set correctly. Verify with
If there is no UTF-8 locale on the system, configuration wizard won't offer prompt styles that use
Unicode characters. *Fix*: Install a UTF-8 locale. Verify with `locale -a`.
-Another case in which configuration wizard may not offer Unicode prompt styles is when the
-`MULTIBYTE` shell option is disabled. *Fix*: Enable the `MULTIBYTE` option, or rather don't disable
-it (this option is enabled in Zsh by default). Verify with `print -r -- ${options[MULTIBYTE]}`.
-
-When `MULTIBYTE` is enabled and a UTF-8 locale is available, the first few questions asked by the
-configuration wizard assess capabilities of the terminal font. If your answers indicate that some
-glyphs don't render correctly, configuration wizard won't offer prompt styles that use them. *Fix*:
-Restart your terminal and install
-[the recommended font](#meslo-nerd-font-patched-for-powerlevel10k). Verify by running
+When a UTF-8 locale is available, the first few questions asked by the configuration wizard assess
+capabilities of the terminal font. If your answers indicate that some glyphs don't render correctly,
+configuration wizard won't offer prompt styles that use them. *Fix*: Restart your terminal and
+install [the recommended font](#meslo-nerd-font-patched-for-powerlevel10k). Verify by running
`p10k configure` and checking that all glyphs render correctly.
### Cannot install the recommended font
@@ -1887,15 +1740,6 @@ There are several ways to fix this.
`POWERLEVEL9K_DIR_ANCHOR_FOREGROUND` and `POWERLEVEL9K_DIR_ANCHOR_BOLD`. You can find them in
`~/.p10k.zsh`.
-*Related*: [Incorrect foreground color in VSCode Terminal.](#incorrect-foreground-color-in-vscode-terminal)
-
-### Incorrect foreground color in VSCode Terminal
-
-By default, VSCode Terminal may arbitrarily replace the foreground color of your choice with a
-different color. This behavior can be
-[turned off](https://code.visualstudio.com/docs/terminal/appearance#_minimum-contrast-ratio) in
-VSCode settings.
-
### Horrific mess when resizing terminal window
When you resize a terminal window horizontally back and forth a few times, you might see this ugly
@@ -2092,16 +1936,3 @@ Some fonts have this incorrect dotted icon in bold typeface. There are two ways
```zsh
typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='${P9K_CONTENT}' # not bold
```
-
-### Incorrect git status in prompt
-
-Powerlevel10k uses [gitstatusd](https://github.com/romkatv/gitstatus) to inspect the state of git
-repositories. The project relies on the [libgit2](https://github.com/libgit2/libgit2) library, which
-has some gaps in its implementation. Under some conditions, this may result in discrepancies between
-the real state of a git repository (reflected by `git status`) and what gets shown in the
-Powerlevel10k prompt.
-
-Most notably, [libgit2 does not support `skipHash`](https://github.com/libgit2/libgit2/issues/6531).
-If you see incorrect git status in prompt, run `git config -l` and check whether `skipHash` is
-enabled. If it is, consider disabling it. Keep in mind that `skipHash` may be implicitly enabled
-when activating certain git features, such as `manyFiles`.
diff --git a/config/p10k-classic.zsh b/config/p10k-classic.zsh
index d7be6722..21ca0155 100644
--- a/config/p10k-classic.zsh
+++ b/config/p10k-classic.zsh
@@ -20,7 +20,7 @@
unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR'
# Zsh >= 5.1 is required.
- [[ $ZSH_VERSION == (5.<1->*|<6->.*) ]] || return
+ autoload -Uz is-at-least && is-at-least 5.1 || return
# The list of segments shown on the left. Fill it with the most important segments.
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
@@ -65,7 +65,6 @@
luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv)
jenv # java version from jenv (https://github.com/jenv/jenv)
plenv # perl version from plenv (https://github.com/tokuhirom/plenv)
- perlbrew # perl version from perlbrew (https://github.com/gugod/App-perlbrew)
phpenv # php version from phpenv (https://github.com/phpenv/phpenv)
scalaenv # scala version from scalaenv (https://github.com/scalaenv/scalaenv)
haskell_stack # haskell version from stack (https://haskellstack.org/)
@@ -81,14 +80,11 @@
context # user@hostname
nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
ranger # ranger shell (https://github.com/ranger/ranger)
- yazi # yazi shell (https://github.com/sxyazi/yazi)
nnn # nnn shell (https://github.com/jarun/nnn)
- lf # lf shell (https://github.com/gokcehan/lf)
xplr # xplr shell (https://github.com/sayanarijit/xplr)
vim_shell # vim shell indicator (:sh)
midnight_commander # midnight commander shell (https://midnight-commander.org/)
nix_shell # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html)
- chezmoi_shell # chezmoi shell (https://www.chezmoi.io/)
# vi_mode # vi mode (you don't need this if you've enabled prompt_char)
# vpn_ip # virtual private network indicator
# load # CPU load
@@ -98,8 +94,6 @@
todo # todo items (https://github.com/todotxt/todo.txt-cli)
timewarrior # timewarrior tracking status (https://timewarrior.net/)
taskwarrior # taskwarrior task count (https://taskwarrior.org/)
- per_directory_history # Oh My Zsh per-directory-history local/global indicator
- # cpu_arch # CPU architecture
# time # current time
# =========================[ Line #2 ]=========================
newline # \n
@@ -171,9 +165,6 @@
typeset -g POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='\uE0B0'
# Separator between different-color segments on the right.
typeset -g POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR='\uE0B2'
- # To remove a separator between two segments, add "_joined" to the second segment name.
- # For example: POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(os_icon context_joined)
-
# The right end of left prompt.
typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='\uE0B0'
# The left end of right prompt.
@@ -243,7 +234,7 @@
.java-version
.perl-version
.php-version
- .tool-versions
+ .tool-version
.shorten_folder_marker
.svn
.terraform
@@ -349,7 +340,7 @@
# typeset -g POWERLEVEL9K_DIR_PREFIX='%248Fin '
#####################################[ vcs: git status ]######################################
- # Branch icon. Set this parameter to '\UE0A0 ' for the popular Powerline branch icon.
+ # Branch icon. Set this parameter to '\uF126 ' for the popular Powerline branch icon.
typeset -g POWERLEVEL9K_VCS_BRANCH_ICON=
# Untracked files icon. It's really a question mark, your font isn't broken.
@@ -429,17 +420,11 @@
res+=" ${modified}wip"
fi
- if (( VCS_STATUS_COMMITS_AHEAD || VCS_STATUS_COMMITS_BEHIND )); then
- # ⇣42 if behind the remote.
- (( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}⇣${VCS_STATUS_COMMITS_BEHIND}"
- # ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42.
- (( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=" "
- (( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}⇡${VCS_STATUS_COMMITS_AHEAD}"
- elif [[ -n $VCS_STATUS_REMOTE_BRANCH ]]; then
- # Tip: Uncomment the next line to display '=' if up to date with the remote.
- # res+=" ${clean}="
- fi
-
+ # ⇣42 if behind the remote.
+ (( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}⇣${VCS_STATUS_COMMITS_BEHIND}"
+ # ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42.
+ (( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=" "
+ (( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}⇡${VCS_STATUS_COMMITS_AHEAD}"
# ⇠42 if behind the push remote.
(( VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" ${clean}⇠${VCS_STATUS_PUSH_COMMITS_BEHIND}"
(( VCS_STATUS_PUSH_COMMITS_AHEAD && !VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" "
@@ -729,12 +714,6 @@
typeset -g POWERLEVEL9K_RANGER_FOREGROUND=178
# Custom icon.
# typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
- ####################[ yazi: yazi shell (https://github.com/sxyazi/yazi) ]#####################
- # Yazi shell color.
- typeset -g POWERLEVEL9K_YAZI_FOREGROUND=178
- # Custom icon.
- # typeset -g POWERLEVEL9K_YAZI_VISUAL_IDENTIFIER_EXPANSION='⭐'
######################[ nnn: nnn shell (https://github.com/jarun/nnn) ]#######################
# Nnn shell color.
@@ -742,12 +721,6 @@
# Custom icon.
# typeset -g POWERLEVEL9K_NNN_VISUAL_IDENTIFIER_EXPANSION='⭐'
- ######################[ lf: lf shell (https://github.com/gokcehan/lf) ]#######################
- # lf shell color.
- typeset -g POWERLEVEL9K_LF_FOREGROUND=72
- # Custom icon.
- # typeset -g POWERLEVEL9K_LF_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
##################[ xplr: xplr shell (https://github.com/sayanarijit/xplr) ]##################
# xplr shell color.
typeset -g POWERLEVEL9K_XPLR_FOREGROUND=72
@@ -770,21 +743,12 @@
# Nix shell color.
typeset -g POWERLEVEL9K_NIX_SHELL_FOREGROUND=74
- # Display the icon of nix_shell if PATH contains a subdirectory of /nix/store.
- # typeset -g POWERLEVEL9K_NIX_SHELL_INFER_FROM_PATH=false
-
# Tip: If you want to see just the icon without "pure" and "impure", uncomment the next line.
# typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION=
# Custom icon.
# typeset -g POWERLEVEL9K_NIX_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐'
- ##################[ chezmoi_shell: chezmoi shell (https://www.chezmoi.io/) ]##################
- # chezmoi shell color.
- typeset -g POWERLEVEL9K_CHEZMOI_SHELL_FOREGROUND=33
- # Custom icon.
- # typeset -g POWERLEVEL9K_CHEZMOI_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
##################################[ disk_usage: disk usage ]##################################
# Colors for different levels of disk usage.
typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=35
@@ -811,8 +775,9 @@
# Text and color for insert vi mode.
typeset -g POWERLEVEL9K_VI_INSERT_MODE_STRING=
typeset -g POWERLEVEL9K_VI_MODE_INSERT_FOREGROUND=66
+
# Custom icon.
- # typeset -g POWERLEVEL9K_VI_MODE_VISUAL_IDENTIFIER_EXPANSION='⭐'
+ # typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐'
######################################[ ram: free RAM ]#######################################
# RAM color.
@@ -894,30 +859,6 @@
# Custom icon.
# typeset -g POWERLEVEL9K_TASKWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐'
- ######[ per_directory_history: Oh My Zsh per-directory-history local/global indicator ]#######
- # Color when using local/global history.
- typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_FOREGROUND=135
- typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_FOREGROUND=130
-
- # Tip: Uncomment the next two lines to hide "local"/"global" text and leave just the icon.
- # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_CONTENT_EXPANSION=''
- # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_CONTENT_EXPANSION=''
-
- # Custom icon.
- # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_VISUAL_IDENTIFIER_EXPANSION='⭐'
- # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
- ################################[ cpu_arch: CPU architecture ]################################
- # CPU architecture color.
- typeset -g POWERLEVEL9K_CPU_ARCH_FOREGROUND=172
-
- # Hide the segment when on a specific CPU architecture.
- # typeset -g POWERLEVEL9K_CPU_ARCH_X86_64_CONTENT_EXPANSION=
- # typeset -g POWERLEVEL9K_CPU_ARCH_X86_64_VISUAL_IDENTIFIER_EXPANSION=
-
- # Custom icon.
- # typeset -g POWERLEVEL9K_CPU_ARCH_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
##################################[ context: user@hostname ]##################################
# Context color when running with privileges.
typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=178
@@ -1043,11 +984,6 @@
##############[ nvm: node.js version from nvm (https://github.com/nvm-sh/nvm) ]###############
# Nvm color.
typeset -g POWERLEVEL9K_NVM_FOREGROUND=70
- # If set to false, hide node version if it's the same as default:
- # $(nvm version current) == $(nvm version default).
- typeset -g POWERLEVEL9K_NVM_PROMPT_ALWAYS_SHOW=false
- # If set to false, hide node version if it's equal to "system".
- typeset -g POWERLEVEL9K_NVM_SHOW_SYSTEM=true
# Custom icon.
# typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐'
@@ -1197,16 +1133,6 @@
# Custom icon.
# typeset -g POWERLEVEL9K_PLENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
- ###########[ perlbrew: perl version from perlbrew (https://github.com/gugod/App-perlbrew) ]############
- # Perlbrew color.
- typeset -g POWERLEVEL9K_PERLBREW_FOREGROUND=67
- # Show perlbrew version only when in a perl project subdirectory.
- typeset -g POWERLEVEL9K_PERLBREW_PROJECT_ONLY=true
- # Don't show "perl-" at the front.
- typeset -g POWERLEVEL9K_PERLBREW_SHOW_PREFIX=false
- # Custom icon.
- # typeset -g POWERLEVEL9K_PERLBREW_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
############[ phpenv: php version from phpenv (https://github.com/phpenv/phpenv) ]############
# PHP color.
typeset -g POWERLEVEL9K_PHPENV_FOREGROUND=99
@@ -1289,7 +1215,7 @@
#############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]#############
# Show kubecontext only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show kubecontext.
- typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|flux|fluxctl|stern|kubeseal|skaffold|kubent|kubecolor|cmctl|sparkctl'
+ typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|flux|fluxctl|stern'
# Kubernetes context classes for the purpose of using different colors, icons and expansions with
# different contexts.
@@ -1376,7 +1302,7 @@
#[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]#
# Show aws only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show aws.
- typeset -g POWERLEVEL9K_AWS_SHOW_ON_COMMAND='aws|awless|cdk|terraform|pulumi|terragrunt'
+ typeset -g POWERLEVEL9K_AWS_SHOW_ON_COMMAND='aws|awless|terraform|pulumi|terragrunt'
# POWERLEVEL9K_AWS_CLASSES is an array with even number of elements. The first element
# in each pair defines a pattern against which the current AWS profile gets matched.
@@ -1424,39 +1350,10 @@
# Show azure only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show azure.
typeset -g POWERLEVEL9K_AZURE_SHOW_ON_COMMAND='az|terraform|pulumi|terragrunt'
-
- # POWERLEVEL9K_AZURE_CLASSES is an array with even number of elements. The first element
- # in each pair defines a pattern against which the current azure account name gets matched.
- # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)
- # that gets matched. If you unset all POWERLEVEL9K_AZURE_*CONTENT_EXPANSION parameters,
- # you'll see this value in your prompt. The second element of each pair in
- # POWERLEVEL9K_AZURE_CLASSES defines the account class. Patterns are tried in order. The
- # first match wins.
- #
- # For example, given these settings:
- #
- # typeset -g POWERLEVEL9K_AZURE_CLASSES=(
- # '*prod*' PROD
- # '*test*' TEST
- # '*' OTHER)
- #
- # If your current azure account is "company_test", its class is TEST because "company_test"
- # doesn't match the pattern '*prod*' but does match '*test*'.
- #
- # You can define different colors, icons and content expansions for different classes:
- #
- # typeset -g POWERLEVEL9K_AZURE_TEST_FOREGROUND=28
- # typeset -g POWERLEVEL9K_AZURE_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'
- # typeset -g POWERLEVEL9K_AZURE_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'
- typeset -g POWERLEVEL9K_AZURE_CLASSES=(
- # '*prod*' PROD # These values are examples that are unlikely
- # '*test*' TEST # to match your needs. Customize them as needed.
- '*' OTHER)
-
# Azure account name color.
- typeset -g POWERLEVEL9K_AZURE_OTHER_FOREGROUND=32
+ typeset -g POWERLEVEL9K_AZURE_FOREGROUND=32
# Custom icon.
- # typeset -g POWERLEVEL9K_AZURE_OTHER_VISUAL_IDENTIFIER_EXPANSION='⭐'
+ # typeset -g POWERLEVEL9K_AZURE_VISUAL_IDENTIFIER_EXPANSION='⭐'
##########[ gcloud: google cloud account and project (https://cloud.google.com/) ]###########
# Show gcloud only when the command you are typing invokes one of these tools.
@@ -1577,7 +1474,7 @@
typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION=
# Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN
# to see the name of the interface.
- typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(gpd|wg|(.*tun)|tailscale)[0-9]*|(zt.*)'
+ typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(gpd|wg|(.*tun)|tailscale)[0-9]*'
# If set to true, show one segment per matching network interface. If set to false, show only
# one segment corresponding to the first matching network interface.
# Tip: If you set it to true, you'll probably want to unset POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION.
@@ -1677,7 +1574,7 @@
# User-defined prompt segments may optionally provide an instant_prompt_* function. Its job
# is to generate the prompt segment for display in instant prompt. See
- # https://github.com/romkatv/powerlevel10k#instant-prompt.
+ # https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt.
#
# Powerlevel10k will call instant_prompt_* at the same time as the regular prompt_* function
# and will record all `p10k segment` calls it makes. When displaying instant prompt, Powerlevel10k
@@ -1713,7 +1610,7 @@
# it incompatible with your zsh configuration files.
# - quiet: Enable instant prompt and don't print warnings when detecting console output
# during zsh initialization. Choose this if you've read and understood
- # https://github.com/romkatv/powerlevel10k#instant-prompt.
+ # https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt.
# - verbose: Enable instant prompt and print a warning when detecting console output during
# zsh initialization. Choose this if you've never tried instant prompt, haven't
# seen the warning, or if you are unsure what this all means.
diff --git a/config/p10k-lean-8colors.zsh b/config/p10k-lean-8colors.zsh
index bf469df7..dc96d4df 100644
--- a/config/p10k-lean-8colors.zsh
+++ b/config/p10k-lean-8colors.zsh
@@ -20,7 +20,7 @@
unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR'
# Zsh >= 5.1 is required.
- [[ $ZSH_VERSION == (5.<1->*|<6->.*) ]] || return
+ autoload -Uz is-at-least && is-at-least 5.1 || return
# The list of segments shown on the left. Fill it with the most important segments.
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
@@ -65,7 +65,6 @@
luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv)
jenv # java version from jenv (https://github.com/jenv/jenv)
plenv # perl version from plenv (https://github.com/tokuhirom/plenv)
- perlbrew # perl version from perlbrew (https://github.com/gugod/App-perlbrew)
phpenv # php version from phpenv (https://github.com/phpenv/phpenv)
scalaenv # scala version from scalaenv (https://github.com/scalaenv/scalaenv)
haskell_stack # haskell version from stack (https://haskellstack.org/)
@@ -81,14 +80,11 @@
context # user@hostname
nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
ranger # ranger shell (https://github.com/ranger/ranger)
- yazi # yazi shell (https://github.com/sxyazi/yazi)
nnn # nnn shell (https://github.com/jarun/nnn)
- lf # lf shell (https://github.com/gokcehan/lf)
xplr # xplr shell (https://github.com/sayanarijit/xplr)
vim_shell # vim shell indicator (:sh)
midnight_commander # midnight commander shell (https://midnight-commander.org/)
nix_shell # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html)
- chezmoi_shell # chezmoi shell (https://www.chezmoi.io/)
# vpn_ip # virtual private network indicator
# load # CPU load
# disk_usage # disk usage
@@ -97,8 +93,6 @@
todo # todo items (https://github.com/todotxt/todo.txt-cli)
timewarrior # timewarrior tracking status (https://timewarrior.net/)
taskwarrior # taskwarrior task count (https://taskwarrior.org/)
- per_directory_history # Oh My Zsh per-directory-history local/global indicator
- # cpu_arch # CPU architecture
# time # current time
# =========================[ Line #2 ]=========================
newline # \n
@@ -234,7 +228,7 @@
.java-version
.perl-version
.php-version
- .tool-versions
+ .tool-version
.shorten_folder_marker
.svn
.terraform
@@ -277,6 +271,10 @@
# the full directory that was used in previous commands.
typeset -g POWERLEVEL9K_DIR_HYPERLINK=false
+ # Enable special styling for non-writable directories. See POWERLEVEL9K_LOCK_ICON and
+ # POWERLEVEL9K_DIR_CLASSES below.
+ typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=v2
+
# Enable special styling for non-writable and non-existent directories. See POWERLEVEL9K_LOCK_ICON
# and POWERLEVEL9K_DIR_CLASSES below.
typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=v3
@@ -340,7 +338,7 @@
# typeset -g POWERLEVEL9K_DIR_PREFIX='%fin '
#####################################[ vcs: git status ]######################################
- # Branch icon. Set this parameter to '\UE0A0 ' for the popular Powerline branch icon.
+ # Branch icon. Set this parameter to '\uF126 ' for the popular Powerline branch icon.
typeset -g POWERLEVEL9K_VCS_BRANCH_ICON=
# Untracked files icon. It's really a question mark, your font isn't broken.
@@ -420,17 +418,11 @@
res+=" ${modified}wip"
fi
- if (( VCS_STATUS_COMMITS_AHEAD || VCS_STATUS_COMMITS_BEHIND )); then
- # ⇣42 if behind the remote.
- (( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}⇣${VCS_STATUS_COMMITS_BEHIND}"
- # ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42.
- (( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=" "
- (( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}⇡${VCS_STATUS_COMMITS_AHEAD}"
- elif [[ -n $VCS_STATUS_REMOTE_BRANCH ]]; then
- # Tip: Uncomment the next line to display '=' if up to date with the remote.
- # res+=" ${clean}="
- fi
-
+ # ⇣42 if behind the remote.
+ (( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}⇣${VCS_STATUS_COMMITS_BEHIND}"
+ # ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42.
+ (( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=" "
+ (( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}⇡${VCS_STATUS_COMMITS_AHEAD}"
# ⇠42 if behind the push remote.
(( VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" ${clean}⇠${VCS_STATUS_PUSH_COMMITS_BEHIND}"
(( VCS_STATUS_PUSH_COMMITS_AHEAD && !VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" "
@@ -493,7 +485,7 @@
# Show status of repositories of these types. You can add svn and/or hg if you are
# using them. If you do, your prompt may become slow even when your current directory
- # isn't in an svn or hg repository.
+ # isn't in an svn or hg reposotiry.
typeset -g POWERLEVEL9K_VCS_BACKENDS=(git)
# These settings are used for repositories other than Git or when gitstatusd fails and
@@ -720,12 +712,6 @@
typeset -g POWERLEVEL9K_RANGER_FOREGROUND=3
# Custom icon.
# typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
- ####################[ yazi: yazi shell (https://github.com/sxyazi/yazi) ]#####################
- # Yazi shell color.
- typeset -g POWERLEVEL9K_YAZI_FOREGROUND=3
- # Custom icon.
- # typeset -g POWERLEVEL9K_YAZI_VISUAL_IDENTIFIER_EXPANSION='⭐'
######################[ nnn: nnn shell (https://github.com/jarun/nnn) ]#######################
# Nnn shell color.
@@ -733,12 +719,6 @@
# Custom icon.
# typeset -g POWERLEVEL9K_NNN_VISUAL_IDENTIFIER_EXPANSION='⭐'
- ######################[ lf: lf shell (https://github.com/gokcehan/lf) ]#######################
- # lf shell color.
- typeset -g POWERLEVEL9K_LF_FOREGROUND=3
- # Custom icon.
- # typeset -g POWERLEVEL9K_LF_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
##################[ xplr: xplr shell (https://github.com/sayanarijit/xplr) ]##################
# xplr shell color.
typeset -g POWERLEVEL9K_XPLR_FOREGROUND=3
@@ -761,21 +741,12 @@
# Nix shell color.
typeset -g POWERLEVEL9K_NIX_SHELL_FOREGROUND=4
- # Display the icon of nix_shell if PATH contains a subdirectory of /nix/store.
- # typeset -g POWERLEVEL9K_NIX_SHELL_INFER_FROM_PATH=false
-
# Tip: If you want to see just the icon without "pure" and "impure", uncomment the next line.
# typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION=
# Custom icon.
# typeset -g POWERLEVEL9K_NIX_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐'
- ##################[ chezmoi_shell: chezmoi shell (https://www.chezmoi.io/) ]##################
- # chezmoi shell color.
- typeset -g POWERLEVEL9K_CHEZMOI_SHELL_FOREGROUND=4
- # Custom icon.
- # typeset -g POWERLEVEL9K_CHEZMOI_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
##################################[ disk_usage: disk usage ]##################################
# Colors for different levels of disk usage.
typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=2
@@ -869,30 +840,6 @@
# Custom icon.
# typeset -g POWERLEVEL9K_TASKWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐'
- ######[ per_directory_history: Oh My Zsh per-directory-history local/global indicator ]#######
- # Color when using local/global history.
- typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_FOREGROUND=5
- typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_FOREGROUND=3
-
- # Tip: Uncomment the next two lines to hide "local"/"global" text and leave just the icon.
- # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_CONTENT_EXPANSION=''
- # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_CONTENT_EXPANSION=''
-
- # Custom icon.
- # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_VISUAL_IDENTIFIER_EXPANSION='⭐'
- # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
- ################################[ cpu_arch: CPU architecture ]################################
- # CPU architecture color.
- typeset -g POWERLEVEL9K_CPU_ARCH_FOREGROUND=3
-
- # Hide the segment when on a specific CPU architecture.
- # typeset -g POWERLEVEL9K_CPU_ARCH_X86_64_CONTENT_EXPANSION=
- # typeset -g POWERLEVEL9K_CPU_ARCH_X86_64_VISUAL_IDENTIFIER_EXPANSION=
-
- # Custom icon.
- # typeset -g POWERLEVEL9K_CPU_ARCH_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
##################################[ context: user@hostname ]##################################
# Context color when running with privileges.
typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=1
@@ -1018,11 +965,6 @@
##############[ nvm: node.js version from nvm (https://github.com/nvm-sh/nvm) ]###############
# Nvm color.
typeset -g POWERLEVEL9K_NVM_FOREGROUND=2
- # If set to false, hide node version if it's the same as default:
- # $(nvm version current) == $(nvm version default).
- typeset -g POWERLEVEL9K_NVM_PROMPT_ALWAYS_SHOW=false
- # If set to false, hide node version if it's equal to "system".
- typeset -g POWERLEVEL9K_NVM_SHOW_SYSTEM=true
# Custom icon.
# typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐'
@@ -1172,16 +1114,6 @@
# Custom icon.
# typeset -g POWERLEVEL9K_PLENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
- ###########[ perlbrew: perl version from perlbrew (https://github.com/gugod/App-perlbrew) ]############
- # Perlbrew color.
- typeset -g POWERLEVEL9K_PERLBREW_FOREGROUND=67
- # Show perlbrew version only when in a perl project subdirectory.
- typeset -g POWERLEVEL9K_PERLBREW_PROJECT_ONLY=true
- # Don't show "perl-" at the front.
- typeset -g POWERLEVEL9K_PERLBREW_SHOW_PREFIX=false
- # Custom icon.
- # typeset -g POWERLEVEL9K_PERLBREW_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
############[ phpenv: php version from phpenv (https://github.com/phpenv/phpenv) ]############
# PHP color.
typeset -g POWERLEVEL9K_PHPENV_FOREGROUND=5
@@ -1225,7 +1157,7 @@
#############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]#############
# Show kubecontext only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show kubecontext.
- typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|flux|fluxctl|stern|kubeseal|skaffold|kubent|kubecolor|cmctl|sparkctl'
+ typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|flux|fluxctl|stern'
# Kubernetes context classes for the purpose of using different colors, icons and expansions with
# different contexts.
@@ -1351,7 +1283,7 @@
#[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]#
# Show aws only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show aws.
- typeset -g POWERLEVEL9K_AWS_SHOW_ON_COMMAND='aws|awless|cdk|terraform|pulumi|terragrunt'
+ typeset -g POWERLEVEL9K_AWS_SHOW_ON_COMMAND='aws|awless|terraform|pulumi|terragrunt'
# POWERLEVEL9K_AWS_CLASSES is an array with even number of elements. The first element
# in each pair defines a pattern against which the current AWS profile gets matched.
@@ -1399,39 +1331,10 @@
# Show azure only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show azure.
typeset -g POWERLEVEL9K_AZURE_SHOW_ON_COMMAND='az|terraform|pulumi|terragrunt'
-
- # POWERLEVEL9K_AZURE_CLASSES is an array with even number of elements. The first element
- # in each pair defines a pattern against which the current azure account name gets matched.
- # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)
- # that gets matched. If you unset all POWERLEVEL9K_AZURE_*CONTENT_EXPANSION parameters,
- # you'll see this value in your prompt. The second element of each pair in
- # POWERLEVEL9K_AZURE_CLASSES defines the account class. Patterns are tried in order. The
- # first match wins.
- #
- # For example, given these settings:
- #
- # typeset -g POWERLEVEL9K_AZURE_CLASSES=(
- # '*prod*' PROD
- # '*test*' TEST
- # '*' OTHER)
- #
- # If your current azure account is "company_test", its class is TEST because "company_test"
- # doesn't match the pattern '*prod*' but does match '*test*'.
- #
- # You can define different colors, icons and content expansions for different classes:
- #
- # typeset -g POWERLEVEL9K_AZURE_TEST_FOREGROUND=2
- # typeset -g POWERLEVEL9K_AZURE_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'
- # typeset -g POWERLEVEL9K_AZURE_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'
- typeset -g POWERLEVEL9K_AZURE_CLASSES=(
- # '*prod*' PROD # These values are examples that are unlikely
- # '*test*' TEST # to match your needs. Customize them as needed.
- '*' OTHER)
-
# Azure account name color.
- typeset -g POWERLEVEL9K_AZURE_OTHER_FOREGROUND=4
+ typeset -g POWERLEVEL9K_AZURE_FOREGROUND=4
# Custom icon.
- # typeset -g POWERLEVEL9K_AZURE_OTHER_VISUAL_IDENTIFIER_EXPANSION='⭐'
+ # typeset -g POWERLEVEL9K_AZURE_VISUAL_IDENTIFIER_EXPANSION='⭐'
##########[ gcloud: google cloud account and project (https://cloud.google.com/) ]###########
# Show gcloud only when the command you are typing invokes one of these tools.
@@ -1552,7 +1455,7 @@
typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION=
# Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN
# to see the name of the interface.
- typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(gpd|wg|(.*tun)|tailscale)[0-9]*|(zt.*)'
+ typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(gpd|wg|(.*tun)|tailscale)[0-9]*'
# If set to true, show one segment per matching network interface. If set to false, show only
# one segment corresponding to the first matching network interface.
# Tip: If you set it to true, you'll probably want to unset POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION.
@@ -1652,7 +1555,7 @@
# User-defined prompt segments may optionally provide an instant_prompt_* function. Its job
# is to generate the prompt segment for display in instant prompt. See
- # https://github.com/romkatv/powerlevel10k#instant-prompt.
+ # https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt.
#
# Powerlevel10k will call instant_prompt_* at the same time as the regular prompt_* function
# and will record all `p10k segment` calls it makes. When displaying instant prompt, Powerlevel10k
@@ -1688,7 +1591,7 @@
# it incompatible with your zsh configuration files.
# - quiet: Enable instant prompt and don't print warnings when detecting console output
# during zsh initialization. Choose this if you've read and understood
- # https://github.com/romkatv/powerlevel10k#instant-prompt.
+ # https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt.
# - verbose: Enable instant prompt and print a warning when detecting console output during
# zsh initialization. Choose this if you've never tried instant prompt, haven't
# seen the warning, or if you are unsure what this all means.
diff --git a/config/p10k-lean.zsh b/config/p10k-lean.zsh
index 1595a377..fc3f20d7 100644
--- a/config/p10k-lean.zsh
+++ b/config/p10k-lean.zsh
@@ -20,7 +20,7 @@
unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR'
# Zsh >= 5.1 is required.
- [[ $ZSH_VERSION == (5.<1->*|<6->.*) ]] || return
+ autoload -Uz is-at-least && is-at-least 5.1 || return
# The list of segments shown on the left. Fill it with the most important segments.
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
@@ -65,7 +65,6 @@
luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv)
jenv # java version from jenv (https://github.com/jenv/jenv)
plenv # perl version from plenv (https://github.com/tokuhirom/plenv)
- perlbrew # perl version from perlbrew (https://github.com/gugod/App-perlbrew)
phpenv # php version from phpenv (https://github.com/phpenv/phpenv)
scalaenv # scala version from scalaenv (https://github.com/scalaenv/scalaenv)
haskell_stack # haskell version from stack (https://haskellstack.org/)
@@ -81,14 +80,11 @@
context # user@hostname
nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
ranger # ranger shell (https://github.com/ranger/ranger)
- yazi # yazi shell (https://github.com/sxyazi/yazi)
nnn # nnn shell (https://github.com/jarun/nnn)
- lf # lf shell (https://github.com/gokcehan/lf)
xplr # xplr shell (https://github.com/sayanarijit/xplr)
vim_shell # vim shell indicator (:sh)
midnight_commander # midnight commander shell (https://midnight-commander.org/)
nix_shell # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html)
- chezmoi_shell # chezmoi shell (https://www.chezmoi.io/)
# vpn_ip # virtual private network indicator
# load # CPU load
# disk_usage # disk usage
@@ -97,8 +93,6 @@
todo # todo items (https://github.com/todotxt/todo.txt-cli)
timewarrior # timewarrior tracking status (https://timewarrior.net/)
taskwarrior # taskwarrior task count (https://taskwarrior.org/)
- per_directory_history # Oh My Zsh per-directory-history local/global indicator
- # cpu_arch # CPU architecture
# time # current time
# =========================[ Line #2 ]=========================
newline
@@ -234,7 +228,7 @@
.java-version
.perl-version
.php-version
- .tool-versions
+ .tool-version
.shorten_folder_marker
.svn
.terraform
@@ -340,7 +334,7 @@
# typeset -g POWERLEVEL9K_DIR_PREFIX='%fin '
#####################################[ vcs: git status ]######################################
- # Branch icon. Set this parameter to '\UE0A0 ' for the popular Powerline branch icon.
+ # Branch icon. Set this parameter to '\uF126 ' for the popular Powerline branch icon.
typeset -g POWERLEVEL9K_VCS_BRANCH_ICON=
# Untracked files icon. It's really a question mark, your font isn't broken.
@@ -420,17 +414,11 @@
res+=" ${modified}wip"
fi
- if (( VCS_STATUS_COMMITS_AHEAD || VCS_STATUS_COMMITS_BEHIND )); then
- # ⇣42 if behind the remote.
- (( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}⇣${VCS_STATUS_COMMITS_BEHIND}"
- # ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42.
- (( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=" "
- (( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}⇡${VCS_STATUS_COMMITS_AHEAD}"
- elif [[ -n $VCS_STATUS_REMOTE_BRANCH ]]; then
- # Tip: Uncomment the next line to display '=' if up to date with the remote.
- # res+=" ${clean}="
- fi
-
+ # ⇣42 if behind the remote.
+ (( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}⇣${VCS_STATUS_COMMITS_BEHIND}"
+ # ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42.
+ (( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=" "
+ (( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}⇡${VCS_STATUS_COMMITS_AHEAD}"
# ⇠42 if behind the push remote.
(( VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" ${clean}⇠${VCS_STATUS_PUSH_COMMITS_BEHIND}"
(( VCS_STATUS_PUSH_COMMITS_AHEAD && !VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" "
@@ -493,7 +481,7 @@
# Show status of repositories of these types. You can add svn and/or hg if you are
# using them. If you do, your prompt may become slow even when your current directory
- # isn't in an svn or hg repository.
+ # isn't in an svn or hg reposotiry.
typeset -g POWERLEVEL9K_VCS_BACKENDS=(git)
# These settings are used for repositories other than Git or when gitstatusd fails and
@@ -720,12 +708,6 @@
typeset -g POWERLEVEL9K_RANGER_FOREGROUND=178
# Custom icon.
# typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
- ####################[ yazi: yazi shell (https://github.com/sxyazi/yazi) ]#####################
- # Yazi shell color.
- typeset -g POWERLEVEL9K_YAZI_FOREGROUND=178
- # Custom icon.
- # typeset -g POWERLEVEL9K_YAZI_VISUAL_IDENTIFIER_EXPANSION='⭐'
######################[ nnn: nnn shell (https://github.com/jarun/nnn) ]#######################
# Nnn shell color.
@@ -733,12 +715,6 @@
# Custom icon.
# typeset -g POWERLEVEL9K_NNN_VISUAL_IDENTIFIER_EXPANSION='⭐'
- ######################[ lf: lf shell (https://github.com/gokcehan/lf) ]#######################
- # lf shell color.
- typeset -g POWERLEVEL9K_LF_FOREGROUND=72
- # Custom icon.
- # typeset -g POWERLEVEL9K_LF_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
##################[ xplr: xplr shell (https://github.com/sayanarijit/xplr) ]##################
# xplr shell color.
typeset -g POWERLEVEL9K_XPLR_FOREGROUND=72
@@ -761,21 +737,12 @@
# Nix shell color.
typeset -g POWERLEVEL9K_NIX_SHELL_FOREGROUND=74
- # Display the icon of nix_shell if PATH contains a subdirectory of /nix/store.
- # typeset -g POWERLEVEL9K_NIX_SHELL_INFER_FROM_PATH=false
-
# Tip: If you want to see just the icon without "pure" and "impure", uncomment the next line.
# typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION=
# Custom icon.
# typeset -g POWERLEVEL9K_NIX_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐'
- ##################[ chezmoi_shell: chezmoi shell (https://www.chezmoi.io/) ]##################
- # chezmoi shell color.
- typeset -g POWERLEVEL9K_CHEZMOI_SHELL_FOREGROUND=33
- # Custom icon.
- # typeset -g POWERLEVEL9K_CHEZMOI_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
##################################[ disk_usage: disk usage ]##################################
# Colors for different levels of disk usage.
typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=35
@@ -869,30 +836,6 @@
# Custom icon.
# typeset -g POWERLEVEL9K_TASKWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐'
- ######[ per_directory_history: Oh My Zsh per-directory-history local/global indicator ]#######
- # Color when using local/global history.
- typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_FOREGROUND=135
- typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_FOREGROUND=130
-
- # Tip: Uncomment the next two lines to hide "local"/"global" text and leave just the icon.
- # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_CONTENT_EXPANSION=''
- # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_CONTENT_EXPANSION=''
-
- # Custom icon.
- # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_VISUAL_IDENTIFIER_EXPANSION='⭐'
- # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
- ################################[ cpu_arch: CPU architecture ]################################
- # CPU architecture color.
- typeset -g POWERLEVEL9K_CPU_ARCH_FOREGROUND=172
-
- # Hide the segment when on a specific CPU architecture.
- # typeset -g POWERLEVEL9K_CPU_ARCH_X86_64_CONTENT_EXPANSION=
- # typeset -g POWERLEVEL9K_CPU_ARCH_X86_64_VISUAL_IDENTIFIER_EXPANSION=
-
- # Custom icon.
- # typeset -g POWERLEVEL9K_CPU_ARCH_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
##################################[ context: user@hostname ]##################################
# Context color when running with privileges.
typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=178
@@ -1018,11 +961,6 @@
##############[ nvm: node.js version from nvm (https://github.com/nvm-sh/nvm) ]###############
# Nvm color.
typeset -g POWERLEVEL9K_NVM_FOREGROUND=70
- # If set to false, hide node version if it's the same as default:
- # $(nvm version current) == $(nvm version default).
- typeset -g POWERLEVEL9K_NVM_PROMPT_ALWAYS_SHOW=false
- # If set to false, hide node version if it's equal to "system".
- typeset -g POWERLEVEL9K_NVM_SHOW_SYSTEM=true
# Custom icon.
# typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐'
@@ -1172,16 +1110,6 @@
# Custom icon.
# typeset -g POWERLEVEL9K_PLENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
- ###########[ perlbrew: perl version from perlbrew (https://github.com/gugod/App-perlbrew) ]############
- # Perlbrew color.
- typeset -g POWERLEVEL9K_PERLBREW_FOREGROUND=67
- # Show perlbrew version only when in a perl project subdirectory.
- typeset -g POWERLEVEL9K_PERLBREW_PROJECT_ONLY=true
- # Don't show "perl-" at the front.
- typeset -g POWERLEVEL9K_PERLBREW_SHOW_PREFIX=false
- # Custom icon.
- # typeset -g POWERLEVEL9K_PERLBREW_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
############[ phpenv: php version from phpenv (https://github.com/phpenv/phpenv) ]############
# PHP color.
typeset -g POWERLEVEL9K_PHPENV_FOREGROUND=99
@@ -1225,7 +1153,7 @@
#############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]#############
# Show kubecontext only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show kubecontext.
- typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|flux|fluxctl|stern|kubeseal|skaffold|kubent|kubecolor|cmctl|sparkctl'
+ typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|flux|fluxctl|stern'
# Kubernetes context classes for the purpose of using different colors, icons and expansions with
# different contexts.
@@ -1351,7 +1279,7 @@
#[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]#
# Show aws only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show aws.
- typeset -g POWERLEVEL9K_AWS_SHOW_ON_COMMAND='aws|awless|cdk|terraform|pulumi|terragrunt'
+ typeset -g POWERLEVEL9K_AWS_SHOW_ON_COMMAND='aws|awless|terraform|pulumi|terragrunt'
# POWERLEVEL9K_AWS_CLASSES is an array with even number of elements. The first element
# in each pair defines a pattern against which the current AWS profile gets matched.
@@ -1399,39 +1327,10 @@
# Show azure only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show azure.
typeset -g POWERLEVEL9K_AZURE_SHOW_ON_COMMAND='az|terraform|pulumi|terragrunt'
-
- # POWERLEVEL9K_AZURE_CLASSES is an array with even number of elements. The first element
- # in each pair defines a pattern against which the current azure account name gets matched.
- # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)
- # that gets matched. If you unset all POWERLEVEL9K_AZURE_*CONTENT_EXPANSION parameters,
- # you'll see this value in your prompt. The second element of each pair in
- # POWERLEVEL9K_AZURE_CLASSES defines the account class. Patterns are tried in order. The
- # first match wins.
- #
- # For example, given these settings:
- #
- # typeset -g POWERLEVEL9K_AZURE_CLASSES=(
- # '*prod*' PROD
- # '*test*' TEST
- # '*' OTHER)
- #
- # If your current azure account is "company_test", its class is TEST because "company_test"
- # doesn't match the pattern '*prod*' but does match '*test*'.
- #
- # You can define different colors, icons and content expansions for different classes:
- #
- # typeset -g POWERLEVEL9K_AZURE_TEST_FOREGROUND=28
- # typeset -g POWERLEVEL9K_AZURE_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'
- # typeset -g POWERLEVEL9K_AZURE_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'
- typeset -g POWERLEVEL9K_AZURE_CLASSES=(
- # '*prod*' PROD # These values are examples that are unlikely
- # '*test*' TEST # to match your needs. Customize them as needed.
- '*' OTHER)
-
# Azure account name color.
- typeset -g POWERLEVEL9K_AZURE_OTHER_FOREGROUND=32
+ typeset -g POWERLEVEL9K_AZURE_FOREGROUND=32
# Custom icon.
- # typeset -g POWERLEVEL9K_AZURE_OTHER_VISUAL_IDENTIFIER_EXPANSION='⭐'
+ # typeset -g POWERLEVEL9K_AZURE_VISUAL_IDENTIFIER_EXPANSION='⭐'
##########[ gcloud: google cloud account and project (https://cloud.google.com/) ]###########
# Show gcloud only when the command you are typing invokes one of these tools.
@@ -1552,7 +1451,7 @@
typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION=
# Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN
# to see the name of the interface.
- typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(gpd|wg|(.*tun)|tailscale)[0-9]*|(zt.*)'
+ typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(gpd|wg|(.*tun)|tailscale)[0-9]*'
# If set to true, show one segment per matching network interface. If set to false, show only
# one segment corresponding to the first matching network interface.
# Tip: If you set it to true, you'll probably want to unset POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION.
@@ -1652,7 +1551,7 @@
# User-defined prompt segments may optionally provide an instant_prompt_* function. Its job
# is to generate the prompt segment for display in instant prompt. See
- # https://github.com/romkatv/powerlevel10k#instant-prompt.
+ # https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt.
#
# Powerlevel10k will call instant_prompt_* at the same time as the regular prompt_* function
# and will record all `p10k segment` calls it makes. When displaying instant prompt, Powerlevel10k
@@ -1688,7 +1587,7 @@
# it incompatible with your zsh configuration files.
# - quiet: Enable instant prompt and don't print warnings when detecting console output
# during zsh initialization. Choose this if you've read and understood
- # https://github.com/romkatv/powerlevel10k#instant-prompt.
+ # https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt.
# - verbose: Enable instant prompt and print a warning when detecting console output during
# zsh initialization. Choose this if you've never tried instant prompt, haven't
# seen the warning, or if you are unsure what this all means.
diff --git a/config/p10k-pure.zsh b/config/p10k-pure.zsh
index 7a4d2441..566c030d 100644
--- a/config/p10k-pure.zsh
+++ b/config/p10k-pure.zsh
@@ -29,7 +29,7 @@
unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR'
# Zsh >= 5.1 is required.
- [[ $ZSH_VERSION == (5.<1->*|<6->.*) ]] || return
+ autoload -Uz is-at-least && is-at-least 5.1 || return
# Prompt colors.
local grey=242
@@ -169,7 +169,7 @@
# it incompatible with your zsh configuration files.
# - quiet: Enable instant prompt and don't print warnings when detecting console output
# during zsh initialization. Choose this if you've read and understood
- # https://github.com/romkatv/powerlevel10k#instant-prompt.
+ # https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt.
# - verbose: Enable instant prompt and print a warning when detecting console output during
# zsh initialization. Choose this if you've never tried instant prompt, haven't
# seen the warning, or if you are unsure what this all means.
diff --git a/config/p10k-rainbow.zsh b/config/p10k-rainbow.zsh
index 355ee9bb..ef5b444e 100644
--- a/config/p10k-rainbow.zsh
+++ b/config/p10k-rainbow.zsh
@@ -20,7 +20,7 @@
unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR'
# Zsh >= 5.1 is required.
- [[ $ZSH_VERSION == (5.<1->*|<6->.*) ]] || return
+ autoload -Uz is-at-least && is-at-least 5.1 || return
# The list of segments shown on the left. Fill it with the most important segments.
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
@@ -65,7 +65,6 @@
luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv)
jenv # java version from jenv (https://github.com/jenv/jenv)
plenv # perl version from plenv (https://github.com/tokuhirom/plenv)
- perlbrew # perl version from perlbrew (https://github.com/gugod/App-perlbrew)
phpenv # php version from phpenv (https://github.com/phpenv/phpenv)
scalaenv # scala version from scalaenv (https://github.com/scalaenv/scalaenv)
haskell_stack # haskell version from stack (https://haskellstack.org/)
@@ -81,14 +80,11 @@
context # user@hostname
nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
ranger # ranger shell (https://github.com/ranger/ranger)
- yazi # yazi shell (https://github.com/sxyazi/yazi)
nnn # nnn shell (https://github.com/jarun/nnn)
- lf # lf shell (https://github.com/gokcehan/lf)
xplr # xplr shell (https://github.com/sayanarijit/xplr)
vim_shell # vim shell indicator (:sh)
midnight_commander # midnight commander shell (https://midnight-commander.org/)
nix_shell # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html)
- chezmoi_shell # chezmoi shell (https://www.chezmoi.io/)
# vi_mode # vi mode (you don't need this if you've enabled prompt_char)
# vpn_ip # virtual private network indicator
# load # CPU load
@@ -98,8 +94,6 @@
todo # todo items (https://github.com/todotxt/todo.txt-cli)
timewarrior # timewarrior tracking status (https://timewarrior.net/)
taskwarrior # taskwarrior task count (https://taskwarrior.org/)
- per_directory_history # Oh My Zsh per-directory-history local/global indicator
- # cpu_arch # CPU architecture
# time # current time
# =========================[ Line #2 ]=========================
newline
@@ -146,7 +140,7 @@
# Filler between left and right prompt on the first prompt line. You can set it to ' ', '·' or
# '─'. The last two make it easier to see the alignment between left and right prompt and to
# separate prompt from command output. You might want to set POWERLEVEL9K_PROMPT_ADD_NEWLINE=false
- # for more compact prompt if using this option.
+ # for more compact prompt if using using this option.
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' '
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_BACKGROUND=
typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_GAP_BACKGROUND=
@@ -168,9 +162,6 @@
typeset -g POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='\uE0B0'
# Separator between different-color segments on the right.
typeset -g POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR='\uE0B2'
- # To remove a separator between two segments, add "_joined" to the second segment name.
- # For example: POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(os_icon context_joined)
-
# The right end of left prompt.
typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='\uE0B0'
# The left end of right prompt.
@@ -243,7 +234,7 @@
.java-version
.perl-version
.php-version
- .tool-versions
+ .tool-version
.shorten_folder_marker
.svn
.terraform
@@ -352,14 +343,14 @@
# typeset -g POWERLEVEL9K_DIR_PREFIX='in '
#####################################[ vcs: git status ]######################################
- # Version control background colors.
+ # Version control system colors.
typeset -g POWERLEVEL9K_VCS_CLEAN_BACKGROUND=2
typeset -g POWERLEVEL9K_VCS_MODIFIED_BACKGROUND=3
typeset -g POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND=2
typeset -g POWERLEVEL9K_VCS_CONFLICTED_BACKGROUND=3
typeset -g POWERLEVEL9K_VCS_LOADING_BACKGROUND=8
- # Branch icon. Set this parameter to '\UE0A0 ' for the popular Powerline branch icon.
+ # Branch icon. Set this parameter to '\uF126 ' for the popular Powerline branch icon.
typeset -g POWERLEVEL9K_VCS_BRANCH_ICON=
# Untracked files icon. It's really a question mark, your font isn't broken.
@@ -430,17 +421,11 @@
res+=" ${modified}wip"
fi
- if (( VCS_STATUS_COMMITS_AHEAD || VCS_STATUS_COMMITS_BEHIND )); then
- # ⇣42 if behind the remote.
- (( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}⇣${VCS_STATUS_COMMITS_BEHIND}"
- # ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42.
- (( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=" "
- (( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}⇡${VCS_STATUS_COMMITS_AHEAD}"
- elif [[ -n $VCS_STATUS_REMOTE_BRANCH ]]; then
- # Tip: Uncomment the next line to display '=' if up to date with the remote.
- # res+=" ${clean}="
- fi
-
+ # ⇣42 if behind the remote.
+ (( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}⇣${VCS_STATUS_COMMITS_BEHIND}"
+ # ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42.
+ (( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=" "
+ (( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}⇡${VCS_STATUS_COMMITS_AHEAD}"
# ⇠42 if behind the push remote.
(( VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" ${clean}⇠${VCS_STATUS_PUSH_COMMITS_BEHIND}"
(( VCS_STATUS_PUSH_COMMITS_AHEAD && !VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" "
@@ -499,7 +484,7 @@
# Show status of repositories of these types. You can add svn and/or hg if you are
# using them. If you do, your prompt may become slow even when your current directory
- # isn't in an svn or hg repository.
+ # isn't in an svn or hg reposotiry.
typeset -g POWERLEVEL9K_VCS_BACKENDS=(git)
##########################[ status: exit code of the last command ]###########################
@@ -748,14 +733,7 @@
typeset -g POWERLEVEL9K_RANGER_BACKGROUND=0
# Custom icon.
# typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
- ####################[ yazi: yazi shell (https://github.com/sxyazi/yazi) ]#####################
- # Yazi shell color.
- typeset -g POWERLEVEL9K_YAZI_FOREGROUND=3
- typeset -g POWERLEVEL9K_YAZI_BACKGROUND=0
- # Custom icon.
- # typeset -g POWERLEVEL9K_YAZI_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
+
######################[ nnn: nnn shell (https://github.com/jarun/nnn) ]#######################
# Nnn shell color.
typeset -g POWERLEVEL9K_NNN_FOREGROUND=0
@@ -763,13 +741,6 @@
# Custom icon.
# typeset -g POWERLEVEL9K_NNN_VISUAL_IDENTIFIER_EXPANSION='⭐'
- ######################[ lf: lf shell (https://github.com/gokcehan/lf) ]#######################
- # lf shell color.
- typeset -g POWERLEVEL9K_LF_FOREGROUND=0
- typeset -g POWERLEVEL9K_LF_BACKGROUND=6
- # Custom icon.
- # typeset -g POWERLEVEL9K_LF_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
##################[ xplr: xplr shell (https://github.com/sayanarijit/xplr) ]##################
# xplr shell color.
typeset -g POWERLEVEL9K_XPLR_FOREGROUND=0
@@ -796,22 +767,12 @@
typeset -g POWERLEVEL9K_NIX_SHELL_FOREGROUND=0
typeset -g POWERLEVEL9K_NIX_SHELL_BACKGROUND=4
- # Display the icon of nix_shell if PATH contains a subdirectory of /nix/store.
- # typeset -g POWERLEVEL9K_NIX_SHELL_INFER_FROM_PATH=false
-
# Tip: If you want to see just the icon without "pure" and "impure", uncomment the next line.
# typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION=
# Custom icon.
# typeset -g POWERLEVEL9K_NIX_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐'
- ##################[ chezmoi_shell: chezmoi shell (https://www.chezmoi.io/) ]##################
- # chezmoi shell color.
- typeset -g POWERLEVEL9K_CHEZMOI_SHELL_FOREGROUND=0
- typeset -g POWERLEVEL9K_CHEZMOI_SHELL_BACKGROUND=4
- # Custom icon.
- # typeset -g POWERLEVEL9K_CHEZMOI_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
##################################[ disk_usage: disk usage ]##################################
# Colors for different levels of disk usage.
typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=3
@@ -843,8 +804,6 @@
# Text and color for insert vi mode.
typeset -g POWERLEVEL9K_VI_INSERT_MODE_STRING=
typeset -g POWERLEVEL9K_VI_MODE_INSERT_FOREGROUND=8
- # Custom icon.
- # typeset -g POWERLEVEL9K_VI_MODE_VISUAL_IDENTIFIER_EXPANSION='⭐'
######################################[ ram: free RAM ]#######################################
# RAM color.
@@ -935,33 +894,6 @@
# Custom icon.
# typeset -g POWERLEVEL9K_TASKWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐'
- ######[ per_directory_history: Oh My Zsh per-directory-history local/global indicator ]#######
- # Color when using local/global history.
- typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_FOREGROUND=0
- typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_BACKGROUND=5
- typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_FOREGROUND=0
- typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_BACKGROUND=3
-
- # Tip: Uncomment the next two lines to hide "local"/"global" text and leave just the icon.
- # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_CONTENT_EXPANSION=''
- # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_CONTENT_EXPANSION=''
-
- # Custom icon.
- # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_LOCAL_VISUAL_IDENTIFIER_EXPANSION='⭐'
- # typeset -g POWERLEVEL9K_PER_DIRECTORY_HISTORY_GLOBAL_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
- ################################[ cpu_arch: CPU architecture ]################################
- # CPU architecture color.
- typeset -g POWERLEVEL9K_CPU_ARCH_FOREGROUND=0
- typeset -g POWERLEVEL9K_CPU_ARCH_BACKGROUND=3
-
- # Hide the segment when on a specific CPU architecture.
- # typeset -g POWERLEVEL9K_CPU_ARCH_X86_64_CONTENT_EXPANSION=
- # typeset -g POWERLEVEL9K_CPU_ARCH_X86_64_VISUAL_IDENTIFIER_EXPANSION=
-
- # Custom icon.
- # typeset -g POWERLEVEL9K_CPU_ARCH_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
##################################[ context: user@hostname ]##################################
# Context color when running with privileges.
typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=1
@@ -1096,11 +1028,6 @@
# Nvm color.
typeset -g POWERLEVEL9K_NVM_FOREGROUND=0
typeset -g POWERLEVEL9K_NVM_BACKGROUND=5
- # If set to false, hide node version if it's the same as default:
- # $(nvm version current) == $(nvm version default).
- typeset -g POWERLEVEL9K_NVM_PROMPT_ALWAYS_SHOW=false
- # If set to false, hide node version if it's equal to "system".
- typeset -g POWERLEVEL9K_NVM_SHOW_SYSTEM=true
# Custom icon.
# typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐'
@@ -1267,16 +1194,6 @@
# Custom icon.
# typeset -g POWERLEVEL9K_PLENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
- ###########[ perlbrew: perl version from perlbrew (https://github.com/gugod/App-perlbrew) ]############
- # Perlbrew color.
- typeset -g POWERLEVEL9K_PERLBREW_FOREGROUND=67
- # Show perlbrew version only when in a perl project subdirectory.
- typeset -g POWERLEVEL9K_PERLBREW_PROJECT_ONLY=true
- # Don't show "perl-" at the front.
- typeset -g POWERLEVEL9K_PERLBREW_SHOW_PREFIX=false
- # Custom icon.
- # typeset -g POWERLEVEL9K_PERLBREW_VISUAL_IDENTIFIER_EXPANSION='⭐'
-
############[ phpenv: php version from phpenv (https://github.com/phpenv/phpenv) ]############
# PHP color.
typeset -g POWERLEVEL9K_PHPENV_FOREGROUND=0
@@ -1369,7 +1286,7 @@
#############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]#############
# Show kubecontext only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show kubecontext.
- typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|flux|fluxctl|stern|kubeseal|skaffold|kubent|kubecolor|cmctl|sparkctl'
+ typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc|istioctl|kogito|k9s|helmfile|flux|fluxctl|stern'
# Kubernetes context classes for the purpose of using different colors, icons and expansions with
# different contexts.
@@ -1458,7 +1375,7 @@
#[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]#
# Show aws only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show aws.
- typeset -g POWERLEVEL9K_AWS_SHOW_ON_COMMAND='aws|awless|cdk|terraform|pulumi|terragrunt'
+ typeset -g POWERLEVEL9K_AWS_SHOW_ON_COMMAND='aws|awless|terraform|pulumi|terragrunt'
# POWERLEVEL9K_AWS_CLASSES is an array with even number of elements. The first element
# in each pair defines a pattern against which the current AWS profile gets matched.
@@ -1508,41 +1425,11 @@
# Show azure only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show azure.
typeset -g POWERLEVEL9K_AZURE_SHOW_ON_COMMAND='az|terraform|pulumi|terragrunt'
-
- # POWERLEVEL9K_AZURE_CLASSES is an array with even number of elements. The first element
- # in each pair defines a pattern against which the current azure account name gets matched.
- # More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)
- # that gets matched. If you unset all POWERLEVEL9K_AZURE_*CONTENT_EXPANSION parameters,
- # you'll see this value in your prompt. The second element of each pair in
- # POWERLEVEL9K_AZURE_CLASSES defines the account class. Patterns are tried in order. The
- # first match wins.
- #
- # For example, given these settings:
- #
- # typeset -g POWERLEVEL9K_AZURE_CLASSES=(
- # '*prod*' PROD
- # '*test*' TEST
- # '*' OTHER)
- #
- # If your current azure account is "company_test", its class is TEST because "company_test"
- # doesn't match the pattern '*prod*' but does match '*test*'.
- #
- # You can define different colors, icons and content expansions for different classes:
- #
- # typeset -g POWERLEVEL9K_AZURE_TEST_FOREGROUND=2
- # typeset -g POWERLEVEL9K_AZURE_TEST_BACKGROUND=0
- # typeset -g POWERLEVEL9K_AZURE_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'
- # typeset -g POWERLEVEL9K_AZURE_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'
- typeset -g POWERLEVEL9K_AZURE_CLASSES=(
- # '*prod*' PROD # These values are examples that are unlikely
- # '*test*' TEST # to match your needs. Customize them as needed.
- '*' OTHER)
-
# Azure account name color.
- typeset -g POWERLEVEL9K_AZURE_OTHER_FOREGROUND=7
- typeset -g POWERLEVEL9K_AZURE_OTHER_BACKGROUND=4
+ typeset -g POWERLEVEL9K_AZURE_FOREGROUND=7
+ typeset -g POWERLEVEL9K_AZURE_BACKGROUND=4
# Custom icon.
- # typeset -g POWERLEVEL9K_AZURE_OTHER_VISUAL_IDENTIFIER_EXPANSION='⭐'
+ # typeset -g POWERLEVEL9K_AZURE_VISUAL_IDENTIFIER_EXPANSION='⭐'
##########[ gcloud: google cloud account and project (https://cloud.google.com/) ]###########
# Show gcloud only when the command you are typing invokes one of these tools.
@@ -1668,7 +1555,7 @@
typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION=
# Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN
# to see the name of the interface.
- typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(gpd|wg|(.*tun)|tailscale)[0-9]*|(zt.*)'
+ typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(gpd|wg|(.*tun)|tailscale)[0-9]*'
# If set to true, show one segment per matching network interface. If set to false, show only
# one segment corresponding to the first matching network interface.
# Tip: If you set it to true, you'll probably want to unset POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION.
@@ -1774,7 +1661,7 @@
# User-defined prompt segments may optionally provide an instant_prompt_* function. Its job
# is to generate the prompt segment for display in instant prompt. See
- # https://github.com/romkatv/powerlevel10k#instant-prompt.
+ # https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt.
#
# Powerlevel10k will call instant_prompt_* at the same time as the regular prompt_* function
# and will record all `p10k segment` calls it makes. When displaying instant prompt, Powerlevel10k
@@ -1811,7 +1698,7 @@
# it incompatible with your zsh configuration files.
# - quiet: Enable instant prompt and don't print warnings when detecting console output
# during zsh initialization. Choose this if you've read and understood
- # https://github.com/romkatv/powerlevel10k#instant-prompt.
+ # https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt.
# - verbose: Enable instant prompt and print a warning when detecting console output during
# zsh initialization. Choose this if you've never tried instant prompt, haven't
# seen the warning, or if you are unsure what this all means.
diff --git a/config/p10k-robbyrussell.zsh b/config/p10k-robbyrussell.zsh
index 6a204d29..a4cb8b2d 100644
--- a/config/p10k-robbyrussell.zsh
+++ b/config/p10k-robbyrussell.zsh
@@ -24,7 +24,7 @@
unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR'
# Zsh >= 5.1 is required.
- [[ $ZSH_VERSION == (5.<1->*|<6->.*) ]] || return
+ autoload -Uz is-at-least && is-at-least 5.1 || return
# Left prompt segments.
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(prompt_char dir vcs)
@@ -87,7 +87,7 @@
# it incompatible with your zsh configuration files.
# - quiet: Enable instant prompt and don't print warnings when detecting console output
# during zsh initialization. Choose this if you've read and understood
- # https://github.com/romkatv/powerlevel10k#instant-prompt.
+ # https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt.
# - verbose: Enable instant prompt and print a warning when detecting console output during
# zsh initialization. Choose this if you've never tried instant prompt, haven't
# seen the warning, or if you are unsure what this all means.
diff --git a/font.md b/font.md
index 7a7cb005..964585a9 100644
--- a/font.md
+++ b/font.md
@@ -52,10 +52,11 @@ If you are using a different terminal, proceed with manual font installation.
*Custom font* under *Text Appearance* and select `MesloLGS NF Regular`.
- **Windows Console Host** (the old thing): Click the icon in the top left corner, then
*Properties → Font* and set *Font* to `MesloLGS NF`.
- - **Windows Terminal** by Microsoft (the new thing): Open *Settings* (Ctrl+,), click
- either on the selected profile under *Profiles* or on *Defaults*, click *Appearance* and set
- *Font face* to `MesloLGS NF`.
- - **Conemu**: Open *Setup → General → Fonts* and set *Main console font* to `MesloLGS NF`.
+ - **Windows Terminal** by Microsoft (the new thing): Open `settings.json` (Ctrl+Shift+,),
+ search for `fontFace` and set the value to `MesloLGS NF` for every profile. If you don't find
+ `fontFace`, add it under *profiles → defaults*. See [this settings file](
+ https://raw.githubusercontent.com/romkatv/dotfiles-public/aba0e6c4657d705ed6c344d700d659977385f25c/dotfiles/microsoft-terminal-settings.json)
+ for example.
- **IntelliJ** (and other IDEs by Jet Brains): Open *IDE → Edit → Preferences → Editor →
Color Scheme → Console Font*. Select *Use console font instead of the default* and set the font
name to `MesloLGS NF`.
@@ -63,7 +64,7 @@ If you are using a different terminal, proceed with manual font installation.
*Meslo Nerd Font*.
- **Blink**: Type `config`, go to *Appearance*, tap *Add a new font*, tap *Open Gallery*, select
*MesloLGS NF.css*, tap *import* and type `exit` in the home view to reload the font.
- - **Tabby** (formerly **Terminus**): Open *Settings → Appearance* and set *Font* to `MesloLGS NF`.
+ - **Terminus**: Open *Settings → Appearance* and set *Font* to `MesloLGS NF`.
- **Terminator**: Open *Preferences* using the context menu. Under *Profiles* select the *General*
tab (should be selected already), uncheck *Use the system fixed width font* (if not already)
and select `MesloLGS NF Regular`. Exit the Preferences dialog by clicking *Close*.
@@ -71,9 +72,7 @@ If you are using a different terminal, proceed with manual font installation.
tab, uncheck *Use the system fixed width font* (if not already) and select `MesloLGS NF Regular`.
Exit the Preferences dialog by clicking *Close*.
- **MobaXterm**: Open *Settings* → *Configuration* → *Terminal* → (under *Terminal look and feel*)
- and change *Font* to `MesloLGS NF`. If you have *sessions*, you need to change the font in each
- of them through *Settings* → right click on an individual session → *Edit Session* → *Terminal
- Settings* → *Font settings*.
+ and change *Font* to `MesloLGS NF`.
- **Asbrú Connection Manager**: Open *Preferences → Local Shell Options → Look and Feel*, enable
*Use these personal options* and change *Font:* under *Terminal UI* to `MesloLGS NF Regular`.
To change the font for the remote host connections, go to *Preferences → Terminal Options →
@@ -83,15 +82,12 @@ If you are using a different terminal, proceed with manual font installation.
- **Yakuake**: Click *≡* → *Manage Profiles* → *New* → *Appearance*. Click *Choose* next to the
*Font* dropdown, select `MesloLGS NF` and click *OK*. Click *OK* to save the profile. Select the
new profile and click *Set as Default*.
- - **Alacritty**: Create or open `~/.config/alacritty/alacritty.toml` and add the following
- section to it:
- ```toml
- [font.normal]
- family = "MesloLGS NF"
- ```
- - **foot**: Create or open `~/.config/foot/foot.ini` and add the following section to it:
- ```ini
- font=MesloLGS NF:size=12
+ - **Alacritty**: Create or open `~/.config/alacritty/alacritty.yml` and add the following section
+ to it:
+ ```yaml
+ font:
+ normal:
+ family: "MesloLGS NF"
```
- **kitty**: Create or open `~/.config/kitty/kitty.conf` and add the following line to it:
```text
@@ -121,45 +117,6 @@ If you are using a different terminal, proceed with manual font installation.
```
After changing the config run `xrdb ~/.Xresources` to reload it. The new config is applied to
all new terminals.
- - **Zed**: Open `~/.config/zed/settings.json` and set `terminal.font_family` to `"MesloLGS NF"`.
- ```jsonc
- {
- "terminal": {
- "font_family": "MesloLGS NF"
- },
- // Other settings.
- }
- ```
- - Crostini (Linux on Chrome OS): Open
- chrome-untrusted://terminal/html/nassh_preferences_editor.html, set *Text font family* to
- `'MesloLGS NF'` (including the quotes) and *Custom CSS (inline text)* to the following:
- ```css
- @font-face {
- font-family: "MesloLGS NF";
- src: url("https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/MesloLGS%20NF%20Regular.ttf");
- font-weight: normal;
- font-style: normal;
- }
- @font-face {
- font-family: "MesloLGS NF";
- src: url("https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/MesloLGS%20NF%20Bold.ttf");
- font-weight: bold;
- font-style: normal;
- }
- @font-face {
- font-family: "MesloLGS NF";
- src: url("https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/MesloLGS%20NF%20Italic.ttf");
- font-weight: normal;
- font-style: italic;
- }
- @font-face {
- font-family: "MesloLGS NF";
- src: url("https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/MesloLGS%20NF%20Bold%20Italic.ttf");
- font-weight: bold;
- font-style: italic;
- }
- ```
- **_CAVEAT_**: If you open the normal terminal preferences these settings will be overwritten.
1. Run `p10k configure` to generate a new `~/.p10k.zsh`. The old config may work
incorrectly with the new font.
diff --git a/gitstatus/Makefile b/gitstatus/Makefile
index adb20e9d..450d5ea0 100644
--- a/gitstatus/Makefile
+++ b/gitstatus/Makefile
@@ -10,7 +10,7 @@ VERSION ?= $(shell . ./build.info && printf "%s" "$$gitstatus_version")
#
# Sized delete is implemented as __ZdlPvm in /usr/lib/libc++.1.dylib but this symbol is
# missing in macOS prior to 10.13.
-CXXFLAGS += -std=c++14 -funsigned-char -O3 -DNDEBUG -DGITSTATUS_VERSION=$(VERSION) -Wall # -g -fsanitize=thread
+CXXFLAGS += -std=c++14 -funsigned-char -O3 -DNDEBUG -DGITSTATUS_VERSION=$(VERSION) -Wall -Werror # -g -fsanitize=thread
LDFLAGS += -pthread # -fsanitize=thread
LDLIBS += -lgit2 # -lprofiler -lunwind
@@ -44,14 +44,3 @@ pkg: zwc
GITSTATUS_DAEMON= GITSTATUS_CACHE_DIR=$(shell pwd)/usrbin ./install -f
-include $(OBJS:.o=.dep)
-
-.PHONY: help
-
-help:
- @echo "Usage: make [TARGET]"
- @echo "Available targets:"
- @echo " all Build $(APPNAME) (default target)"
- @echo " clean Remove generated files and directories"
- @echo " zwc Compile Zsh files"
- @echo " minify Remove unnecessary files and folders"
- @echo " pkg Create a package"
diff --git a/gitstatus/README.md b/gitstatus/README.md
index a6631f63..0fcf098b 100644
--- a/gitstatus/README.md
+++ b/gitstatus/README.md
@@ -22,8 +22,7 @@ Bash bindings for integration with shell.
The easiest way to take advantage of gitstatus from Zsh is to use a theme that's already integrated
with it. For example, [Powerlevel10k](https://github.com/romkatv/powerlevel10k) is a flexible and
-fast theme with first-class gitstatus integration. If you install Powerlevel10k, you don't need to
-install gitstatus.
+fast theme with first-class gitstatus integration.

@@ -36,7 +35,7 @@ git clone --depth=1 https://github.com/romkatv/gitstatus.git ~/gitstatus
echo 'source ~/gitstatus/gitstatus.prompt.zsh' >>! ~/.zshrc
```
-Users in China can use the official mirror on gitee.com for faster download.
+Users in mainland China can use the official mirror on gitee.com for faster download.
中国大陆用户可以使用 gitee.com 上的官方镜像加速下载.
```zsh
@@ -137,7 +136,7 @@ git clone --depth=1 https://github.com/romkatv/gitstatus.git ~/gitstatus
echo 'source ~/gitstatus/gitstatus.prompt.sh' >> ~/.bashrc
```
-Users in China can use the official mirror on gitee.com for faster download.
+Users in mainland China can use the official mirror on gitee.com for faster download.
中国大陆用户可以使用 gitee.com 上的官方镜像加速下载.
```bash
@@ -255,7 +254,7 @@ repository was checked out to an ext4 filesystem on M.2 SSD.
Three functionally equivalent tools for computing git status were benchmarked:
* `gitstatusd`
-* `git` with `core.untrackedcache` enabled and `core.fsmonitor` disabled
+* `git` with untracked cache enabled
* `lg2` -- a demo/example executable from [libgit2](https://github.com/romkatv/libgit2) that
implements a subset of `git` functionality on top of libgit2 API; for the purposes of this
benchmark the subset is sufficient to generate the same data as the other tools
@@ -381,7 +380,7 @@ generated with the same tools and the same flags as the profile of libgit2.
Since both profiles were generated from the same workload, absolute numbers can be compared. We can
see that gitstatusd took 62 seconds in total compared to libgit2's 232 seconds. System calls at the
-core of the algorithm are clearly visible. `__GI___fxstatat` is a flavor of `stat()`, and the other
+core of the algorithm are cleary visible. `__GI___fxstatat` is a flavor of `stat()`, and the other
three calls -- `__libc_openat64`, `__libc_close` and `__GI___fxstat` are responsible for opening
directories and finding untracked files. Notice that there is almost nothing else in the profile
apart from these calls. The rest of the code accounts for 3.77 seconds of CPU time -- 32 times less
@@ -492,7 +491,7 @@ cd gitstatus
./build -w -s -d docker
```
-Users in China can use the official mirror on gitee.com for faster download.
+Users in mainland China can use the official mirror on gitee.com for faster download.
中国大陆用户可以使用 gitee.com 上的官方镜像加速下载.
```zsh
diff --git a/gitstatus/build b/gitstatus/build
index e116abb2..05b3abc5 100755
--- a/gitstatus/build
+++ b/gitstatus/build
@@ -100,7 +100,7 @@ if [ -n "$gitstatus_install_tools" ]; then
exit 1
fi
;;
- freebsd|dragonfly)
+ freebsd)
command pkg install -y cmake gmake binutils git perl5 wget
;;
openbsd)
@@ -141,7 +141,7 @@ if [ -n "$gitstatus_install_tools" ]; then
fi
cpus="$(command getconf _NPROCESSORS_ONLN 2>/dev/null)" ||
- cpus="$(command sysctl -n hw.ncpu 2>/dev/null)" ||
+ cpus="$(command sysctl -n hw.ncpu 2>/dev/null)" ||
cpus=8
case "$gitstatus_cpu" in
@@ -174,21 +174,12 @@ if 2>/dev/null "$CC" \
fi
command rm -f -- "$workdir"/cc-test "$workdir"/cc-test.o
-if 2>/dev/null "$CC" \
- -fstack-clash-protection \
- -Werror \
- -c "$workdir"/cc-test.c \
+if 2>/dev/null "$CC" \
+ -fstack-clash-protection -fcf-protection \
+ -Werror \
+ -c "$workdir"/cc-test.c \
-o "$workdir"/cc-test.o; then
- cflags="$cflags -fstack-clash-protection"
-fi
-
-command rm -f -- "$workdir"/cc-test "$workdir"/cc-test.o
-if 2>/dev/null "$CC" \
- -fcf-protection \
- -Werror \
- -c "$workdir"/cc-test.c \
- -o "$workdir"/cc-test.o; then
- cflags="$cflags -fcf-protection"
+ cflags="$cflags -fstack-clash-protection -fcf-protection"
fi
command rm -f -- "$workdir"/cc-test "$workdir"/cc-test.o
@@ -233,12 +224,6 @@ case "$gitstatus_kernel" in
gitstatus_ldflags="$gitstatus_ldflags ${static_pie:--static}"
libgit2_cmake_flags="$libgit2_cmake_flags -DENABLE_REPRODUCIBLE_BUILDS=ON"
;;
- dragonfly)
- gitstatus_cxx=clang++12
- gitstatus_make=gmake
- gitstatus_ldflags="$gitstatus_ldflags ${static_pie:--static}"
- libgit2_cmake_flags="$libgit2_cmake_flags -DENABLE_REPRODUCIBLE_BUILDS=ON"
- ;;
openbsd)
gitstatus_cxx=eg++
gitstatus_make=gmake
@@ -589,7 +574,7 @@ case "$gitstatus_kernel" in
fi
fi
;;
- freebsd|openbsd|netbsd|darwin|dragonfly)
+ freebsd|openbsd|netbsd|darwin)
if [ -n "$docker_cmd" ]; then
>&2 echo "[error] docker (-d) is not supported on $gitstatus_kernel"
exit 1
diff --git a/gitstatus/build.info b/gitstatus/build.info
index 9a4967e8..6defef24 100644
--- a/gitstatus/build.info
+++ b/gitstatus/build.info
@@ -3,7 +3,7 @@
#
# This value is also read by shell bindings (indirectly, through
# ./install) when using GITSTATUS_DAEMON or usrbin/gitstatusd.
-gitstatus_version="v1.5.4"
+gitstatus_version="v1.5.3"
# libgit2 is a build time dependency of gitstatusd. The values of
# libgit2_version and libgit2_sha256 are read by ./build.
@@ -18,5 +18,5 @@ gitstatus_version="v1.5.4"
#
# If sha256 of ./deps/libgit2-${libgit2_version}.tar.gz doesn't match,
# build gets aborted.
-libgit2_version="tag-2ecf33948a4df9ef45a66c68b8ef24a5e60eaac6"
-libgit2_sha256="4ce11d71ee576dbbc410b9fa33a9642809cc1fa687b315f7c23eeb825b251e93"
+libgit2_version="tag-5860a42d19bcd226cb6eff2dcbfcbf155d570c73"
+libgit2_sha256="2289203eda19913a2f6d2b26a15384cc43872bffd70e87a7659f9a22da79058e"
diff --git a/gitstatus/gitstatus.plugin.sh b/gitstatus/gitstatus.plugin.sh
index bfe16dc2..37b78f44 100644
--- a/gitstatus/gitstatus.plugin.sh
+++ b/gitstatus/gitstatus.plugin.sh
@@ -290,7 +290,7 @@ function gitstatus_stop() {
unset _GITSTATUS_DIRTY_MAX_INDEX_SIZE _GITSTATUS_CLIENT_PID
}
-# Retrieves status of a git repository from a directory under its working tree.
+# Retrives status of a git repository from a directory under its working tree.
#
# Usage: gitstatus_query [OPTION]...
#
diff --git a/gitstatus/gitstatus.plugin.zsh b/gitstatus/gitstatus.plugin.zsh
index b74396d3..228fea74 100644
--- a/gitstatus/gitstatus.plugin.zsh
+++ b/gitstatus/gitstatus.plugin.zsh
@@ -59,7 +59,7 @@ zmodload -F zsh/files b:zf_rm || return
typeset -g _gitstatus_plugin_dir"${1:-}"="${${(%):-%x}:A:h}"
-# Retrieves status of a git repo from a directory under its working tree.
+# Retrives status of a git repo from a directory under its working tree.
#
## Usage: gitstatus_query [OPTION]... NAME
#
diff --git a/gitstatus/gitstatus.prompt.sh b/gitstatus/gitstatus.prompt.sh
index f54c11ac..8ee28de0 100644
--- a/gitstatus/gitstatus.prompt.sh
+++ b/gitstatus/gitstatus.prompt.sh
@@ -2,7 +2,7 @@
# Source gitstatus.plugin.sh from $GITSTATUS_DIR or from the same directory
# in which the current script resides if the variable isn't set.
-if [[ -n "${GITSTATUS_DIR-}" ]]; then
+if [[ -n "${GITSTATUS_DIR:-}" ]]; then
source "$GITSTATUS_DIR" || return
elif [[ "${BASH_SOURCE[0]}" == */* ]]; then
source "${BASH_SOURCE[0]%/*}/gitstatus.plugin.sh" || return
@@ -85,14 +85,7 @@ function gitstatus_prompt_update() {
gitstatus_stop && gitstatus_start -s -1 -u -1 -c -1 -d -1
# On every prompt, fetch git status and set GITSTATUS_PROMPT.
-if [[ -z "${PROMPT_COMMAND[*]}" ]]; then
- PROMPT_COMMAND=gitstatus_prompt_update
-elif [[ ! "${PROMPT_COMMAND[*]}" =~ [[:space:]\;]?gitstatus_prompt_update[[:space:]\;]? ]]; then
- # Note: If PROMPT_COMMAND is an array, this will modify its first element.
- PROMPT_COMMAND=$'gitstatus_prompt_update\n'"$PROMPT_COMMAND"
-fi
-
-# Retain 3 trailing components of the current directory.
+PROMPT_COMMAND=gitstatus_prompt_update
PROMPT_DIRTRIM=3
# Enable promptvars so that ${GITSTATUS_PROMPT} in PS1 is expanded.
diff --git a/gitstatus/install.info b/gitstatus/install.info
index 45807be4..dab50b9b 100644
--- a/gitstatus/install.info
+++ b/gitstatus/install.info
@@ -1,4 +1,4 @@
-# 3
+# 2
#
# This file is used by ./install and indirectly by shell bindings.
#
@@ -8,23 +8,23 @@
# work fine.
# Official gitstatusd binaries.
-uname_s_glob="cygwin_nt-10.0"; uname_m_glob="i686"; file="gitstatusd-${uname_s}-${uname_m}"; version="v1.5.4"; sha256="5a8a809dcebdb6aa9b47d37e086c0485424a9d9c136770eec3c26cedf5bb75e3";
+uname_s_glob="cygwin_nt-10.0"; uname_m_glob="i686"; file="gitstatusd-${uname_s}-${uname_m}"; version="v1.5.1"; sha256="fe132c412c460c2889d731012d280207fe2b4a3c94d077fb4f1c06ed5d319a42";
uname_s_glob="cygwin_nt-10.0"; uname_m_glob="x86_64"; file="gitstatusd-${uname_s}-${uname_m}"; version="v1.5.1"; sha256="c84cade0d6b86e04c27a6055f45851f6b46d6b88ba58772f7ca8ef4d295c800f";
-uname_s_glob="darwin"; uname_m_glob="arm64"; file="gitstatusd-${uname_s}-${uname_m}"; version="v1.5.4"; sha256="eae979e990ca37c56ee39fadd0c3f392cbbd0c6bdfb9a603010be60d9e48910a";
-uname_s_glob="darwin"; uname_m_glob="x86_64"; file="gitstatusd-${uname_s}-${uname_m}"; version="v1.5.4"; sha256="9fd3913ec1b6b856ab6e08a99a2343f0e8e809eb6b62ca4b0963163656c668e6";
-uname_s_glob="freebsd"; uname_m_glob="amd64"; file="gitstatusd-${uname_s}-${uname_m}"; version="v1.5.4"; sha256="8e57ad642251e5acfa430aed82cd4ffe103db0bfadae4a15ccaf462c455d0442";
-uname_s_glob="linux"; uname_m_glob="aarch64"; file="gitstatusd-${uname_s}-${uname_m}"; version="v1.5.4"; sha256="32b57eb28bf6d80b280e4020a0045184f8ca897b20b570c12948aa6838673225";
+uname_s_glob="darwin"; uname_m_glob="arm64"; file="gitstatusd-${uname_s}-${uname_m}"; version="v1.5.1"; sha256="ad973948cca4bdcf83b7fcdda70c489a404488ea7304712721f1100b73ec7cbe";
+uname_s_glob="darwin"; uname_m_glob="x86_64"; file="gitstatusd-${uname_s}-${uname_m}"; version="v1.5.1"; sha256="b13455d56cf7b6f07efb7da088057bbc1212847c88b59493918d6f9c0c157160";
+uname_s_glob="freebsd"; uname_m_glob="amd64"; file="gitstatusd-${uname_s}-${uname_m}"; version="v1.5.3"; sha256="73b5622ec9737e93f3fafe117b47ce8de33037be3e2bff283f36668f5852668a";
+uname_s_glob="linux"; uname_m_glob="aarch64"; file="gitstatusd-${uname_s}-${uname_m}"; version="v1.5.1"; sha256="89b87181b2005527a558cdbc32b12b0f15a1a12bb69865ec216ca5a0266a6c4f";
uname_s_glob="linux"; uname_m_glob="armv6l"; file="gitstatusd-${uname_s}-${uname_m}"; version="v1.5.1"; sha256="4bf5a0d0a082f544a48536ad3675930d5d2cc6a8cf906710045e0788f51192b3";
uname_s_glob="linux"; uname_m_glob="armv7l"; file="gitstatusd-${uname_s}-${uname_m}"; version="v1.5.1"; sha256="2b9deb29f86c8209114b71b94fc2e1ed936a1658808a1bee46f4a82fd6a1f8cc";
-uname_s_glob="linux"; uname_m_glob="armv8l"; file="gitstatusd-${uname_s}-aarch64"; version="v1.5.4"; sha256="32b57eb28bf6d80b280e4020a0045184f8ca897b20b570c12948aa6838673225";
-uname_s_glob="linux"; uname_m_glob="i686"; file="gitstatusd-${uname_s}-${uname_m}"; version="v1.5.4"; sha256="56d55e2e9a202d3072fa612d8fa1faa61243ffc86418a7fa64c2c9d9a82e0f64";
-uname_s_glob="linux"; uname_m_glob="ppc64le"; file="gitstatusd-${uname_s}-${uname_m}"; version="v1.5.4"; sha256="1afd072c8c26ef6ec2d9ac11cef96c84cd6f10e859665a6ffcfb6112c758547e";
-uname_s_glob="linux"; uname_m_glob="x86_64"; file="gitstatusd-${uname_s}-${uname_m}"; version="v1.5.4"; sha256="9633816e7832109e530c9e2532b11a1edae08136d63aa7e40246c0339b7db304";
+uname_s_glob="linux"; uname_m_glob="armv8l"; file="gitstatusd-${uname_s}-aarch64"; version="v1.5.1"; sha256="89b87181b2005527a558cdbc32b12b0f15a1a12bb69865ec216ca5a0266a6c4f";
+uname_s_glob="linux"; uname_m_glob="i686"; file="gitstatusd-${uname_s}-${uname_m}"; version="v1.5.1"; sha256="4998bf7889f625df71f1da5757915b678e04039cc8cba00ae10950352c7329f9";
+uname_s_glob="linux"; uname_m_glob="ppc64le"; file="gitstatusd-${uname_s}-${uname_m}"; version="v1.5.1"; sha256="e5336dc8e23406c649bafeea83ff17df1726b05ee490f67bae549e55a9a7a7c4";
+uname_s_glob="linux"; uname_m_glob="x86_64"; file="gitstatusd-${uname_s}-${uname_m}"; version="v1.5.1"; sha256="0e8bbc46c17f5cd6e0db98b74c48f4b68f464f98550c8254f6cfcfd936ad1fcf";
uname_s_glob="msys_nt-10.0"; uname_m_glob="i686"; file="gitstatusd-${uname_s}-${uname_m}"; version="v1.5.1"; sha256="7f9b849fc52e7a95b9b933e25121ad5ae990a1871aad6616922ad7bcf1eebf20";
uname_s_glob="msys_nt-10.0"; uname_m_glob="x86_64"; file="gitstatusd-${uname_s}-${uname_m}"; version="v1.5.1"; sha256="5d3c626b5ee564dbc13ddba89752dc58b0efe925b26dbd8b2304849d9ba01732";
# Fallbacks to official gitstatusd binaries.
-uname_s_glob="cygwin_nt-*"; uname_m_glob="i686"; file="gitstatusd-cygwin_nt-10.0-${uname_m}"; version="v1.5.2"; sha256="5a8a809dcebdb6aa9b47d37e086c0485424a9d9c136770eec3c26cedf5bb75e3";
+uname_s_glob="cygwin_nt-*"; uname_m_glob="i686"; file="gitstatusd-cygwin_nt-10.0-${uname_m}"; version="v1.5.1"; sha256="fe132c412c460c2889d731012d280207fe2b4a3c94d077fb4f1c06ed5d319a42";
uname_s_glob="cygwin_nt-*"; uname_m_glob="x86_64"; file="gitstatusd-cygwin_nt-10.0-${uname_m}"; version="v1.5.1"; sha256="c84cade0d6b86e04c27a6055f45851f6b46d6b88ba58772f7ca8ef4d295c800f";
uname_s_glob="mingw32_nt-*"; uname_m_glob="i686"; file="gitstatusd-msys_nt-10.0-${uname_m}"; version="v1.5.1"; sha256="7f9b849fc52e7a95b9b933e25121ad5ae990a1871aad6616922ad7bcf1eebf20";
uname_s_glob="mingw32_nt-*"; uname_m_glob="x86_64"; file="gitstatusd-msys_nt-10.0-${uname_m}"; version="v1.5.1"; sha256="5d3c626b5ee564dbc13ddba89752dc58b0efe925b26dbd8b2304849d9ba01732";
diff --git a/gitstatus/mbuild b/gitstatus/mbuild
index 40316fdf..ab096e8b 100755
--- a/gitstatus/mbuild
+++ b/gitstatus/mbuild
@@ -94,7 +94,9 @@
setopt no_unset extended_glob pipe_fail prompt_percent typeset_silent \
no_prompt_subst no_prompt_bang pushd_silent warn_create_global
-if [[ $ZSH_VERSION != (5.<1->*|<6->.*) || $ZSH_VERSION == 5.4(|.*) ]]; then
+autoload -Uz is-at-least
+
+if ! is-at-least 5.1 || [[ $ZSH_VERSION == 5.4.* ]]; then
print -ru2 -- "[error] unsupported zsh version: $ZSH_VERSION"
return 1
fi
@@ -182,7 +184,7 @@ function build-unix() {
case $2 in
linux-ppc64le) ;;
linux-*) flags+=(-d docker);;
- darwin-arm64) intro='PATH="/opt/homebrew/bin:$PATH"';;
+ darwin-arm64) intro='PATH="/opt/local/bin:$PATH"';;
darwin-*) intro='PATH="/usr/local/bin:$PATH"';;
esac
ssh $1 -- /bin/sh -uex <<<"
@@ -269,52 +271,16 @@ function build-windows() {
chmod +x $binaries/gitstatusd-$2
}
-if [[ -r /proc/version && "$(/dev/null
- (
- trap '' TERM PIPE
- local fd
- while true; do
- sysopen -wo create,excl -u fd -- $1 && break
- sleep 1
- done
- exec {fd}>&-
- while true; do
- print || break
- done
- rm -- $1
- ) &!
- )
- local REPLY
- IFS= read -ru $fd
- }
-else
- function flock() {
- : >>$1
- zsystem flock $1
- }
-fi
-
function build() (
setopt xtrace
local platform=$1
local machine=$assets[$platform]
- flock $locks/$machine
+ print -n >>$locks/$machine
+ zsystem flock $locks/$machine
build-${protocol[(k)$platform]} $machine $platform
local tmp=gitstatusd-$platform.tmp.$$.tar.gz
( cd -q -- $binaries; tar --owner=0 --group=0 -I 'gzip -9' -cf $tmp gitstatusd-$platform )
mv -f -- $binaries/$tmp $binaries/gitstatusd-$platform.tar.gz
- # Make sure the last command is a built-in (important for flock).
- :
)
function mbuild() {
@@ -399,8 +365,4 @@ function run-process-tree() {
}
mkdir -p -- $logs $locks $binaries
-
-() {
- run-process-tree mbuild $@
- exit
-} "$@"
+run-process-tree mbuild $@
diff --git a/gitstatus/src/check.h b/gitstatus/src/check.h
index 682675a2..82dceae1 100644
--- a/gitstatus/src/check.h
+++ b/gitstatus/src/check.h
@@ -23,7 +23,7 @@
#include
// The argument must be an expression convertible to bool.
-// Does nothing if the expression evaluates to true. Otherwise
+// Does nothing if the expression evalutes to true. Otherwise
// it's equivalent to LOG(FATAL).
#define CHECK(cond...) \
static_cast(0), (!!(cond)) ? static_cast(0) : LOG(FATAL) << #cond << ": "
diff --git a/gitstatus/src/dir.h b/gitstatus/src/dir.h
index 2a7533a3..4d4cf3da 100644
--- a/gitstatus/src/dir.h
+++ b/gitstatus/src/dir.h
@@ -25,7 +25,7 @@
namespace gitstatus {
-// On error, leaves entries unchanged and returns false. Does not throw.
+// On error, leaves entries unchaged and returns false. Does not throw.
//
// On success, appends names of files from the specified directory to entries and returns true.
// Every appended entry is a null-terminated string. At -1 offset is its d_type. All elements
diff --git a/gitstatus/src/options.cc b/gitstatus/src/options.cc
index b7abe5db..46f3845c 100644
--- a/gitstatus/src/options.cc
+++ b/gitstatus/src/options.cc
@@ -61,7 +61,7 @@ size_t ParseSizeT(const char* s) {
void PrintUsage() {
std::cout << "Usage: gitstatusd [OPTION]...\n"
- << "Print machine-readable status of the git repos for directories in stdin.\n"
+ << "Print machine-readable status of the git repos for directores in stdin.\n"
<< "\n"
<< "OPTIONS\n"
<< " -l, --lock-fd=NUM [default=-1]\n"
@@ -78,7 +78,7 @@ void PrintUsage() {
<< " maximum performance.\n"
<< "\n"
<< " -v, --log-level=STR [default=INFO]\n"
- << " Don't write entries to log whose log level is below this. Log levels in\n"
+ << " Don't write entires to log whose log level is below this. Log levels in\n"
<< " increasing order: DEBUG, INFO, WARN, ERROR, FATAL.\n"
<< "\n"
<< " -r, --repo-ttl-seconds=NUM [default=3600]\n"
@@ -141,7 +141,7 @@ void PrintUsage() {
<< "\n"
<< " 1. Request ID. Any string. Can be empty.\n"
<< " 2. Path to the directory for which git stats are being requested.\n"
- << " If the first character is ':', it is removed and the remaining path\n"
+ << " If the first character is ':', it is removed and the remaning path\n"
<< " is treated as GIT_DIR.\n"
<< " 3. (Optional) '1' to disable computation of anything that requires reading\n"
<< " git index; '0' for the default behavior of computing everything.\n"
diff --git a/gitstatus/src/options.h b/gitstatus/src/options.h
index bb373155..fd561e11 100644
--- a/gitstatus/src/options.h
+++ b/gitstatus/src/options.h
@@ -62,7 +62,7 @@ struct Options : Limits {
// If non-negative, send signal 0 to the specified PID when not receiving any requests for one
// second; exit if signal sending fails.
int parent_pid = -1;
- // Don't write entries to log whose log level is below this. Log levels in increasing order:
+ // Don't write entires to log whose log level is below this. Log levels in increasing order:
// DEBUG, INFO, WARN, ERROR, FATAL.
LogLevel log_level = INFO;
// Close git repositories that haven't been used for this long. This is meant to release resources
diff --git a/gitstatus/src/repo.cc b/gitstatus/src/repo.cc
index a81594a4..d7ea7d3e 100644
--- a/gitstatus/src/repo.cc
+++ b/gitstatus/src/repo.cc
@@ -155,7 +155,7 @@ IndexStats Repo::GetIndexStats(const git_oid* head, git_config* cfg) {
VERIFY(!git_repository_index(&git_index_, repo_)) << GitError();
// Query an attribute (doesn't matter which) to initialize repo's attribute
// cache. It's a workaround for synchronization bugs (data races) in libgit2
- // that result from lazy cache initialization without synchronization.
+ // that result from lazy cache initialization without synchrnonization.
// Thankfully, subsequent cache reads and writes are properly synchronized.
const char* attr;
VERIFY(!git_attr_get(&attr, repo_, 0, "x", "x")) << GitError();
diff --git a/gitstatus/src/tag_db.cc b/gitstatus/src/tag_db.cc
index 8bd445c7..52cbaede 100644
--- a/gitstatus/src/tag_db.cc
+++ b/gitstatus/src/tag_db.cc
@@ -268,7 +268,7 @@ void TagDb::ParsePack() {
}
if (!std::is_sorted(name2id_.begin(), name2id_.end(), ByName)) {
- // "sorted" in the header of packed-refs promises that this won't trigger.
+ // "sorted" in the header of packed-refs promisses that this won't trigger.
std::sort(name2id_.begin(), name2id_.end(), ByName);
}
diff --git a/internal/configure.zsh b/internal/configure.zsh
index 0e13bdec..3e880f23 100644
--- a/internal/configure.zsh
+++ b/internal/configure.zsh
@@ -18,6 +18,7 @@ function _p9k_can_configure() {
typeset -g __p9k_cfg_path=${__p9k_cfg_path_o:A}
typeset -g __p9k_cfg_path_u=${${${(q)__p9k_cfg_path_o}/#(#b)${(q)HOME}(|\/*)/'~'$match[1]}//\%/%%}
{
+ [[ -o multibyte ]] || { $0_error "multibyte option is not set"; return 1 }
[[ -e $__p9k_zd ]] || { $0_error "$__p9k_zd_u does not exist"; return 1 }
[[ -d $__p9k_zd ]] || { $0_error "$__p9k_zd_u is not a directory"; return 1 }
[[ ! -d $__p9k_cfg_path ]] || { $0_error "$__p9k_cfg_path_u is a directory"; return 1 }
diff --git a/internal/icons.zsh b/internal/icons.zsh
index d34b2c0e..e3d71ffa 100644
--- a/internal/icons.zsh
+++ b/internal/icons.zsh
@@ -52,7 +52,6 @@ function _p9k_init_icons() {
LINUX_DEBIAN_ICON '\uE271'$s #
LINUX_RASPBIAN_ICON '\uE271'$s #
LINUX_UBUNTU_ICON '\uE271'$s #
- LINUX_KALI_ICON '\uE271'$s #
LINUX_CENTOS_ICON '\uE271'$s #
LINUX_COREOS_ICON '\uE271'$s #
LINUX_ELEMENTARY_ICON '\uE271'$s #
@@ -72,10 +71,6 @@ function _p9k_init_icons() {
LINUX_ARTIX_ICON '\uE271'$s #
LINUX_RHEL_ICON '\uE271'$s #
LINUX_AMZN_ICON '\uE271'$s #
- LINUX_ENDEAVOUROS_ICON '\uE271'$s #
- LINUX_ROCKY_ICON '\uE271'$s #
- LINUX_GUIX_ICON '\uE271'$s #
- LINUX_NEON_ICON '\uE271'$s #
SUNOS_ICON '\U1F31E'$q # 🌞
HOME_ICON '\uE12C'$s #
HOME_SUB_ICON '\uE18D'$s #
@@ -106,23 +101,10 @@ function _p9k_init_icons() {
VCS_GIT_GITHUB_ICON '\uE20E ' #
VCS_GIT_BITBUCKET_ICON '\uE20E ' #
VCS_GIT_GITLAB_ICON '\uE20E ' #
- VCS_GIT_AZURE_ICON '\uE20E ' #
- VCS_GIT_ARCHLINUX_ICON '\uE20E ' #
- VCS_GIT_CODEBERG_ICON '\uE20E ' #
- VCS_GIT_DEBIAN_ICON '\uE20E ' #
- VCS_GIT_FREEBSD_ICON '\uE20E ' #
- VCS_GIT_FREEDESKTOP_ICON '\uE20E ' #
- VCS_GIT_GNOME_ICON '\uE20E ' #
- VCS_GIT_GNU_ICON '\uE20E ' #
- VCS_GIT_KDE_ICON '\uE20E ' #
- VCS_GIT_LINUX_ICON '\uE20E ' #
- VCS_GIT_GITEA_ICON '\uE20E ' #
- VCS_GIT_SOURCEHUT_ICON '\uE20E ' #
VCS_HG_ICON '\uE1C3 ' #
VCS_SVN_ICON 'svn'$q
RUST_ICON 'R'
PYTHON_ICON '\uE63C'$s # (doesn't always work)
- CHEZMOI_ICON '\uE12C'$s #
SWIFT_ICON 'Swift'
GO_ICON 'Go'
GOLANG_ICON 'Go'
@@ -139,7 +121,6 @@ function _p9k_init_icons() {
JAVA_ICON '\U2615' # ☕︎
LARAVEL_ICON ''
RANGER_ICON '\u2B50' # ⭐
- YAZI_ICON '\u2B50' # ⭐
MIDNIGHT_COMMANDER_ICON 'mc'
VIM_ICON 'vim'
TERRAFORM_ICON 'tf'
@@ -153,7 +134,6 @@ function _p9k_init_icons() {
LUA_ICON 'lua'
PERL_ICON 'perl'
NNN_ICON 'nnn'
- LF_ICON 'lf'
XPLR_ICON 'xplr'
TIMEWARRIOR_ICON 'tw'
TASKWARRIOR_ICON 'task'
@@ -168,8 +148,6 @@ function _p9k_init_icons() {
JULIA_ICON 'jl'
SCALA_ICON 'scala'
TOOLBOX_ICON '\u2B22' # ⬢
- ARCH_ICON 'arch'
- HISTORY_ICON 'hist'
)
;;
'awesome-fontconfig')
@@ -210,7 +188,6 @@ function _p9k_init_icons() {
LINUX_DEBIAN_ICON '\uF17C'$s #
LINUX_RASPBIAN_ICON '\uF17C'$s #
LINUX_UBUNTU_ICON '\uF17C'$s #
- LINUX_KALI_ICON '\uF17C'$s #
LINUX_CENTOS_ICON '\uF17C'$s #
LINUX_COREOS_ICON '\uF17C'$s #
LINUX_ELEMENTARY_ICON '\uF17C'$s #
@@ -230,10 +207,6 @@ function _p9k_init_icons() {
LINUX_ARTIX_ICON '\uF17C'$s #
LINUX_RHEL_ICON '\uF17C'$s #
LINUX_AMZN_ICON '\uF17C'$s #
- LINUX_ENDEAVOUROS_ICON '\uF17C'$s #
- LINUX_ROCKY_ICON '\uF17C'$s #
- LINUX_GUIX_ICON '\uF17C'$s #
- LINUX_NEON_ICON '\uF17C'$s #
SUNOS_ICON '\uF185 ' #
HOME_ICON '\uF015'$s #
HOME_SUB_ICON '\uF07C'$s #
@@ -260,23 +233,10 @@ function _p9k_init_icons() {
VCS_GIT_GITHUB_ICON '\uF113 ' #
VCS_GIT_BITBUCKET_ICON '\uF171 ' #
VCS_GIT_GITLAB_ICON '\uF296 ' #
- VCS_GIT_AZURE_ICON '\u2601 ' # ☁
- VCS_GIT_ARCHLINUX_ICON '\uF1D3 ' #
- VCS_GIT_CODEBERG_ICON '\uF1D3 ' #
- VCS_GIT_DEBIAN_ICON '\uF1D3 ' #
- VCS_GIT_FREEBSD_ICON '\uF1D3 ' #
- VCS_GIT_FREEDESKTOP_ICON '\uF1D3 ' #
- VCS_GIT_GNOME_ICON '\uF1D3 ' #
- VCS_GIT_GNU_ICON '\uF1D3 ' #
- VCS_GIT_KDE_ICON '\uF1D3 ' #
- VCS_GIT_LINUX_ICON '\uF1D3 ' #
- VCS_GIT_GITEA_ICON '\uF1D3 ' #
- VCS_GIT_SOURCEHUT_ICON '\uF1D3 ' #
VCS_HG_ICON '\uF0C3 ' #
VCS_SVN_ICON 'svn'$q
RUST_ICON '\uE6A8' #
PYTHON_ICON '\uE63C'$s #
- CHEZMOI_ICON '\uF015'$s #
SWIFT_ICON 'Swift'
GO_ICON 'Go'
GOLANG_ICON 'Go'
@@ -293,7 +253,6 @@ function _p9k_init_icons() {
JAVA_ICON '\U2615' # ☕︎
LARAVEL_ICON ''
RANGER_ICON '\u2B50' # ⭐
- YAZI_ICON '\u2B50' # ⭐
MIDNIGHT_COMMANDER_ICON 'mc'
VIM_ICON 'vim'
TERRAFORM_ICON 'tf'
@@ -307,7 +266,6 @@ function _p9k_init_icons() {
LUA_ICON 'lua'
PERL_ICON 'perl'
NNN_ICON 'nnn'
- LF_ICON 'lf'
XPLR_ICON 'xplr'
TIMEWARRIOR_ICON 'tw'
TASKWARRIOR_ICON 'task'
@@ -322,8 +280,6 @@ function _p9k_init_icons() {
JULIA_ICON 'jl'
SCALA_ICON 'scala'
TOOLBOX_ICON '\u2B22' # ⬢
- ARCH_ICON 'arch'
- HISTORY_ICON 'hist'
)
;;
'awesome-mapped-fontconfig')
@@ -369,7 +325,6 @@ function _p9k_init_icons() {
LINUX_DEBIAN_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
LINUX_RASPBIAN_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
LINUX_UBUNTU_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
- LINUX_KALI_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
LINUX_CENTOS_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
LINUX_COREOS_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
LINUX_ELEMENTARY_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
@@ -389,10 +344,6 @@ function _p9k_init_icons() {
LINUX_ARTIX_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
LINUX_RHEL_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
LINUX_AMZN_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
- LINUX_ENDEAVOUROS_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
- LINUX_ROCKY_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
- LINUX_GUIX_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
- LINUX_NEON_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
SUNOS_ICON "${CODEPOINT_OF_AWESOME_SUN_O:+\\u$CODEPOINT_OF_AWESOME_SUN_O }"
HOME_ICON "${CODEPOINT_OF_AWESOME_HOME:+\\u$CODEPOINT_OF_AWESOME_HOME$s}"
HOME_SUB_ICON "${CODEPOINT_OF_AWESOME_FOLDER_OPEN:+\\u$CODEPOINT_OF_AWESOME_FOLDER_OPEN$s}"
@@ -419,23 +370,10 @@ function _p9k_init_icons() {
VCS_GIT_GITHUB_ICON "${CODEPOINT_OF_AWESOME_GITHUB_ALT:+\\u$CODEPOINT_OF_AWESOME_GITHUB_ALT }"
VCS_GIT_BITBUCKET_ICON "${CODEPOINT_OF_AWESOME_BITBUCKET:+\\u$CODEPOINT_OF_AWESOME_BITBUCKET }"
VCS_GIT_GITLAB_ICON "${CODEPOINT_OF_AWESOME_GITLAB:+\\u$CODEPOINT_OF_AWESOME_GITLAB }"
- VCS_GIT_AZURE_ICON '\u2601 ' # ☁
- VCS_GIT_ARCHLINUX_ICON "${CODEPOINT_OF_AWESOME_GIT:+\\u$CODEPOINT_OF_AWESOME_GIT }"
- VCS_GIT_CODEBERG_ICON "${CODEPOINT_OF_AWESOME_GIT:+\\u$CODEPOINT_OF_AWESOME_GIT }"
- VCS_GIT_DEBIAN_ICON "${CODEPOINT_OF_AWESOME_GIT:+\\u$CODEPOINT_OF_AWESOME_GIT }"
- VCS_GIT_FREEBSD_ICON "${CODEPOINT_OF_AWESOME_GIT:+\\u$CODEPOINT_OF_AWESOME_GIT }"
- VCS_GIT_FREEDESKTOP_ICON "${CODEPOINT_OF_AWESOME_GIT:+\\u$CODEPOINT_OF_AWESOME_GIT }"
- VCS_GIT_GNOME_ICON "${CODEPOINT_OF_AWESOME_GIT:+\\u$CODEPOINT_OF_AWESOME_GIT }"
- VCS_GIT_GNU_ICON "${CODEPOINT_OF_AWESOME_GIT:+\\u$CODEPOINT_OF_AWESOME_GIT }"
- VCS_GIT_KDE_ICON "${CODEPOINT_OF_AWESOME_GIT:+\\u$CODEPOINT_OF_AWESOME_GIT }"
- VCS_GIT_LINUX_ICON "${CODEPOINT_OF_AWESOME_GIT:+\\u$CODEPOINT_OF_AWESOME_GIT }"
- VCS_GIT_GITEA_ICON "${CODEPOINT_OF_AWESOME_GIT:+\\u$CODEPOINT_OF_AWESOME_GIT }"
- VCS_GIT_SOURCEHUT_ICON "${CODEPOINT_OF_AWESOME_GIT:+\\u$CODEPOINT_OF_AWESOME_GIT }"
VCS_HG_ICON "${CODEPOINT_OF_AWESOME_FLASK:+\\u$CODEPOINT_OF_AWESOME_FLASK }"
VCS_SVN_ICON 'svn'$q
RUST_ICON '\uE6A8' #
PYTHON_ICON '\U1F40D' # 🐍
- CHEZMOI_ICON "${CODEPOINT_OF_AWESOME_HOME:+\\u$CODEPOINT_OF_AWESOME_HOME$s}"
SWIFT_ICON '\uE655'$s #
PUBLIC_IP_ICON "${CODEPOINT_OF_AWESOME_GLOBE:+\\u$CODEPOINT_OF_AWESOME_GLOBE$s}"
LOCK_ICON "${CODEPOINT_OF_AWESOME_LOCK:+\\u$CODEPOINT_OF_AWESOME_LOCK}"
@@ -450,7 +388,6 @@ function _p9k_init_icons() {
JAVA_ICON '\U2615' # ☕︎
LARAVEL_ICON ''
RANGER_ICON '\u2B50' # ⭐
- YAZI_ICON '\u2B50' # ⭐
MIDNIGHT_COMMANDER_ICON 'mc'
VIM_ICON 'vim'
TERRAFORM_ICON 'tf'
@@ -464,7 +401,6 @@ function _p9k_init_icons() {
LUA_ICON 'lua'
PERL_ICON 'perl'
NNN_ICON 'nnn'
- LF_ICON 'lf'
XPLR_ICON 'xplr'
TIMEWARRIOR_ICON 'tw'
TASKWARRIOR_ICON 'task'
@@ -479,168 +415,6 @@ function _p9k_init_icons() {
JULIA_ICON 'jl'
SCALA_ICON 'scala'
TOOLBOX_ICON '\u2B22' # ⬢
- ARCH_ICON 'arch'
- HISTORY_ICON 'hist'
- )
- ;;
- 'nerdfont-v3')
- # In this version of Nerd Fonts the Material icons are mapped to U+F0001-U+F19C3.
- # The font may also have Material icons in the old range of U+F500-U+FD46 but
- # powerlevel10k won't rely on them.
- icons=(
- RULER_CHAR '\u2500' # ─
- LEFT_SEGMENT_SEPARATOR '\uE0B0' #
- RIGHT_SEGMENT_SEPARATOR '\uE0B2' #
- LEFT_SEGMENT_END_SEPARATOR ' ' #
- LEFT_SUBSEGMENT_SEPARATOR '\uE0B1' #
- RIGHT_SUBSEGMENT_SEPARATOR '\uE0B3' #
- CARRIAGE_RETURN_ICON '\u21B5' # ↵
- ROOT_ICON '\uE614'$q #
- SUDO_ICON '\uF09C'$s #
- RUBY_ICON '\uF219 ' #
- AWS_ICON '\uF270'$s #
- AWS_EB_ICON '\UF1BD'$q$q #
- BACKGROUND_JOBS_ICON '\uF013 ' #
- TEST_ICON '\uF188'$s #
- TODO_ICON '\u2611' # ☑
- BATTERY_ICON '\UF240 ' #
- DISK_ICON '\uF0A0'$s #
- OK_ICON '\uF00C'$s #
- FAIL_ICON '\uF00D' #
- SYMFONY_ICON '\uE757' #
- NODE_ICON '\uE617 ' #
- NODEJS_ICON '\uE617 ' #
- MULTILINE_FIRST_PROMPT_PREFIX '\u256D\U2500' # ╭─
- MULTILINE_NEWLINE_PROMPT_PREFIX '\u251C\U2500' # ├─
- MULTILINE_LAST_PROMPT_PREFIX '\u2570\U2500 ' # ╰─
- APPLE_ICON '\uF179' #
- WINDOWS_ICON '\uF17A'$s #
- FREEBSD_ICON '\UF30C ' #
- ANDROID_ICON '\uF17B' #
- LINUX_ARCH_ICON '\uF303' #
- LINUX_CENTOS_ICON '\uF304'$s #
- LINUX_COREOS_ICON '\uF305'$s #
- LINUX_DEBIAN_ICON '\uF306' #
- LINUX_RASPBIAN_ICON '\uF315' #
- LINUX_ELEMENTARY_ICON '\uF309'$s #
- LINUX_FEDORA_ICON '\uF30a'$s #
- LINUX_GENTOO_ICON '\uF30d'$s #
- LINUX_MAGEIA_ICON '\uF310' #
- LINUX_MINT_ICON '\uF30e'$s #
- LINUX_NIXOS_ICON '\uF313'$s #
- LINUX_MANJARO_ICON '\uF312'$s #
- LINUX_DEVUAN_ICON '\uF307'$s #
- LINUX_ALPINE_ICON '\uF300'$s #
- LINUX_AOSC_ICON '\uF301'$s #
- LINUX_OPENSUSE_ICON '\uF314'$s #
- LINUX_SABAYON_ICON '\uF317'$s #
- LINUX_SLACKWARE_ICON '\uF319'$s #
- LINUX_VOID_ICON '\UF32E'$s #
- LINUX_ARTIX_ICON '\UF31F'$s #
- LINUX_UBUNTU_ICON '\uF31b'$s #
- LINUX_KALI_ICON '\uF327'$s #
- LINUX_RHEL_ICON '\UF111B'$s #
- LINUX_AMZN_ICON '\uF270'$s #
- LINUX_ENDEAVOUROS_ICON '\UF322'$s #
- LINUX_ROCKY_ICON '\UF32B'$s #
- LINUX_GUIX_ICON '\UF325'$s #
- LINUX_NEON_ICON '\uF17C' #
- LINUX_ICON '\uF17C' #
- SUNOS_ICON '\uF185 ' #
- HOME_ICON '\uF015'$s #
- HOME_SUB_ICON '\uF07C'$s #
- FOLDER_ICON '\uF115'$s #
- ETC_ICON '\uF013'$s #
- NETWORK_ICON '\UF0378'$s #
- LOAD_ICON '\uF080 ' #
- SWAP_ICON '\uF464'$s #
- RAM_ICON '\uF0E4'$s #
- SERVER_ICON '\uF0AE'$s #
- VCS_UNTRACKED_ICON '\uF059'$s #
- VCS_UNSTAGED_ICON '\uF06A'$s #
- VCS_STAGED_ICON '\uF055'$s #
- VCS_STASH_ICON '\uF01C ' #
- VCS_INCOMING_CHANGES_ICON '\uF01A ' #
- VCS_OUTGOING_CHANGES_ICON '\uF01B ' #
- VCS_TAG_ICON '\uF02B ' #
- VCS_BOOKMARK_ICON '\uF461 ' #
- VCS_COMMIT_ICON '\uE729 ' #
- VCS_BRANCH_ICON '\uF126 ' #
- VCS_REMOTE_BRANCH_ICON '\uE728 ' #
- VCS_LOADING_ICON '' #
- VCS_GIT_ICON '\uF1D3 ' #
- VCS_GIT_GITHUB_ICON '\uF113 ' #
- VCS_GIT_BITBUCKET_ICON '\uE703 ' #
- VCS_GIT_GITLAB_ICON '\uF296 ' #
- VCS_GIT_AZURE_ICON '\uEBE8 ' #
- VCS_GIT_ARCHLINUX_ICON '\uF303 ' #
- # v3.1 has \uF330.
- VCS_GIT_CODEBERG_ICON '\uF1D3 ' #
- VCS_GIT_DEBIAN_ICON '\uF306 ' #
- VCS_GIT_FREEBSD_ICON '\UF30C ' #
- # v3.1 has \uF360.
- VCS_GIT_FREEDESKTOP_ICON '\uF296 ' #
- # v3.1 has \uF361.
- VCS_GIT_GNOME_ICON '\uF296 ' #
- VCS_GIT_GNU_ICON '\uE779 ' #
- # v3.1 has \uF332.
- VCS_GIT_KDE_ICON '\uF296 ' #
- VCS_GIT_LINUX_ICON '\uF17C ' #
- # v3.1 has \uF339.
- VCS_GIT_GITEA_ICON '\uF1D3 ' #
- VCS_GIT_SOURCEHUT_ICON '\uF1DB ' #
- VCS_HG_ICON '\uF0C3 ' #
- VCS_SVN_ICON '\uE72D'$q #
- RUST_ICON '\uE7A8'$q #
- PYTHON_ICON '\UE73C ' #
- CHEZMOI_ICON '\uF015'$s #
- SWIFT_ICON '\uE755' #
- GO_ICON '\uE626' #
- GOLANG_ICON '\uE626' #
- PUBLIC_IP_ICON '\UF0AC'$s #
- LOCK_ICON '\UF023' #
- NORDVPN_ICON '\UF023' #
- EXECUTION_TIME_ICON '\uF252'$s #
- SSH_ICON '\uF489'$s #
- VPN_ICON '\UF023' #
- KUBERNETES_ICON '\UF10FE' #
- DROPBOX_ICON '\UF16B'$s #
- DATE_ICON '\uF073 ' #
- TIME_ICON '\uF017 ' #
- JAVA_ICON '\uE738' #
- LARAVEL_ICON '\ue73f'$q #
- RANGER_ICON '\uF00b ' #
- YAZI_ICON '\uF00b ' #
- MIDNIGHT_COMMANDER_ICON 'mc' # mc
- VIM_ICON '\uE62B' #
- TERRAFORM_ICON '\uF1BB ' #
- PROXY_ICON '\u2194' # ↔
- DOTNET_ICON '\uE77F' #
- DOTNET_CORE_ICON '\uE77F' #
- AZURE_ICON '\uEBD8 ' #
- DIRENV_ICON '\u25BC' # ▼
- FLUTTER_ICON 'F' # F
- GCLOUD_ICON '\UF02AD' #
- LUA_ICON '\uE620' #
- PERL_ICON '\uE769' #
- NNN_ICON 'nnn' # nnn
- LF_ICON 'lf' # lf
- XPLR_ICON 'xplr' # xplr
- TIMEWARRIOR_ICON '\uF49B' #
- TASKWARRIOR_ICON '\uF4A0 ' #
- NIX_SHELL_ICON '\uF313 ' #
- WIFI_ICON '\uF1EB ' #
- ERLANG_ICON '\uE7B1 ' #
- ELIXIR_ICON '\uE62D' #
- POSTGRES_ICON '\uE76E' #
- PHP_ICON '\uE608' #
- HASKELL_ICON '\uE61F' #
- PACKAGE_ICON '\UF03D7' #
- JULIA_ICON '\uE624' #
- SCALA_ICON '\uE737' #
- TOOLBOX_ICON '\uE20F'$s #
- ARCH_ICON '\uE266' #
- HISTORY_ICON '\uF1DA'$s #
)
;;
'nerdfont-complete'|'nerdfont-fontconfig')
@@ -698,13 +472,8 @@ function _p9k_init_icons() {
LINUX_VOID_ICON '\uF17C' #
LINUX_ARTIX_ICON '\uF17C' #
LINUX_UBUNTU_ICON '\uF31b'$s #
- LINUX_KALI_ICON '\uF17C' #
LINUX_RHEL_ICON '\uF316'$s #
LINUX_AMZN_ICON '\uF270'$s #
- LINUX_ENDEAVOUROS_ICON '\uF17C' #
- LINUX_ROCKY_ICON '\uF17C' #
- LINUX_GUIX_ICON '\uF325'$s #
- LINUX_NEON_ICON '\uF17C' #
LINUX_ICON '\uF17C' #
SUNOS_ICON '\uF185 ' #
HOME_ICON '\uF015'$s #
@@ -732,23 +501,10 @@ function _p9k_init_icons() {
VCS_GIT_GITHUB_ICON '\uF113 ' #
VCS_GIT_BITBUCKET_ICON '\uE703 ' #
VCS_GIT_GITLAB_ICON '\uF296 ' #
- VCS_GIT_AZURE_ICON '\uFD03 ' # ﴃ
- VCS_GIT_ARCHLINUX_ICON '\uF303 ' #
- VCS_GIT_CODEBERG_ICON '\uF1D3 ' #
- VCS_GIT_DEBIAN_ICON '\uF306 ' #
- VCS_GIT_FREEBSD_ICON '\UF30C ' #
- VCS_GIT_FREEDESKTOP_ICON '\uF296 ' #
- VCS_GIT_GNOME_ICON '\uF296 ' #
- VCS_GIT_GNU_ICON '\uE779 ' #
- VCS_GIT_KDE_ICON '\uF296 ' #
- VCS_GIT_LINUX_ICON '\uF17C ' #
- VCS_GIT_GITEA_ICON '\uF1D3 ' #
- VCS_GIT_SOURCEHUT_ICON '\uF1DB ' #
VCS_HG_ICON '\uF0C3 ' #
VCS_SVN_ICON '\uE72D'$q #
RUST_ICON '\uE7A8'$q #
PYTHON_ICON '\UE73C ' #
- CHEZMOI_ICON '\uF015'$s #
SWIFT_ICON '\uE755' #
GO_ICON '\uE626' #
GOLANG_ICON '\uE626' #
@@ -765,7 +521,6 @@ function _p9k_init_icons() {
JAVA_ICON '\uE738' #
LARAVEL_ICON '\ue73f'$q #
RANGER_ICON '\uF00b ' #
- YAZI_ICON '\uF00b ' #
MIDNIGHT_COMMANDER_ICON 'mc'
VIM_ICON '\uE62B' #
TERRAFORM_ICON '\uF1BB ' #
@@ -779,7 +534,6 @@ function _p9k_init_icons() {
LUA_ICON '\uE620' #
PERL_ICON '\uE769' #
NNN_ICON 'nnn'
- LF_ICON 'lf'
XPLR_ICON 'xplr'
TIMEWARRIOR_ICON '\uF49B' #
TASKWARRIOR_ICON '\uF4A0 ' #
@@ -794,8 +548,6 @@ function _p9k_init_icons() {
JULIA_ICON '\uE624' #
SCALA_ICON '\uE737' #
TOOLBOX_ICON '\uE20F'$s #
- ARCH_ICON '\uE266' #
- HISTORY_ICON '\uF1DA'$s #
)
;;
ascii)
@@ -834,7 +586,6 @@ function _p9k_init_icons() {
LINUX_DEBIAN_ICON 'debian'
LINUX_RASPBIAN_ICON 'pi'
LINUX_UBUNTU_ICON 'ubuntu'
- LINUX_KALI_ICON 'kali'
LINUX_CENTOS_ICON 'centos'
LINUX_COREOS_ICON 'coreos'
LINUX_ELEMENTARY_ICON 'elementary'
@@ -854,10 +605,6 @@ function _p9k_init_icons() {
LINUX_ARTIX_ICON 'artix'
LINUX_RHEL_ICON 'rhel'
LINUX_AMZN_ICON 'amzn'
- LINUX_ENDEAVOUROS_ICON 'edvos'
- LINUX_ROCKY_ICON 'rocky'
- LINUX_GUIX_ICON 'guix'
- LINUX_NEON_ICON 'neon'
SUNOS_ICON 'sunos'
HOME_ICON ''
HOME_SUB_ICON ''
@@ -884,23 +631,10 @@ function _p9k_init_icons() {
VCS_GIT_GITHUB_ICON ''
VCS_GIT_BITBUCKET_ICON ''
VCS_GIT_GITLAB_ICON ''
- VCS_GIT_AZURE_ICON ''
- VCS_GIT_ARCHLINUX_ICON ''
- VCS_GIT_CODEBERG_ICON ''
- VCS_GIT_DEBIAN_ICON ''
- VCS_GIT_FREEBSD_ICON ''
- VCS_GIT_FREEDESKTOP_ICON ''
- VCS_GIT_GNOME_ICON ''
- VCS_GIT_GNU_ICON ''
- VCS_GIT_KDE_ICON ''
- VCS_GIT_LINUX_ICON ''
- VCS_GIT_GITEA_ICON ''
- VCS_GIT_SOURCEHUT_ICON ''
VCS_HG_ICON ''
VCS_SVN_ICON ''
RUST_ICON 'rust'
PYTHON_ICON 'py'
- CHEZMOI_ICON 'chezmoi'
SWIFT_ICON 'swift'
GO_ICON 'go'
GOLANG_ICON 'go'
@@ -917,7 +651,6 @@ function _p9k_init_icons() {
JAVA_ICON 'java'
LARAVEL_ICON ''
RANGER_ICON 'ranger'
- YAZI_ICON 'yazi'
MIDNIGHT_COMMANDER_ICON 'mc'
VIM_ICON 'vim'
TERRAFORM_ICON 'tf'
@@ -931,7 +664,6 @@ function _p9k_init_icons() {
LUA_ICON 'lua'
PERL_ICON 'perl'
NNN_ICON 'nnn'
- LF_ICON 'lf'
XPLR_ICON 'xplr'
TIMEWARRIOR_ICON 'tw'
TASKWARRIOR_ICON 'task'
@@ -946,8 +678,6 @@ function _p9k_init_icons() {
JULIA_ICON 'jl'
SCALA_ICON 'scala'
TOOLBOX_ICON 'toolbox'
- ARCH_ICON 'arch'
- HISTORY_ICON 'hist'
)
;;
*)
@@ -988,7 +718,6 @@ function _p9k_init_icons() {
LINUX_DEBIAN_ICON 'Deb'
LINUX_RASPBIAN_ICON 'RPi'
LINUX_UBUNTU_ICON 'Ubu'
- LINUX_KALI_ICON 'Kal'
LINUX_CENTOS_ICON 'Cen'
LINUX_COREOS_ICON 'Cor'
LINUX_ELEMENTARY_ICON 'Elm'
@@ -1008,10 +737,6 @@ function _p9k_init_icons() {
LINUX_ARTIX_ICON 'Art'
LINUX_RHEL_ICON 'RH'
LINUX_AMZN_ICON 'Amzn'
- LINUX_ENDEAVOUROS_ICON 'Edv'
- LINUX_ROCKY_ICON 'Roc'
- LINUX_GUIX_ICON 'Guix'
- LINUX_NEON_ICON 'Neon'
SUNOS_ICON 'Sun'
HOME_ICON ''
HOME_SUB_ICON ''
@@ -1038,23 +763,10 @@ function _p9k_init_icons() {
VCS_GIT_GITHUB_ICON ''
VCS_GIT_BITBUCKET_ICON ''
VCS_GIT_GITLAB_ICON ''
- VCS_GIT_AZURE_ICON ''
- VCS_GIT_ARCHLINUX_ICON ''
- VCS_GIT_CODEBERG_ICON ''
- VCS_GIT_DEBIAN_ICON ''
- VCS_GIT_FREEBSD_ICON ''
- VCS_GIT_FREEDESKTOP_ICON ''
- VCS_GIT_GNOME_ICON ''
- VCS_GIT_GNU_ICON ''
- VCS_GIT_KDE_ICON ''
- VCS_GIT_LINUX_ICON ''
- VCS_GIT_GITEA_ICON ''
- VCS_GIT_SOURCEHUT_ICON ''
VCS_HG_ICON ''
VCS_SVN_ICON ''
RUST_ICON 'R'
PYTHON_ICON 'Py'
- CHEZMOI_ICON 'Chez'
SWIFT_ICON 'Swift'
GO_ICON 'Go'
GOLANG_ICON 'Go'
@@ -1071,7 +783,6 @@ function _p9k_init_icons() {
JAVA_ICON '\U2615' # ☕︎
LARAVEL_ICON ''
RANGER_ICON '\u2B50' # ⭐
- YAZI_ICON '\u2B50' # ⭐
MIDNIGHT_COMMANDER_ICON 'mc'
VIM_ICON 'vim'
TERRAFORM_ICON 'tf'
@@ -1085,7 +796,6 @@ function _p9k_init_icons() {
LUA_ICON 'lua'
PERL_ICON 'perl'
NNN_ICON 'nnn'
- LF_ICON 'lf'
XPLR_ICON 'xplr'
TIMEWARRIOR_ICON 'tw'
TASKWARRIOR_ICON 'task'
@@ -1100,8 +810,6 @@ function _p9k_init_icons() {
JULIA_ICON 'jl'
SCALA_ICON 'scala'
TOOLBOX_ICON '\u2B22' # ⬢
- ARCH_ICON 'arch'
- HISTORY_ICON 'hist'
)
;;
esac
diff --git a/internal/p10k.zsh b/internal/p10k.zsh
index d2d261b2..e797a874 100644
--- a/internal/p10k.zsh
+++ b/internal/p10k.zsh
@@ -20,7 +20,7 @@ if [[ $__p9k_sourced != 13 ]]; then
return 1
fi
-if [[ $ZSH_VERSION != (5.<1->*|<6->.*) ]]; then
+if ! autoload -Uz is-at-least || ! is-at-least 5.1; then
() {
>&2 echo -E "You are using ZSH version $ZSH_VERSION. The minimum required version for Powerlevel10k is 5.1."
>&2 echo -E "Type 'echo \$ZSH_VERSION' to see your current zsh version."
@@ -31,8 +31,8 @@ if [[ $ZSH_VERSION != (5.<1->*|<6->.*) ]]; then
>&2 echo -E "The shell you are currently running is likely $cur."
fi
local other=${${:-zsh}:c}
- if [[ -n $other ]] && $other -fc '[[ $ZSH_VERSION == (5.<1->*|<6->.*) ]]' &>/dev/null; then
- local other_v="$($other -fc 'echo -E $ZSH_VERSION' 2>/dev/null)"
+ if [[ -n $other ]] && $other -c 'autoload -Uz is-at-least && is-at-least 5.1' &>/dev/null; then
+ local other_v="$($other -c 'echo -E $ZSH_VERSION' 2>/dev/null)"
if [[ -n $other_v && $other_v != $ZSH_VERSION ]]; then
>&2 echo -E "You have $other with version $other_v but this is not what you are using."
if [[ -n $def && $def != ${other:A} ]]; then
@@ -233,7 +233,7 @@ function _p9k_fetch_cwd() {
_p9k__parent_mtimes_s="$_p9k__parent_mtimes_i"
}
-# Usage: _p9k_glob parent_dir_index pattern [glob_qual]
+# Usage: _p9k_glob parent_dir_index pattern
#
# parent_dir_index indexes _p9k__parent_dirs.
#
@@ -250,12 +250,12 @@ function _p9k_glob() {
fi
local -a stat
zstat -A stat +mtime -- $dir 2>/dev/null || stat=(-1)
- eval 'local files=($dir/$~2('$3'N:t))'
+ local files=($dir/$~2(N:t))
_p9k__glob_cache[$dir/$2]="$stat[1]:$#files"
return $#files
}
-# Usage: _p9k_upglob pattern [glob_qual]
+# Usage: _p9k_upglob pattern
#
# Returns index within _p9k__parent_dirs or 0 if there is no match.
#
@@ -273,7 +273,7 @@ function _p9k_upglob() {
cached[-1]=()
local -i i
for i in ${(@)${cached:|_p9k__parent_mtimes_i}%:*}; do
- _p9k_glob $i "$@" && continue
+ _p9k_glob $i $1 && continue
_p9k__upsearch_cache[$_p9k__cwd/$1]="${_p9k__parent_mtimes_i[1,i]} $i"
return i
done
@@ -286,7 +286,7 @@ function _p9k_upglob() {
local -i i=1
fi
for ((; i <= $#_p9k__parent_mtimes; ++i)); do
- _p9k_glob $i "$@" && continue
+ _p9k_glob $i $1 && continue
_p9k__upsearch_cache[$_p9k__cwd/$1]="${_p9k__parent_mtimes_i[1,i]} $i"
return i
done
@@ -341,7 +341,7 @@ function _p9k_human_readable_bytes() {
_p9k__ret=${${_p9k__ret%%0#}%.}$suf
}
-if [[ $ZSH_VERSION == (5.<4->*|<6->.*) ]]; then
+if is-at-least 5.4; then
function _p9k_print_params() { typeset -p -- "$@" }
else
# Cannot use `typeset -p` unconditionally because of bugs in zsh.
@@ -532,7 +532,7 @@ _p9k_get_icon() {
_p9k_translate_color() {
if [[ $1 == <-> ]]; then # decimal color code: 255
_p9k__ret=${(l.3..0.)1}
- elif [[ $1 == '#'[[:xdigit:]]## ]]; then # hexadecimal color code: #ffffff
+ elif [[ $1 == '#'[[:xdigit:]]## ]]; then # hexademical color code: #ffffff
_p9k__ret=${${(L)1}//ı/i}
else # named color: red
# Strip prifixes if there are any.
@@ -1212,7 +1212,7 @@ _p9k_prompt_aws_init() {
################################################################
# Current Elastic Beanstalk environment
prompt_aws_eb_env() {
- _p9k_upglob .elasticbeanstalk -/ && return
+ _p9k_upglob .elasticbeanstalk && return
local dir=$_p9k__parent_dirs[$?]
if ! _p9k_cache_stat_get $0 $dir/.elasticbeanstalk/config.yml; then
@@ -1304,21 +1304,25 @@ function _p9k_read_file() {
}
function _p9k_fvm_old() {
- _p9k_upglob fvm @ && return 1
+ _p9k_upglob fvm && return 1
local fvm=$_p9k__parent_dirs[$?]/fvm
- if [[ ${fvm:A} == (#b)*/versions/([^/]##)/bin/flutter ]]; then
- _p9k_prompt_segment prompt_fvm blue $_p9k_color1 FLUTTER_ICON 0 '' ${match[1]//\%/%%}
- return 0
+ if [[ -L $fvm ]]; then
+ if [[ ${fvm:A} == (#b)*/versions/([^/]##)/bin/flutter ]]; then
+ _p9k_prompt_segment prompt_fvm blue $_p9k_color1 FLUTTER_ICON 0 '' ${match[1]//\%/%%}
+ return 0
+ fi
fi
return 1
}
function _p9k_fvm_new() {
- _p9k_upglob .fvm/flutter_sdk @ && return 1
+ _p9k_upglob .fvm && return 1
local sdk=$_p9k__parent_dirs[$?]/.fvm/flutter_sdk
- if [[ ${sdk:A} == (#b)*/versions/([^/]##) ]]; then
- _p9k_prompt_segment prompt_fvm blue $_p9k_color1 FLUTTER_ICON 0 '' ${match[1]//\%/%%}
- return 0
+ if [[ -L $sdk ]]; then
+ if [[ ${sdk:A} == (#b)*/versions/([^/]##) ]]; then
+ _p9k_prompt_segment prompt_fvm blue $_p9k_color1 FLUTTER_ICON 0 '' ${match[1]//\%/%%}
+ return 0
+ fi
fi
return 1
}
@@ -1345,7 +1349,7 @@ _p9k_prompt_battery_init() {
return
fi
if [[ $_p9k_os != (Linux|Android) ||
- -z /sys/class/power_supply/(CMB*|BAT*|*battery)/(energy_full|charge_full|charge_counter)(#qN) ]]; then
+ -z /sys/class/power_supply/(CMB*|BAT*|battery)/(energy_full|charge_full|charge_counter)(#qN) ]]; then
typeset -g "_p9k__segment_cond_${_p9k__prompt_side}[_p9k__segment_index]"='${:-}'
fi
}
@@ -1403,16 +1407,13 @@ _p9k_prompt_battery_set_args() {
Linux|Android)
# See https://sourceforge.net/projects/acpiclient.
- local -a bats=( /sys/class/power_supply/(CMB*|BAT*|*battery)/(FN) )
+ local -a bats=( /sys/class/power_supply/(CMB*|BAT*|battery)/(FN) )
(( $#bats )) || return
local -i energy_now energy_full power_now
local -i is_full=1 is_calculating is_charching
local dir
for dir in $bats; do
- _p9k_read_file $dir/status(N) && local bat_status=$_p9k__ret || continue
- # Skip batteries with "Unknown" status: https://github.com/romkatv/powerlevel10k/pull/2562.
- [[ $bat_status == Unknown ]] && continue
local -i pow=0 full=0
if _p9k_read_file $dir/(energy_full|charge_full|charge_counter)(N); then
(( energy_full += ${full::=_p9k__ret} ))
@@ -1425,6 +1426,7 @@ _p9k_prompt_battery_set_args() {
elif _p9k_read_file $dir/(energy|charge)_now(N); then
(( energy_now += _p9k__ret ))
fi
+ _p9k_read_file $dir/status(N) && local bat_status=$_p9k__ret || continue
[[ $bat_status != Full ]] && is_full=0
[[ $bat_status == Charging ]] && is_charching=1
[[ $bat_status == (Charging|Discharging) && $pow == 0 ]] && is_calculating=1
@@ -1749,9 +1751,16 @@ function _p9k_shorten_delim_len() {
# Percents are duplicated because this function is currently used only
# where the result is going to be percent-expanded.
function _p9k_url_escape() {
- emulate -L zsh -o no_multi_byte -o extended_glob
- local MATCH MBEGIN MEND
- _p9k__ret=${1//(#m)[^a-zA-Z0-9"\/:_.-!'()~"]/%%${(l:2::0:)$(([##16]#MATCH))}}
+ if [[ $1 == [a-zA-Z0-9"/:_.-!'()~ "]# ]]; then
+ _p9k__ret=${1// /%%20}
+ else
+ local c
+ _p9k__ret=
+ for c in ${(s::)1}; do
+ [[ $c == [a-zA-Z0-9"/:_.-!'()~"] ]] || printf -v c '%%%%%02X' $(( #c ))
+ _p9k__ret+=$c
+ done
+ fi
}
################################################################
@@ -1906,7 +1915,7 @@ prompt_dir() {
else
local key=
fi
- if ! _p9k_cache_ephemeral_get $0 $e $i $_p9k__cwd $p || [[ $key != $_p9k__cache_val[1] ]]; then
+ if ! _p9k_cache_ephemeral_get $0 $e $i $_p9k__cwd || [[ $key != $_p9k__cache_val[1] ]]; then
local rtail=${(j./.)rparts[i,-1]}
local parent=$_p9k__cwd[1,-2-$#rtail]
_p9k_prompt_length $delim
@@ -2187,7 +2196,7 @@ prompt_go_version() {
fi
fi
if [[ $_p9k__cwd/ != $p/* && $_p9k__cwd_a/ != $p/* ]]; then
- _p9k_upglob go.mod -. && return
+ _p9k_upglob go.mod && return
fi
fi
_p9k_prompt_segment "$0" "green" "grey93" "GO_ICON" 0 '' "${v//\%/%%}"
@@ -2207,7 +2216,7 @@ prompt_history() {
prompt_package() {
unset P9K_PACKAGE_NAME P9K_PACKAGE_VERSION
- _p9k_upglob package.json -. && return
+ _p9k_upglob package.json && return
local file=$_p9k__parent_dirs[$?]/package.json
if ! _p9k_cache_stat_get $0 $file; then
@@ -2312,18 +2321,13 @@ _p9k_vpn_ip_render() {
################################################################
# Segment to display laravel version
prompt_laravel_version() {
- # TODO: add a '-/' or '-.' here depending on whether artisan is a directory or a file.
_p9k_upglob artisan && return
local dir=$_p9k__parent_dirs[$?]
local app=$dir/vendor/laravel/framework/src/Illuminate/Foundation/Application.php
[[ -r $app ]] || return
if ! _p9k_cache_stat_get $0 $dir/artisan $app; then
local v="$(php $dir/artisan --version 2> /dev/null)"
- v="${${(M)v:#Laravel Framework *}#Laravel Framework }"
- # In some versions the output is colorized.
- # https://github.com/romkatv/powerlevel10k/issues/2534
- v=${${v#$'\e['<->m}%$'\e['<->m}
- _p9k_cache_stat_set "$v"
+ _p9k_cache_stat_set "${${(M)v:#Laravel Framework *}#Laravel Framework }"
fi
[[ -n $_p9k__cache_val[1] ]] || return
_p9k_prompt_segment "$0" "maroon" "white" 'LARAVEL_ICON' 0 '' "${_p9k__cache_val[1]//\%/%%}"
@@ -2426,45 +2430,18 @@ function _p9k_cached_cmd() {
}
################################################################
-# Segment to display Node version
+# Segment to diplay Node version
prompt_node_version() {
- _p9k_upglob package.json -.
+ _p9k_upglob package.json
local -i idx=$?
- (( idx || ! _POWERLEVEL9K_NODE_VERSION_PROJECT_ONLY )) || return
-
- local node=$commands[node]
- local -a file_deps env_deps
- if [[ $node == ${NODENV_ROOT:-$HOME/.nodenv}/shims/node ]]; then
- env_deps+=("$NODENV_VERSION")
- file_deps+=(${NODENV_ROOT:-$HOME/.nodenv}/version)
- if [[ $NODENV_DIR != (|.) ]]; then
- [[ $NODENV_DIR == /* ]] && local dir=$NODENV_DIR || local dir="$_p9k__cwd_a/$NODENV_DIR"
- dir=${dir:A}
- if [[ $dir != $_p9k__cwd_a ]]; then
- while true; do
- if [[ -e $dir/.node-version ]]; then
- file_deps+=($dir/.node-version)
- break
- fi
- [[ $dir == (/|.) ]] && break
- dir=${dir:h}
- done
- fi
- fi
- _p9k_upglob .node-version -. || file_deps+=($_p9k__parent_dirs[idx]/.node-version)
- elif (( idx )); then
- file_deps+=($_p9k__parent_dirs[idx]/package.json)
+ if (( idx )); then
+ _p9k_cached_cmd 0 $_p9k__parent_dirs[idx]/package.json node --version || return
+ else
+ (( _POWERLEVEL9K_NODE_VERSION_PROJECT_ONLY )) && return
+ _p9k_cached_cmd 0 '' node --version || return
fi
-
- if ! _p9k_cache_stat_get "$0 $#env_deps ${(j: :)${(@q)env_deps}} ${(j: :)${(@q)file_deps}}" $file_deps $node; then
- local out
- out=$($node --version 2>/dev/null)
- _p9k_cache_stat_set $(( ! $? )) "$out"
- fi
- (( $_p9k__cache_val[1] )) || return
- local v=$_p9k__cache_val[2]
- [[ $v == v?* ]] || return
- _p9k_prompt_segment "$0" "green" "white" 'NODE_ICON' 0 '' "${${v#v}//\%/%%}"
+ [[ $_p9k__ret == v?* ]] || return
+ _p9k_prompt_segment "$0" "green" "white" 'NODE_ICON' 0 '' "${_p9k__ret#v}"
}
_p9k_prompt_node_version_init() {
@@ -2573,13 +2550,7 @@ _p9k_nvm_ls_current() {
prompt_nvm() {
[[ -n $NVM_DIR ]] && _p9k_nvm_ls_current || return
local current=$_p9k__ret
- (( _POWERLEVEL9K_NVM_SHOW_SYSTEM )) ||
- [[ $current != system ]] ||
- return
- (( _POWERLEVEL9K_NVM_PROMPT_ALWAYS_SHOW )) ||
- ! _p9k_nvm_ls_default ||
- [[ $_p9k__ret != $current ]] ||
- return
+ ! _p9k_nvm_ls_default || [[ $_p9k__ret != $current ]] || return
_p9k_prompt_segment "$0" "magenta" "black" 'NODE_ICON' 0 '' "${${current#v}//\%/%%}"
}
@@ -2641,7 +2612,7 @@ prompt_nodenv() {
fi
fi
if [[ -z $_p9k__ret ]]; then
- _p9k_upglob .node-version -.
+ _p9k_upglob .node-version
local -i idx=$?
if (( idx )) && _p9k_read_word $_p9k__parent_dirs[idx]/.node-version; then
(( ${_POWERLEVEL9K_NODENV_SOURCES[(I)local]} )) || return
@@ -2677,12 +2648,9 @@ _p9k_prompt_nodenv_init() {
prompt_dotnet_version() {
if (( _POWERLEVEL9K_DOTNET_VERSION_PROJECT_ONLY )); then
- _p9k_upglob 'project.json|global.json|packet.dependencies|*.csproj|*.fsproj|*.xproj|*.sln' -. && return
+ _p9k_upglob 'project.json|global.json|packet.dependencies|*.csproj|*.fsproj|*.xproj|*.sln' && return
fi
-
- local cfg
- _p9k_upglob global.json -. || cfg=$_p9k__parent_dirs[$?]/global.json
- _p9k_cached_cmd 0 "$cfg" dotnet --version || return
+ _p9k_cached_cmd 0 '' dotnet --version || return
_p9k_prompt_segment "$0" "magenta" "white" 'DOTNET_ICON' 0 '' "$_p9k__ret"
}
@@ -2704,7 +2672,7 @@ instant_prompt_os_icon() { prompt_os_icon; }
# Segment to display PHP version number
prompt_php_version() {
if (( _POWERLEVEL9K_PHP_VERSION_PROJECT_ONLY )); then
- _p9k_upglob 'composer.json|*.php' -. && return
+ _p9k_upglob 'composer.json|*.php' && return
fi
_p9k_cached_cmd 0 '' php --version || return
[[ $_p9k__ret == (#b)(*$'\n')#'PHP '([[:digit:].]##)* ]] || return
@@ -2811,7 +2779,7 @@ prompt_rbenv() {
fi
fi
if [[ -z $_p9k__ret ]]; then
- _p9k_upglob .ruby-version -.
+ _p9k_upglob .ruby-version
local -i idx=$?
if (( idx )) && _p9k_read_word $_p9k__parent_dirs[idx]/.ruby-version; then
(( ${_POWERLEVEL9K_RBENV_SOURCES[(I)local]} )) || return
@@ -2874,7 +2842,7 @@ prompt_scalaenv() {
fi
fi
if [[ -z $_p9k__ret ]]; then
- _p9k_upglob .scala-version -.
+ _p9k_upglob .scala-version
local -i idx=$?
if (( idx )) && _p9k_read_word $_p9k__parent_dirs[idx]/.scala-version; then
(( ${_POWERLEVEL9K_SCALAENV_SOURCES[(I)local]} )) || return
@@ -2932,7 +2900,7 @@ prompt_phpenv() {
fi
fi
if [[ -z $_p9k__ret ]]; then
- _p9k_upglob .php-version -.
+ _p9k_upglob .php-version
local -i idx=$?
if (( idx )) && _p9k_read_word $_p9k__parent_dirs[idx]/.php-version; then
(( ${_POWERLEVEL9K_PHPENV_SOURCES[(I)local]} )) || return
@@ -2993,7 +2961,7 @@ prompt_luaenv() {
fi
fi
if [[ -z $_p9k__ret ]]; then
- _p9k_upglob .lua-version -.
+ _p9k_upglob .lua-version
local -i idx=$?
if (( idx )) && _p9k_read_word $_p9k__parent_dirs[idx]/.lua-version; then
(( ${_POWERLEVEL9K_LUAENV_SOURCES[(I)local]} )) || return
@@ -3054,7 +3022,7 @@ prompt_jenv() {
fi
fi
if [[ -z $_p9k__ret ]]; then
- _p9k_upglob .java-version -.
+ _p9k_upglob .java-version
local -i idx=$?
if (( idx )) && _p9k_read_word $_p9k__parent_dirs[idx]/.java-version; then
(( ${_POWERLEVEL9K_JENV_SOURCES[(I)local]} )) || return
@@ -3115,7 +3083,7 @@ prompt_plenv() {
fi
fi
if [[ -z $_p9k__ret ]]; then
- _p9k_upglob .perl-version -.
+ _p9k_upglob .perl-version
local -i idx=$?
if (( idx )) && _p9k_read_word $_p9k__parent_dirs[idx]/.perl-version; then
(( ${_POWERLEVEL9K_PLENV_SOURCES[(I)local]} )) || return
@@ -3147,31 +3115,13 @@ _p9k_prompt_plenv_init() {
typeset -g "_p9k__segment_cond_${_p9k__prompt_side}[_p9k__segment_index]"='${commands[plenv]:-${${+functions[plenv]}:#0}}'
}
-################################################################
-# Segment to display perlbrew information
-# https://github.com/gugod/App-perlbrew
-
-prompt_perlbrew() {
- if (( _POWERLEVEL9K_PERLBREW_PROJECT_ONLY )); then
- _p9k_upglob 'cpanfile|.perltidyrc|(|MY)META.(yml|json)|(Makefile|Build).PL|*.(pl|pm|t|pod)' -. && return
- fi
-
- local v=$PERLBREW_PERL
- (( _POWERLEVEL9K_PERLBREW_SHOW_PREFIX )) || v=${v#*-}
- [[ -n $v ]] || return
- _p9k_prompt_segment "$0" "blue" "$_p9k_color1" 'PERL_ICON' 0 '' "${v//\%/%%}"
-}
-
-_p9k_prompt_perlbrew_init() {
- typeset -g "_p9k__segment_cond_${_p9k__prompt_side}[_p9k__segment_index]"='$PERLBREW_PERL'
-}
-
################################################################
# Segment to display chruby information
# see https://github.com/postmodern/chruby/issues/245 for chruby_auto issue with ZSH
prompt_chruby() {
- local v=${(M)RUBY_ENGINE:#$~_POWERLEVEL9K_CHRUBY_SHOW_ENGINE_PATTERN}
- [[ $_POWERLEVEL9K_CHRUBY_SHOW_VERSION == 1 && -n $RUBY_VERSION ]] && v+=${v:+ }$RUBY_VERSION
+ local v
+ (( _POWERLEVEL9K_CHRUBY_SHOW_ENGINE )) && v=$RUBY_ENGINE
+ if [[ $_POWERLEVEL9K_CHRUBY_SHOW_VERSION == 1 && -n $RUBY_VERSION ]] && v+=${v:+ }$RUBY_VERSION
_p9k_prompt_segment "$0" "red" "$_p9k_color1" 'RUBY_ICON' 0 '' "${v//\%/%%}"
}
@@ -3192,57 +3142,70 @@ instant_prompt_root_indicator() { prompt_root_indicator; }
################################################################
# Segment to display Rust version number
prompt_rust_version() {
- local -i len=$#_p9k__prompt _p9k__has_upglob
- _p9k_prompt_segment $0 darkorange $_p9k_color1 RUST_ICON 1 '$P9K_RUST_VERSION' '${P9K_RUST_VERSION//\%/%%}'
- (( _p9k__has_upglob )) || typeset -g "_p9k__segment_val_${_p9k__prompt_side}[_p9k__segment_index]"=$_p9k__prompt[len+1,-1]
+ unset P9K_RUST_VERSION
+ if (( _POWERLEVEL9K_RUST_VERSION_PROJECT_ONLY )); then
+ _p9k_upglob Cargo.toml && return
+ fi
+ local rustc=$commands[rustc] toolchain deps=()
+ if (( $+commands[ldd] )); then
+ if ! _p9k_cache_stat_get $0_so $rustc; then
+ local line so
+ for line in "${(@f)$(ldd $rustc 2>/dev/null)}"; do
+ [[ $line == (#b)[[:space:]]#librustc_driver[^[:space:]]#.so' => '(*)' (0x'[[:xdigit:]]#')' ]] || continue
+ so=$match[1]
+ break
+ done
+ _p9k_cache_stat_set "$so"
+ fi
+ deps+=$_p9k__cache_val[1]
+ fi
+ if (( $+commands[rustup] )); then
+ local rustup=$commands[rustup]
+ local rustup_home=${RUSTUP_HOME:-~/.rustup}
+ local cfg=($rustup_home/settings.toml(.N))
+ deps+=($cfg $rustup_home/update-hashes/*(.N))
+ if [[ -z ${toolchain::=$RUSTUP_TOOLCHAIN} ]]; then
+ if ! _p9k_cache_stat_get $0_overrides $rustup $cfg; then
+ local lines=(${(f)"$(rustup override list 2>/dev/null)"})
+ if [[ $lines[1] == "no overrides" ]]; then
+ _p9k_cache_stat_set
+ else
+ local MATCH
+ local keys=(${(@)${lines%%[[:space:]]#[^[:space:]]#}/(#m)*/${(b)MATCH}/})
+ local vals=(${(@)lines/(#m)*/$MATCH[(I)/] ${MATCH##*[[:space:]]}})
+ _p9k_cache_stat_set ${keys:^vals}
+ fi
+ fi
+ local -A overrides=($_p9k__cache_val)
+ _p9k_upglob rust-toolchain
+ local dir=$_p9k__parent_dirs[$?]
+ local -i n m=${dir[(I)/]}
+ local pair
+ for pair in ${overrides[(K)$_p9k__cwd/]}; do
+ n=${pair%% *}
+ (( n <= m )) && continue
+ m=n
+ toolchain=${pair#* }
+ done
+ if [[ -z $toolchain && -n $dir ]]; then
+ _p9k_read_word $dir/rust-toolchain
+ toolchain=$_p9k__ret
+ fi
+ fi
+ fi
+ if ! _p9k_cache_stat_get $0_v$toolchain $rustc $deps; then
+ _p9k_cache_stat_set "$($rustc --version 2>/dev/null)"
+ fi
+ local v=${${_p9k__cache_val[1]#rustc }%% *}
+ [[ -n $v ]] || return
+ typeset -g P9K_RUST_VERSION=$_p9k__cache_val[1]
+ _p9k_prompt_segment "$0" "darkorange" "$_p9k_color1" 'RUST_ICON' 0 '' "${v//\%/%%}"
}
-function _p9k_prompt_rust_version_init() {
- _p9k__async_segments_compute+='_p9k_rust_version_prefetch'
+_p9k_prompt_rust_version_init() {
typeset -g "_p9k__segment_cond_${_p9k__prompt_side}[_p9k__segment_index]"='$commands[rustc]'
}
-_p9k_rust_version_prefetch() {
- local rustc=$commands[rustc]
- if [[ -z $rustc ]] ||
- { (( _POWERLEVEL9K_RUST_VERSION_PROJECT_ONLY )) && _p9k_upglob Cargo.toml -. }; then
- unset P9K_RUST_VERSION
- return
- fi
- _p9k_worker_invoke rust_version \
- "_p9k_prompt_rust_version_compute ${(q)P9K_RUST_VERSION} ${(q)rustc} ${(q)_p9k__cwd_a}"
-}
-
-_p9k_prompt_rust_version_compute() {
- _p9k_worker_async \
- "_p9k_prompt_rust_version_async ${(q)1} ${(q)2} ${(q)3}" \
- _p9k_prompt_rust_version_sync
-}
-
-_p9k_prompt_rust_version_async() {
- typeset -g P9K_RUST_VERSION=$1
- local rustc=$2 cwd=$3 v
- if pushd -q -- $cwd; then
- {
- v=${${"$($rustc --version)"#rustc }%% *} || v=
- } always {
- popd -q
- }
- fi
-
- [[ $v != $P9K_RUST_VERSION ]] || return
- typeset -g P9K_RUST_VERSION=$v
- _p9k_print_params P9K_RUST_VERSION
- echo -E - 'reset=1'
-}
-
-_p9k_prompt_rust_version_sync() {
- if [[ -n $REPLY ]]; then
- eval $REPLY
- _p9k_worker_reply $REPLY
- fi
-}
-
# RSpec test ratio
prompt_rspec_stats() {
if [[ -d app && -d spec ]]; then
@@ -3711,7 +3674,7 @@ function +vi-hg-bookmarks() {
if [[ -n "${hgbmarks[@]}" ]]; then
hook_com[hg-bookmark-string]=" $(print_icon 'VCS_BOOKMARK_ICON')${hgbmarks[@]}"
- # To signal that we want to use the string we just generated, set the special
+ # To signal that we want to use the sting we just generated, set the special
# variable `ret' to something other than the default zero:
ret=1
return 0
@@ -3720,9 +3683,20 @@ function +vi-hg-bookmarks() {
function +vi-vcs-detect-changes() {
if [[ "${hook_com[vcs]}" == "git" ]]; then
+
local remote="$(git ls-remote --get-url 2> /dev/null)"
- _p9k_vcs_icon "$remote"
- vcs_visual_identifier=$_p9k__ret
+ if [[ "$remote" =~ "github" ]] then
+ vcs_visual_identifier='VCS_GIT_GITHUB_ICON'
+ elif [[ "$remote" =~ "bitbucket" ]] then
+ vcs_visual_identifier='VCS_GIT_BITBUCKET_ICON'
+ elif [[ "$remote" =~ "stash" ]] then
+ vcs_visual_identifier='VCS_GIT_BITBUCKET_ICON'
+ elif [[ "$remote" =~ "gitlab" ]] then
+ vcs_visual_identifier='VCS_GIT_GITLAB_ICON'
+ else
+ vcs_visual_identifier='VCS_GIT_ICON'
+ fi
+
elif [[ "${hook_com[vcs]}" == "hg" ]]; then
vcs_visual_identifier='VCS_HG_ICON'
elif [[ "${hook_com[vcs]}" == "svn" ]]; then
@@ -3855,14 +3829,13 @@ function _p9k_vcs_status_purge() {
}
function _p9k_vcs_icon() {
- local pat icon
- for pat icon in "${(@)_POWERLEVEL9K_VCS_GIT_REMOTE_ICONS}"; do
- if [[ $1 == $~pat ]]; then
- _p9k__ret=$icon
- return
- fi
- done
- _p9k__ret=
+ case "$VCS_STATUS_REMOTE_URL" in
+ *github*) _p9k__ret=VCS_GIT_GITHUB_ICON;;
+ *bitbucket*) _p9k__ret=VCS_GIT_BITBUCKET_ICON;;
+ *stash*) _p9k__ret=VCS_GIT_BITBUCKET_ICON;;
+ *gitlab*) _p9k__ret=VCS_GIT_GITLAB_ICON;;
+ *) _p9k__ret=VCS_GIT_ICON;;
+ esac
}
function _p9k_vcs_render() {
@@ -3892,7 +3865,7 @@ function _p9k_vcs_render() {
state=CLEAN
fi
fi
- _p9k_vcs_icon "$VCS_STATUS_REMOTE_URL"
+ _p9k_vcs_icon
_p9k_prompt_segment prompt_vcs_$state "${__p9k_vcs_states[$state]}" "$_p9k_color1" "$_p9k__ret" 0 '' ""
return 0
fi
@@ -3945,8 +3918,8 @@ function _p9k_vcs_render() {
fi
# It's weird that removing vcs-detect-changes from POWERLEVEL9K_VCS_GIT_HOOKS gets rid
- # of the GIT icon. That's what vcs_info does, so we do the same in the name of compatibility.
- _p9k_vcs_icon "$VCS_STATUS_REMOTE_URL"
+ # of the GIT icon. That's what vcs_info does, so we do the same in the name of compatiblity.
+ _p9k_vcs_icon
icon=$_p9k__ret
fi
@@ -4243,49 +4216,6 @@ instant_prompt_vi_mode() {
fi
}
-# Chezmoi shell indicator: https://www.chezmoi.io/
-prompt_chezmoi_shell() {
- _p9k_prompt_segment $0 blue $_p9k_color1 CHEZMOI_ICON 0 '' ''
-}
-
-_p9k_prompt_chezmoi_shell_init() {
- typeset -g "_p9k__segment_cond_${_p9k__prompt_side}[_p9k__segment_index]"='$CHEZMOI'
-}
-
-function instant_prompt_chezmoi_shell() {
- _p9k_prompt_segment prompt_chezmoi_shell blue $_p9k_color1 CHEZMOI_ICON 1 '$CHEZMOI_ICON' ''
-}
-
-function _p9k_parse_virtualenv_cfg() {
- typeset -ga reply=(0)
- [[ -f $1 && -r $1 ]] || return
-
- local cfg
- cfg=$(<$1) || return
-
- local -a match mbegin mend
- [[ $'\n'$cfg$'\n' == (#b)*$'\n'prompt[$' \t']#=([^$'\n']#)$'\n'* ]] || return
- local res=${${match[1]##[$' \t']#}%%[$' \t']#}
- if [[ $res == (\"*\"|\'*\') ]]; then
- # The string is quoted in python style, which isn't the same as quoting in zsh.
- # For example, the literal 'foo"\'bar' denotes foo"'bar in python but in zsh
- # it is malformed.
- #
- # We cheat a bit and impelement not exactly correct unquoting. It may produce
- # different visual results but won't perform unintended expansions or bleed out
- # any escape sequences.
- #
- # Note that venv performs unusual and obviously unintended expansions on the
- # value of `prompt`: single-word expansions are performed twice by `activate`,
- # and then again on every prompt if `prompt_subst` is in effect. While in general
- # I am OK with being bug-compatible with other software, the bugs in venv are a
- # bit too extreme for my comfort. I am going to disable all expansions and
- # display the configured prompt literally.
- res=${(Vg:e:)${res[2,-2]}}
- fi
- reply=(1 "$res")
-}
-
################################################################
# Virtualenv: current working virtualenv
# More information on virtualenv (Python):
@@ -4295,21 +4225,11 @@ prompt_virtualenv() {
if (( _POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION )) && _p9k_python_version; then
msg="${_p9k__ret//\%/%%} "
fi
- local cfg=$VIRTUAL_ENV/pyvenv.cfg
- if ! _p9k_cache_stat_get $0 $cfg; then
- local -a reply
- _p9k_parse_virtualenv_cfg $cfg
- _p9k_cache_stat_set "${reply[@]}"
- fi
- if (( _p9k__cache_val[1] )); then
- local v=$_p9k__cache_val[2]
- else
- local v=${VIRTUAL_ENV:t}
- if [[ $VIRTUAL_ENV_PROMPT == '('?*') ' && $VIRTUAL_ENV_PROMPT != "($v) " ]]; then
- v=$VIRTUAL_ENV_PROMPT[2,-3]
- elif [[ $v == $~_POWERLEVEL9K_VIRTUALENV_GENERIC_NAMES ]]; then
- v=${VIRTUAL_ENV:h:t}
- fi
+ local v=${VIRTUAL_ENV:t}
+ if [[ $VIRTUAL_ENV_PROMPT == '('?*') ' && $VIRTUAL_ENV_PROMPT != "($v) " ]]; then
+ v=$VIRTUAL_ENV_PROMPT[2,-3]
+ elif [[ $v == $~_POWERLEVEL9K_VIRTUALENV_GENERIC_NAMES ]]; then
+ v=${VIRTUAL_ENV:h:t}
fi
msg+="$_POWERLEVEL9K_VIRTUALENV_LEFT_DELIMITER${v//\%/%%}$_POWERLEVEL9K_VIRTUALENV_RIGHT_DELIMITER"
case $_POWERLEVEL9K_VIRTUALENV_SHOW_WITH_PYENV in
@@ -4380,7 +4300,7 @@ function _p9k_pyenv_compute() {
fi
fi
if [[ -z $_p9k__ret ]]; then
- _p9k_upglob .python-version -.
+ _p9k_upglob .python-version
local -i idx=$?
if (( idx )) && _p9k_read_pyenv_like_version_file $_p9k__parent_dirs[idx]/.python-version python-; then
(( ${_POWERLEVEL9K_PYENV_SOURCES[(I)local]} )) || return
@@ -4460,7 +4380,7 @@ prompt_goenv() {
fi
fi
if [[ -z $_p9k__ret ]]; then
- _p9k_upglob .go-version -.
+ _p9k_upglob .go-version
local -i idx=$?
if (( idx )) && _p9k_read_pyenv_like_version_file $_p9k__parent_dirs[idx]/.go-version go-; then
(( ${_POWERLEVEL9K_GOENV_SOURCES[(I)local]} )) || return
@@ -4544,7 +4464,7 @@ prompt_kubecontext() {
{
(( pos <= $#cfg )) || return
shift $pos cfg
- pos=${cfg[(i) name: ${(b)name}]}
+ pos=${cfg[(i) name: $name]}
(( pos <= $#cfg )) || return
(( --pos ))
for ((; pos > 0; --pos)); do
@@ -4579,7 +4499,7 @@ prompt_kubecontext() {
text=$cloud_cluster
fi
# arn:aws:eks:us-east-1:123456789012:cluster/cluster-01
- elif [[ $cluster == (#b)arn:aws[[:alnum:]-]#:eks:([[:alnum:]-]##):([[:digit:]]##):cluster/(?*) ]]; then
+ elif [[ $cluster == (#b)arn:aws:eks:([[:alnum:]-]##):([[:digit:]]##):cluster/(?*) ]]; then
cloud_name=eks
cloud_zone=$match[1]
cloud_account=$match[2]
@@ -4645,7 +4565,7 @@ _p9k_prompt_dropbox_init() {
# print Java version number
prompt_java_version() {
if (( _POWERLEVEL9K_JAVA_VERSION_PROJECT_ONLY )); then
- _p9k_upglob 'pom.xml|build.gradle.kts|build.sbt|deps.edn|project.clj|build.boot|*.(java|class|jar|gradle|clj|cljc)' -. && return
+ _p9k_upglob 'pom.xml|build.gradle.kts|build.sbt|deps.edn|project.clj|build.boot|*.(java|class|jar|gradle|clj|cljc)' && return
fi
local java=$commands[java]
@@ -4666,10 +4586,9 @@ _p9k_prompt_java_version_init() {
}
prompt_azure() {
- local name cfg=${AZURE_CONFIG_DIR:-$HOME/.azure}/azureProfile.json
- if _p9k_cache_stat_get $0 $cfg; then
- name=$_p9k__cache_val[1]
- else
+ local cfg=${AZURE_CONFIG_DIR:-$HOME/.azure}/azureProfile.json
+ if ! _p9k_cache_stat_get $0 $cfg; then
+ local name
if (( $+commands[jq] )) && name="$(jq -r '[.subscriptions[]|select(.isDefault==true)|.name][]|strings' $cfg 2>/dev/null)"; then
name=${name%%$'\n'*}
elif ! name="$(az account show --query name --output tsv 2>/dev/null)"; then
@@ -4677,7 +4596,6 @@ prompt_azure() {
fi
_p9k_cache_stat_set "$name"
fi
- [[ -n $name ]] || return
local pat class state
for pat class in "${_POWERLEVEL9K_AZURE_CLASSES[@]}"; do
if [[ $name == ${~pat} ]]; then
@@ -4685,7 +4603,8 @@ prompt_azure() {
break
fi
done
- _p9k_prompt_segment "$0$state" "blue" "white" "AZURE_ICON" 0 '' "${name//\%/%%}"
+ [[ -n $_p9k__cache_val[1] ]] || return
+ _p9k_prompt_segment "$0$state" "blue" "white" "AZURE_ICON" 0 '' "${_p9k__cache_val[1]//\%/%%}"
}
_p9k_prompt_azure_init() {
@@ -4709,9 +4628,9 @@ _p9k_gcloud_prefetch() {
# P9K_GCLOUD_PROJECT is deprecated; it's always equal to P9K_GCLOUD_PROJECT_ID
unset P9K_GCLOUD_CONFIGURATION P9K_GCLOUD_ACCOUNT P9K_GCLOUD_PROJECT P9K_GCLOUD_PROJECT_ID P9K_GCLOUD_PROJECT_NAME
(( $+commands[gcloud] )) || return
- _p9k_read_word ${CLOUDSDK_CONFIG:-~/.config/gcloud}/active_config || return
+ _p9k_read_word ~/.config/gcloud/active_config || return
P9K_GCLOUD_CONFIGURATION=$_p9k__ret
- if ! _p9k_cache_stat_get $0 ${CLOUDSDK_CONFIG:-~/.config/gcloud}/configurations/config_$P9K_GCLOUD_CONFIGURATION; then
+ if ! _p9k_cache_stat_get $0 ~/.config/gcloud/configurations/config_$P9K_GCLOUD_CONFIGURATION; then
local pair account project_id
pair="$(gcloud config configurations describe $P9K_GCLOUD_CONFIGURATION \
--format=$'value[separator="\1"](properties.core.account,properties.core.project)')"
@@ -4955,18 +4874,6 @@ function instant_prompt_ranger() {
_p9k_prompt_segment prompt_ranger $_p9k_color1 yellow RANGER_ICON 1 '$RANGER_LEVEL' '$RANGER_LEVEL'
}
-function prompt_yazi() {
- _p9k_prompt_segment $0 $_p9k_color1 yellow YAZI_ICON 0 '' $YAZI_LEVEL
-}
-
-_p9k_prompt_yazi_init() {
- typeset -g "_p9k__segment_cond_${_p9k__prompt_side}[_p9k__segment_index]"='$YAZI_LEVEL'
-}
-
-function instant_prompt_yazi() {
- _p9k_prompt_segment prompt_yazi $_p9k_color1 yellow YAZI_ICON 1 '$YAZI_LEVEL' '$YAZI_LEVEL'
-}
-
function prompt_midnight_commander() {
local -i len=$#_p9k__prompt _p9k__has_upglob
_p9k_prompt_segment $0 $_p9k_color1 yellow MIDNIGHT_COMMANDER_ICON 0 '' ''
@@ -4993,18 +4900,6 @@ function instant_prompt_nnn() {
_p9k_prompt_segment prompt_nnn 6 $_p9k_color1 NNN_ICON 1 '${NNNLVL:#0}' '$NNNLVL'
}
-function prompt_lf() {
- _p9k_prompt_segment $0 6 $_p9k_color1 LF_ICON 0 '' $LF_LEVEL
-}
-
-_p9k_prompt_lf_init() {
- typeset -g "_p9k__segment_cond_${_p9k__prompt_side}[_p9k__segment_index]"='${LF_LEVEL:#0}'
-}
-
-function instant_prompt_lf() {
- _p9k_prompt_segment prompt_lf 6 $_p9k_color1 LF_ICON 1 '${LF_LEVEL:#0}' '$LF_LEVEL'
-}
-
function prompt_xplr() {
local -i len=$#_p9k__prompt _p9k__has_upglob
_p9k_prompt_segment $0 6 $_p9k_color1 XPLR_ICON 0 '' ''
@@ -5038,11 +4933,11 @@ function prompt_nix_shell() {
}
_p9k_prompt_nix_shell_init() {
- typeset -g "_p9k__segment_cond_${_p9k__prompt_side}[_p9k__segment_index]"=$_p9k_nix_shell_cond
+ typeset -g "_p9k__segment_cond_${_p9k__prompt_side}[_p9k__segment_index]"='${IN_NIX_SHELL:#0}'
}
function instant_prompt_nix_shell() {
- _p9k_prompt_segment prompt_nix_shell 4 $_p9k_color1 NIX_SHELL_ICON 1 "$_p9k_nix_shell_cond" '${(M)IN_NIX_SHELL:#(pure|impure)}'
+ _p9k_prompt_segment prompt_nix_shell 4 $_p9k_color1 NIX_SHELL_ICON 1 '${IN_NIX_SHELL:#0}' '${(M)IN_NIX_SHELL:#(pure|impure)}'
}
function prompt_terraform() {
@@ -5066,16 +4961,12 @@ _p9k_prompt_terraform_init() {
}
function prompt_terraform_version() {
- local v cfg terraform=${commands[terraform]}
- _p9k_upglob .terraform-version -. || cfg=$_p9k__parent_dirs[$?]/.terraform-version
- if _p9k_cache_stat_get $0.$TFENV_TERRAFORM_VERSION $terraform $cfg; then
- v=$_p9k__cache_val[1]
- else
- v=${${"$(terraform --version 2>/dev/null)"#Terraform v}%%$'\n'*} || v=
- _p9k_cache_stat_set "$v"
- fi
+ _p9k_cached_cmd 0 '' terraform --version || return
+ local v=${_p9k__ret#Terraform v}
+ (( $#v < $#_p9k__ret )) || return
+ v=${v%%$'\n'*}
[[ -n $v ]] || return
- _p9k_prompt_segment $0 $_p9k_color1 blue TERRAFORM_ICON 0 '' ${v//\%/%%}
+ _p9k_prompt_segment $0 $_p9k_color1 blue TERRAFORM_ICON 0 '' $v
}
_p9k_prompt_terraform_version_init() {
@@ -5097,18 +4988,18 @@ _p9k_prompt_proxy_init() {
function prompt_direnv() {
local -i len=$#_p9k__prompt _p9k__has_upglob
- _p9k_prompt_segment $0 $_p9k_color1 yellow DIRENV_ICON 0 '${DIRENV_DIR-}' ''
+ _p9k_prompt_segment $0 $_p9k_color1 yellow DIRENV_ICON 0 '$DIRENV_DIR' ''
(( _p9k__has_upglob )) || typeset -g "_p9k__segment_val_${_p9k__prompt_side}[_p9k__segment_index]"=$_p9k__prompt[len+1,-1]
}
_p9k_prompt_direnv_init() {
# DIRENV_DIR is set in a precmd hook. If our hook isn't the last, DIRENV_DIR might
# still get set before prompt is expanded.
- typeset -g "_p9k__segment_cond_${_p9k__prompt_side}[_p9k__segment_index]"='${DIRENV_DIR-${precmd_functions[-1]:#_p9k_precmd}}'
+ typeset -g "_p9k__segment_cond_${_p9k__prompt_side}[_p9k__segment_index]"='${DIRENV_DIR:-${precmd_functions[-1]:#_p9k_precmd}}'
}
function instant_prompt_direnv() {
- if [[ -n ${DIRENV_DIR:-} && $precmd_functions[-1] == _p9k_precmd ]]; then
+ if [[ -n $DIRENV_DIR && $precmd_functions[-1] == _p9k_precmd ]]; then
_p9k_prompt_segment prompt_direnv $_p9k_color1 yellow DIRENV_ICON 0 '' ''
fi
}
@@ -5124,11 +5015,8 @@ function _p9k_timewarrior_clear() {
}
function prompt_timewarrior() {
- local dir
- [[ -n ${dir::=$TIMEWARRIORDB} || -n ${dir::=~/.timewarrior}(#q-/N) ]] ||
- dir=${XDG_DATA_HOME:-~/.local/share}/timewarrior
- dir+=/data
local -a stat
+ local dir=${TIMEWARRIORDB:-~/.timewarrior}/data
[[ $dir == $_p9k_timewarrior_dir ]] || _p9k_timewarrior_clear
if [[ -n $_p9k_timewarrior_file_name ]]; then
zstat -A stat +mtime -- $dir $_p9k_timewarrior_file_name 2>/dev/null || stat=()
@@ -5234,10 +5122,7 @@ function _p9k_taskwarrior_check_data() {
}
function _p9k_taskwarrior_init_data() {
- local -a stat files=(
- $_p9k_taskwarrior_data_dir/{pending,completed}.data
- $_p9k_taskwarrior_data_dir/taskchampion.sqlite3
- )
+ local -a stat files=($_p9k_taskwarrior_data_dir/{pending,completed}.data)
_p9k_taskwarrior_data_files=($^files(N))
_p9k_taskwarrior_data_non_files=(${files:|_p9k_taskwarrior_data_files})
if (( $#_p9k_taskwarrior_data_files )); then
@@ -5264,9 +5149,7 @@ function _p9k_taskwarrior_init_data() {
local -a ts
ts=($(command task +PENDING -OVERDUE list rc.verbose=nothing rc.color=0 rc._forcecolor=0 \
rc.report.list.labels= rc.report.list.columns=due.epoch /dev/null)) || ts=()
- # The second condition is a workaround for a bug in taskwarrior v3.0.1.
- # https://github.com/romkatv/powerlevel10k/issues/2648.
- if (( $#ts && ! ${#${(@)ts:#(|-)<->(|.<->)}} )); then
+ if (( $#ts )); then
_p9k_taskwarrior_next_due=${${(on)ts}[1]}
(( _p9k_taskwarrior_next_due > EPOCHSECONDS )) || _p9k_taskwarrior_next_due=$((EPOCHSECONDS+60))
fi
@@ -5715,7 +5598,7 @@ prompt_haskell_stack() {
_p9k_haskell_stack_version $STACK_YAML
else
(( ${_POWERLEVEL9K_HASKELL_STACK_SOURCES[(I)local|global]} )) || return
- if _p9k_upglob stack.yaml -.; then
+ if _p9k_upglob stack.yaml; then
(( _POWERLEVEL9K_HASKELL_STACK_PROMPT_ALWAYS_SHOW )) || return
(( ${_POWERLEVEL9K_HASKELL_STACK_SOURCES[(I)global]} )) || return
_p9k_haskell_stack_version ${STACK_ROOT:-~/.stack}/global-project/stack.yaml
@@ -5742,64 +5625,6 @@ _p9k_prompt_haskell_stack_init() {
typeset -g "_p9k__segment_cond_${_p9k__prompt_side}[_p9k__segment_index]"='$commands[stack]'
}
-################################################################
-# CPU Architecture
-prompt_cpu_arch() {
- local -i len=$#_p9k__prompt _p9k__has_upglob
-
- local state text
- if _p9k_cache_ephemeral_get $0; then
- state=$_p9k__cache_val[1]
- text=$_p9k__cache_val[2]
- else
- local cmd
- for cmd in machine arch; do
- (( $+commands[$cmd] )) || continue
- if text=$(command -- $cmd) 2>/dev/null && [[ $text == [a-zA-Z][a-zA-Z0-9_]# ]]; then
- break
- else
- text=
- fi
- done
- state=_${${(U)text}//İ/I}
- _p9k_cache_ephemeral_set "$state" "$text"
- fi
- if [[ -n $text ]]; then
- _p9k_prompt_segment "$0$state" "yellow" "$_p9k_color1" 'ARCH_ICON' 0 '' "$text"
- fi
-
- (( _p9k__has_upglob )) || typeset -g "_p9k__segment_val_${_p9k__prompt_side}[_p9k__segment_index]"=$_p9k__prompt[len+1,-1]
-}
-
-_p9k_prompt_cpu_arch_init() {
- typeset -g "_p9k__segment_cond_${_p9k__prompt_side}[_p9k__segment_index]"='$commands[machine]$commands[arch]'
-}
-
-################################################################
-# Oh My Zsh per-directory-history local/global indicator
-prompt_per_directory_history() {
- if [[ $_per_directory_history_is_global == true ]]; then
- _p9k_prompt_segment ${0}_GLOBAL 3 $_p9k_color1 HISTORY_ICON 0 '' global
- else
- _p9k_prompt_segment ${0}_LOCAL 5 $_p9k_color1 HISTORY_ICON 0 '' local
- fi
-}
-
-instant_prompt_per_directory_history() {
- case $HISTORY_START_WITH_GLOBAL in
- true)
- _p9k_prompt_segment prompt_per_directory_history_GLOBAL 3 $_p9k_color1 HISTORY_ICON 0 '' global
- ;;
- ?*)
- _p9k_prompt_segment prompt_per_directory_history_LOCAL 5 $_p9k_color1 HISTORY_ICON 0 '' local
- ;;
- esac
-}
-
-_p9k_prompt_per_directory_history_init() {
- typeset -g "_p9k__segment_cond_${_p9k__prompt_side}[_p9k__segment_index]"='$PER_DIRECTORY_HISTORY_TOGGLE'
-}
-
# Use two preexec hooks to survive https://github.com/MichaelAquilina/zsh-you-should-use with
# YSU_HARDCORE=1. See https://github.com/romkatv/powerlevel10k/issues/427.
_p9k_preexec1() {
@@ -5853,19 +5678,19 @@ function _p9k_prompt_net_iface_async() {
# netstat -inbI en0
local iface ip line var
typeset -a iface2ip ips ifaces
- if (( $+commands[ip] )) && [[ $+commands[ifconfig] == 0 || $OSTYPE == linux* ]]; then
- for line in ${(f)"$(command ip -4 a show 2>/dev/null)"}; do
- if [[ $line == (#b)<->:[[:space:]]##([^:]##):[[:space:]]##\<([^\>]#)\>* ]]; then
- [[ ,$match[2], == *,UP,* ]] && iface=$match[1] || iface=
+ if (( $+commands[ifconfig] )); then
+ for line in ${(f)"$(command ifconfig 2>/dev/null)"}; do
+ if [[ $line == (#b)([^[:space:]]##):[[:space:]]##flags=([[:xdigit:]]##)'<'* ]]; then
+ [[ $match[2] == *[13579bdfBDF] ]] && iface=$match[1] || iface=
elif [[ -n $iface && $line == (#b)[[:space:]]##inet[[:space:]]##([0-9.]##)* ]]; then
iface2ip+=($iface $match[1])
iface=
fi
done
- elif (( $+commands[ifconfig] )); then
- for line in ${(f)"$(command ifconfig 2>/dev/null)"}; do
- if [[ $line == (#b)([^[:space:]]##):[[:space:]]##flags=([[:xdigit:]]##)'<'* ]]; then
- [[ $match[2] == *[13579bdfBDF] ]] && iface=$match[1] || iface=
+ elif (( $+commands[ip] )); then
+ for line in ${(f)"$(command ip -4 a show 2>/dev/null)"}; do
+ if [[ $line == (#b)<->:[[:space:]]##([^:]##):[[:space:]]##\<([^\>]#)\>* ]]; then
+ [[ ,$match[2], == *,UP,* ]] && iface=$match[1] || iface=
elif [[ -n $iface && $line == (#b)[[:space:]]##inet[[:space:]]##([0-9.]##)* ]]; then
iface2ip+=($iface $match[1])
iface=
@@ -6155,7 +5980,7 @@ _p9k_set_instant_prompt() {
[[ -n $RPROMPT ]] || unset RPROMPT
}
-typeset -gri __p9k_instant_prompt_version=47
+typeset -gri __p9k_instant_prompt_version=45
_p9k_dump_instant_prompt() {
local user=${(%):-%n}
@@ -6189,7 +6014,7 @@ _p9k_dump_instant_prompt() {
typeset -gi __p9k_instant_prompt_disabled=1
[[ \$ZSH_VERSION == ${(q)ZSH_VERSION} && \$ZSH_PATCHLEVEL == ${(q)ZSH_PATCHLEVEL} &&
$screen \${(M)TERM:#(screen*|tmux*)} &&
- \${#\${(M)VTE_VERSION:#(<1-4602>|4801)}} == "${#${(M)VTE_VERSION:#(<1-4602>|4801)}}" &&
+ \${#\${(M)VTE_VERSION:#(<1-4602>|4801)}} == ${#${(M)VTE_VERSION:#(<1-4602>|4801)}} &&
\$POWERLEVEL9K_DISABLE_INSTANT_PROMPT != 'true' &&
\$POWERLEVEL9K_INSTANT_PROMPT != 'off' ]] || return
typeset -g __p9k_instant_prompt_param_sig=${(q+)_p9k__param_sig}
@@ -6691,12 +6516,7 @@ function _p9k_clear_instant_prompt() {
unset _z4h_saved_screen
fi
print -rn -- $terminfo[rc]${(%):-%b%k%f%s%u}$terminfo[ed]
- local unexpected=${${content//$'\e[?'<->'c'}//$'\e['<->' q'}
- unexpected=${(S)unexpected//$'\eP'(|*[^$'\e'])($'\e\e')#$'\e\\'}
- unexpected=${(S)unexpected//$'\e'[^$'\a\e']#($'\a'|$'\e\\')}
- # Visual Studio Code prints this garbage.
- unexpected=${${unexpected//$'\033[1;32mShell integration activated\033[0m\n'}//$'\r'}
- typeset -g P9K_STARTUP_CONSOLE_OUTPUT=("$content" "$unexpected")
+ local unexpected=${${${(S)content//$'\e[?'<->'c'}//$'\e['<->' q'}//$'\e'[^$'\a\e']#($'\a'|$'\e\\')}
if [[ -n $unexpected ]]; then
local omz1='[Oh My Zsh] Would you like to update? [Y/n]: '
local omz2='Updating Oh My Zsh'
@@ -6740,9 +6560,9 @@ function _p9k_clear_instant_prompt() {
echo -E - ""
echo -E - "${(%):-For details, see:}"
if (( _p9k_term_has_href )); then
- echo - "${(%):-\e]8;;https://github.com/romkatv/powerlevel10k#instant-prompt\ahttps://github.com/romkatv/powerlevel10k#instant-prompt\e]8;;\a}"
+ echo - "${(%):-\e]8;;https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt\ahttps://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt\e]8;;\a}"
else
- echo - "${(%):-https://github.com/romkatv/powerlevel10k#instant-prompt}"
+ echo - "${(%):-https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt}"
fi
echo -E - ""
echo - "${(%):-%3F-- console output produced during zsh initialization follows --%f}"
@@ -7158,7 +6978,7 @@ function _p9k_reset_prompt() {
zle .reset-prompt
(( ${+functions[z4h]} )) || zle -R
} always {
- (( _p9k__can_hide_cursor )) && print -rn -- $_p9k__cnorm
+ (( _p9k__can_hide_cursor )) && echoti cnorm
_p9k__cursor_hidden=0
}
fi
@@ -7170,14 +6990,14 @@ function _p9k_reset_prompt() {
# ZSH_PATCHLEVEL=zsh-5.4.2-159-gd8d9fee13. Released in 5.5.
#
# Fix: https://github.com/zsh-users/zsh/commit/64d13738357c9b9c212adbe17f271716abbcf6ea.
-# ZSH_PATCHLEVEL=zsh-5.7.1-50-g64d137383. Released in 5.7.2.
+# ZSH_PATCHLEVEL=zsh-5.7.1-50-g64d137383.
#
# Test: PROMPT="${(pl:$((COLUMNS))::-:)}<%1(l.%2(l.FAIL.PASS).FAIL)> " zsh -dfis <<= 50 ))
- [[ $ZSH_VERSION == 5.<5-7>* && $ZSH_VERSION != 5.7.<2->* ]]
+ is-at-least 5.5 && ! is-at-least 5.7.2
}
typeset -g _p9k__param_pat
@@ -7280,14 +7100,6 @@ _p9k_init_vars() {
typeset -gi _p9k__restore_prompt_fd
typeset -gi _p9k__redraw_fd
typeset -gi _p9k__can_hide_cursor=$(( $+terminfo[civis] && $+terminfo[cnorm] ))
- if (( _p9k__can_hide_cursor )); then
- # See https://github.com/romkatv/powerlevel10k/issues/1699
- if [[ $terminfo[cnorm] == *$'\e[?25h'(|'\e'*) ]]; then
- typeset -g _p9k__cnorm=$'\e[?25h'
- else
- typeset -g _p9k__cnorm=$terminfo[cnorm]
- fi
- fi
typeset -gi _p9k__cursor_hidden
typeset -gi _p9k__non_hermetic_expansion
typeset -g _p9k__time
@@ -7454,36 +7266,6 @@ _p9k_init_params() {
_p9k_declare -b POWERLEVEL9K_VCS_CONFLICTED_STATE 0
_p9k_declare -b POWERLEVEL9K_HIDE_BRANCH_ICON 0
_p9k_declare -b POWERLEVEL9K_VCS_HIDE_TAGS 0
- _p9k_declare -a POWERLEVEL9K_VCS_GIT_REMOTE_ICONS
- if (( $+_POWERLEVEL9K_VCS_GIT_REMOTE_ICONS )); then
- (( $#_POWERLEVEL9K_VCS_GIT_REMOTE_ICONS & 1 )) && _POWERLEVEL9K_VCS_GIT_REMOTE_ICONS+=('')
- else
- local domain= icon= domain2icon=(
- 'archlinux.org' VCS_GIT_ARCHLINUX_ICON
- 'dev.azure.com|visualstudio.com' VCS_GIT_AZURE_ICON
- 'bitbucket.org' VCS_GIT_BITBUCKET_ICON
- 'codeberg.org' VCS_GIT_CODEBERG_ICON
- 'debian.org' VCS_GIT_DEBIAN_ICON
- 'freebsd.org' VCS_GIT_FREEBSD_ICON
- 'freedesktop.org' VCS_GIT_FREEDESKTOP_ICON
- 'gitea.com|gitea.io' VCS_GIT_GITEA_ICON
- 'github.com' VCS_GIT_GITHUB_ICON
- 'gitlab.com' VCS_GIT_GITLAB_ICON
- 'gnome.org' VCS_GIT_GNOME_ICON
- 'gnu.org' VCS_GIT_GNU_ICON
- 'kde.org' VCS_GIT_KDE_ICON
- 'kernel.org' VCS_GIT_LINUX_ICON
- 'sr.ht' VCS_GIT_SOURCEHUT_ICON
- )
- typeset -ga _POWERLEVEL9K_VCS_GIT_REMOTE_ICONS
- for domain icon in "${domain2icon[@]}"; do
- _POWERLEVEL9K_VCS_GIT_REMOTE_ICONS+=(
- '(|[A-Za-z0-9][A-Za-z0-9+.-]#://)(|[^:/?#]#[.@])((#i)'$domain')(|[/:?#]*)'
- $icon
- )
- done
- _POWERLEVEL9K_VCS_GIT_REMOTE_ICONS+=('*' VCS_GIT_ICON)
- fi
_p9k_declare -i POWERLEVEL9K_CHANGESET_HASH_LENGTH 8
# Specifies the maximum number of elements in the cache. When the cache grows over this limit,
# it gets cleared. This is meant to avoid memory leaks when a rogue prompt is filling the cache
@@ -7632,7 +7414,7 @@ _p9k_init_params() {
_p9k_declare -s POWERLEVEL9K_IP_INTERFACE ""
: ${_POWERLEVEL9K_IP_INTERFACE:='.*'}
_p9k_segment_in_use ip || _POWERLEVEL9K_IP_INTERFACE=
- _p9k_declare -s POWERLEVEL9K_VPN_IP_INTERFACE "(gpd|wg|(.*tun)|tailscale)[0-9]*|(zt.*)"
+ _p9k_declare -s POWERLEVEL9K_VPN_IP_INTERFACE "(gpd|wg|(.*tun)|tailscale)[0-9]*)|(zt.*)"
: ${_POWERLEVEL9K_VPN_IP_INTERFACE:='.*'}
_p9k_segment_in_use vpn_ip || _POWERLEVEL9K_VPN_IP_INTERFACE=
_p9k_declare -b POWERLEVEL9K_VPN_IP_SHOW_ALL 0
@@ -7649,14 +7431,10 @@ _p9k_init_params() {
_p9k_declare -b POWERLEVEL9K_DOTNET_VERSION_PROJECT_ONLY 1
_p9k_declare -b POWERLEVEL9K_GO_VERSION_PROJECT_ONLY 1
_p9k_declare -b POWERLEVEL9K_RUST_VERSION_PROJECT_ONLY 1
- _p9k_declare -b POWERLEVEL9K_PERLBREW_PROJECT_ONLY 1
- _p9k_declare -b POWERLEVEL9K_PERLBREW_SHOW_PREFIX 0
_p9k_declare -b POWERLEVEL9K_JAVA_VERSION_PROJECT_ONLY 0
_p9k_declare -b POWERLEVEL9K_NODENV_PROMPT_ALWAYS_SHOW 0
_p9k_declare -a POWERLEVEL9K_NODENV_SOURCES -- shell local global
_p9k_declare -b POWERLEVEL9K_NODENV_SHOW_SYSTEM 1
- _p9k_declare -b POWERLEVEL9K_NVM_PROMPT_ALWAYS_SHOW 0
- _p9k_declare -b POWERLEVEL9K_NVM_SHOW_SYSTEM 1
_p9k_declare -b POWERLEVEL9K_RBENV_PROMPT_ALWAYS_SHOW 0
_p9k_declare -a POWERLEVEL9K_RBENV_SOURCES -- shell local global
_p9k_declare -b POWERLEVEL9K_RBENV_SHOW_SYSTEM 1
@@ -7700,10 +7478,6 @@ _p9k_init_params() {
_p9k_declare -b POWERLEVEL9K_RVM_SHOW_PREFIX 0
_p9k_declare -b POWERLEVEL9K_CHRUBY_SHOW_VERSION 1
_p9k_declare -b POWERLEVEL9K_CHRUBY_SHOW_ENGINE 1
- _p9k_declare -s POWERLEVEL9K_CHRUBY_SHOW_ENGINE_PATTERN
- if (( _POWERLEVEL9K_CHRUBY_SHOW_ENGINE )); then
- : ${_POWERLEVEL9K_CHRUBY_SHOW_ENGINE_PATTERN=*}
- fi
_p9k_declare -b POWERLEVEL9K_STATUS_CROSS 0
_p9k_declare -b POWERLEVEL9K_STATUS_OK 1
_p9k_declare -b POWERLEVEL9K_STATUS_OK_PIPE 1
@@ -7738,7 +7512,6 @@ _p9k_init_params() {
_p9k_declare -i POWERLEVEL9K_VCS_COMMITS_AHEAD_MAX_NUM -1
_p9k_declare -i POWERLEVEL9K_VCS_COMMITS_BEHIND_MAX_NUM -1
_p9k_declare -b POWERLEVEL9K_VCS_RECURSE_UNTRACKED_DIRS 0
- _p9k_declare -F POWERLEVEL9K_GITSTATUS_INIT_TIMEOUT_SEC 10
_p9k_declare -b POWERLEVEL9K_DISABLE_GITSTATUS 0
_p9k_declare -e POWERLEVEL9K_VI_INSERT_MODE_STRING "INSERT"
_p9k_declare -e POWERLEVEL9K_VI_COMMAND_MODE_STRING "NORMAL"
@@ -7804,12 +7577,6 @@ _p9k_init_params() {
# If set to true, time will update every second.
_p9k_declare -b POWERLEVEL9K_EXPERIMENTAL_TIME_REALTIME 0
- _p9k_declare -b POWERLEVEL9K_NIX_SHELL_INFER_FROM_PATH 0
- typeset -g _p9k_nix_shell_cond='${IN_NIX_SHELL:#0}'
- if (( _POWERLEVEL9K_NIX_SHELL_INFER_FROM_PATH )); then
- _p9k_nix_shell_cond+='${path[(r)/nix/store/*]}'
- fi
-
local -i i=1
while (( i <= $#_POWERLEVEL9K_LEFT_PROMPT_ELEMENTS )); do
local segment=${${(U)_POWERLEVEL9K_LEFT_PROMPT_ELEMENTS[i]}//İ/I}
@@ -7847,7 +7614,7 @@ function _p9k_on_widget_zle-keymap-select() { _p9k_check_visual_mode; __p9k_rese
function _p9k_on_widget_overwrite-mode() { _p9k_check_visual_mode; __p9k_reset_state=2; }
function _p9k_on_widget_vi-replace() { _p9k_check_visual_mode; __p9k_reset_state=2; }
-if [[ $ZSH_VERSION == (5.<3->*|<6->.*) ]]; then
+if is-at-least 5.3; then
function _p9k_check_visual_mode() {
[[ ${KEYMAP:-} == vicmd ]] || return 0
local region=${${REGION_ACTIVE:-0}/2/1}
@@ -7866,7 +7633,7 @@ function _p9k_on_widget_deactivate-region() { _p9k_check_visual_mode; }
function _p9k_on_widget_zle-line-init() {
(( _p9k__cursor_hidden )) || return 0
_p9k__cursor_hidden=0
- print -rn -- $_p9k__cnorm
+ echoti cnorm
}
function _p9k_on_widget_zle-line-finish() {
@@ -8024,7 +7791,7 @@ function _p9k_wrap_widgets() {
typeset -gir __p9k_widgets_wrapped=1
local -a widget_list
- if [[ $ZSH_VERSION == (5.<3->*|<6->.*) ]]; then
+ if is-at-least 5.3; then
local -aU widget_list=(
zle-line-pre-redraw
zle-line-init
@@ -8370,7 +8137,7 @@ _p9k_init_prompt() {
_p9k_all_params_eq '_POWERLEVEL9K_*WHITESPACE_BETWEEN_RIGHT_SEGMENTS' ' ' &&
_p9k_all_params_eq '_POWERLEVEL9K_*RIGHT_RIGHT_WHITESPACE' ' ' &&
_p9k_all_params_eq '_POWERLEVEL9K_*RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL' '' &&
- [[ $ZSH_VERSION != (5.7.<2->*|5.<8->*|<6->.*) ]]; then
+ ! is-at-least 5.7.2; then
_p9k_emulate_zero_rprompt_indent=1
_p9k_prompt_prefix_left+='${${:-${_p9k__real_zle_rprompt_indent:=$ZLE_RPROMPT_INDENT}${ZLE_RPROMPT_INDENT::=1}${_p9k__ind::=0}}+}'
_p9k_line_suffix_right[-1]='${_p9k__sss:+${_p9k__sss% }%E}}'
@@ -8382,17 +8149,9 @@ _p9k_init_prompt() {
if (( _POWERLEVEL9K_TERM_SHELL_INTEGRATION )); then
_p9k_prompt_prefix_left+=$'%{\e]133;A\a%}'
_p9k_prompt_suffix_left+=$'%{\e]133;B\a%}'
- if [[ $TERM_PROGRAM == WarpTerminal ]]; then
- _p9k_prompt_prefix_right=$'%{\e]133;P;k=r\a%}'$_p9k_prompt_prefix_right
- _p9k_prompt_suffix_right+=$'%{\e]133;B\a%}'
- fi
if (( $+_z4h_iterm_cmd && _z4h_can_save_restore_screen == 1 )); then
_p9k_prompt_prefix_left+=$'%{\ePtmux;\e\e]133;A\a\e\\%}'
_p9k_prompt_suffix_left+=$'%{\ePtmux;\e\e]133;B\a\e\\%}'
- if [[ $TERM_PROGRAM == WarpTerminal ]]; then
- _p9k_prompt_prefix_right=$'%{\ePtmux;\e\e]133;P;k=r\a\e\\%}'$_p9k_prompt_prefix_right
- _p9k_prompt_suffix_right+=$'%{\ePtmux;\e\e]133;B\a\e\\%}'
- fi
fi
fi
@@ -8469,9 +8228,8 @@ _p9k_init_ssh() {
#
# License: https://github.com/sindresorhus/pure/blob/e8abf9d37185ec9b7b4398ca9c5eba555a1028eb/license.
- [[ -n $P9K_SSH && $_P9K_SSH_TTY == $TTY ]] && return
+ [[ -n $P9K_SSH ]] && return
typeset -gix P9K_SSH=0
- typeset -gx _P9K_SSH_TTY=$TTY
if [[ -n $SSH_CLIENT || -n $SSH_TTY || -n $SSH_CONNECTION ]]; then
P9K_SSH=1
return 0
@@ -8499,10 +8257,9 @@ _p9k_init_toolbox() {
local name=(${(Q)${${(@M)${(f)"$(&2 echo -E - ""
>&2 echo -E - "${(%):- - %BRecommended%b: Change the way Powerlevel10k is loaded from %B$__p9k_zshrc_u%b.}"
if (( _p9k_term_has_href )); then
- >&2 echo - "${(%):- See \e]8;;https://github.com/romkatv/powerlevel10k#installation\ahttps://github.com/romkatv/powerlevel10k#installation\e]8;;\a.}"
+ >&2 echo - "${(%):- See \e]8;;https://github.com/romkatv/powerlevel10k/blob/master/README.md#installation\ahttps://github.com/romkatv/powerlevel10k/blob/master/README.md#installation\e]8;;\a.}"
else
- >&2 echo - "${(%):- See https://github.com/romkatv/powerlevel10k#installation.}"
+ >&2 echo - "${(%):- See https://github.com/romkatv/powerlevel10k/blob/master/README.md#installation.}"
fi
if (( $+zsh_defer_options )); then
>&2 echo -E - ""
@@ -9060,7 +8798,7 @@ _p9k_deinit() {
fi
(( $+_p9k__iterm2_precmd )) && functions[iterm2_precmd]=$_p9k__iterm2_precmd
(( $+_p9k__iterm2_decorate_prompt )) && functions[iterm2_decorate_prompt]=$_p9k__iterm2_decorate_prompt
- unset -m '(_POWERLEVEL9K_|P9K_|_p9k_)*~(P9K_SSH|_P9K_SSH_TTY|P9K_TOOLBOX_NAME|P9K_TTY|_P9K_TTY)'
+ unset -m '(_POWERLEVEL9K_|P9K_|_p9k_)*~(P9K_SSH|P9K_TOOLBOX_NAME|P9K_TTY|_P9K_TTY)'
[[ -n $__p9k_locale ]] || unset __p9k_locale
}
@@ -9069,7 +8807,7 @@ typeset -gi __p9k_configured=0
typeset -gri __p9k_instant_prompt_disabled=1
# `typeset -g` doesn't roundtrip in zsh prior to 5.4.
-if [[ $ZSH_VERSION == (5.<4->*|<6->.*) ]]; then
+if is-at-least 5.4; then
typeset -gri __p9k_dumps_enabled=1
else
typeset -gri __p9k_dumps_enabled=0
@@ -9082,8 +8820,6 @@ _p9k_precmd_first() {
if [[ -n $KITTY_SHELL_INTEGRATION && KITTY_SHELL_INTEGRATION[(wIe)no-prompt-mark] -eq 0 ]]; then
KITTY_SHELL_INTEGRATION+=' no-prompt-mark'
(( $+__p9k_force_term_shell_integration )) || typeset -gri __p9k_force_term_shell_integration=1
- elif [[ $TERM_PROGRAM == WarpTerminal ]]; then
- (( $+__p9k_force_term_shell_integration )) || typeset -gri __p9k_force_term_shell_integration=1
fi
typeset -ga precmd_functions=(${precmd_functions:#_p9k_precmd_first})
}
@@ -9483,9 +9219,6 @@ if [[ $__p9k_dump_file != $__p9k_instant_prompt_dump_file && -n $__p9k_instant_p
zf_rm -f -- $__p9k_instant_prompt_dump_file{,.zwc} 2>/dev/null
fi
-typeset -g P9K_VERSION=1.20.10
-unset VSCODE_SHELL_INTEGRATION
-
_p9k_init_ssh
_p9k_init_toolbox
prompt_powerlevel9k_setup
diff --git a/internal/wizard.zsh b/internal/wizard.zsh
index 8d20675c..5d6215a7 100644
--- a/internal/wizard.zsh
+++ b/internal/wizard.zsh
@@ -222,12 +222,7 @@ function hide_cursor() {
}
function show_cursor() {
- local cnorm=${terminfo[cnorm]-}
- if [[ $cnorm == *$'\e[?25h'(|'\e'*) ]]; then
- print -n '\e[?25h'
- else
- print -n $cnorm
- fi
+ echoti cnorm 2>/dev/null
}
function consume_input() {
@@ -744,7 +739,7 @@ function ask_python() {
return 0
}
-function ask_quotes() {
+function ask_arrow() {
add_widget 0 flowing -c %BDoes this look like%b "%2F><%f" %Bbut taller and "fatter?%b"
add_widget 0 print -P ""
add_widget 0 flowing -c -- "---> \u276F\u276E <---"
@@ -758,35 +753,6 @@ function ask_quotes() {
add_widget 2
add_widget 0 print -P "(r) Restart from the beginning."
ask ynr
- case $choice in
- r) return 1;;
- y) cap_quotes=1;;
- n) cap_quotes=0;;
- esac
- return 0
-}
-
-function ask_arrow() {
- # This condition holds as long as zsh is compiled with unicode 9 support.
- if (( ${(m)#${(g::)1}} != 1 )); then
- cap_arrow=0
- return
- fi
- [[ -n $2 ]] && add_widget 0 flowing -c "$2"
- add_widget 0 flowing -c %BDoes this look like an%b "%2Fupwards arrow%f%B?%b"
- add_widget 0 flowing -c reference: "$(href https://graphemica.com/%F0%9F%A0%89)"
- add_widget 0 print -P ""
- add_widget 0 flowing -c -- "---> $1 <---"
- add_widget 0 print -P ""
- add_widget 3
- add_widget 0 print -P "%B(y) Yes.%b"
- add_widget 0 print -P ""
- add_widget 1
- add_widget 0 print -P "%B(n) No.%b"
- add_widget 0 print -P ""
- add_widget 2
- add_widget 0 print -P "(r) Restart from the beginning."
- ask ynr
case $choice in
r) return 1;;
y) cap_arrow=1;;
@@ -795,35 +761,25 @@ function ask_arrow() {
return 0
}
-function print_indented() {
- local -i max_width=$1
- local text=$2
- local -i indent='(wizard_columns - max_width) / 2'
- print -P "${(l:$indent:: :)}$text"
-}
-
-function ask_width() {
- add_widget 0 flowing -c %BWhat digit is the%b "%2Fdownwards arrow%f" %Bpointing "at?%b"
+function ask_debian() {
+ add_widget 0 flowing -c %BDoes this look like a%b "%2FDebian logo%f" "%B(swirl/spiral)?%b"
+ add_widget 0 flowing -c reference: "$(href https://debian.org/logos/openlogo-nd.svg)"
add_widget 0 print -P ""
- add_widget 0 print_indented 11 '%3F\UF0734%f %3F\UF0734%f %3F\UF0734%f %2F\UF072E%f'
- add_widget 0 print_indented 11 ' 111222'
+ add_widget 0 flowing -c -- "---> \uF306 <---"
add_widget 0 print -P ""
add_widget 3
- add_widget 0 print -P "%B(1) It is pointing at '1'.%b"
+ add_widget 0 print -P "%B(y) Yes.%b"
add_widget 0 print -P ""
add_widget 1
- add_widget 0 print -P "%B(2) It is pointing at '2'.%b"
- add_widget 0 print -P ""
- add_widget 1
- add_widget 0 print -P "%B(3) Something else.%b"
+ add_widget 0 print -P "%B(n) No.%b"
add_widget 0 print -P ""
add_widget 2
add_widget 0 print -P "(r) Restart from the beginning."
- ask 123r
+ ask ynr
case $choice in
r) return 1;;
- 1) cap_arrow=1;;
- 2|3) cap_arrow=0;;
+ y) cap_debian=1;;
+ n) cap_debian=0;;
esac
return 0
}
@@ -949,9 +905,9 @@ function ask_charset() {
POWERLEVEL9K_ICON_PADDING=none
cap_diamond=0
cap_python=0
- cap_arrow=0
+ cap_debian=0
cap_lock=0
- cap_quotes=0
+ cap_arrow=0
;;
esac
return 0
@@ -1027,15 +983,6 @@ function ask_color() {
return 0
}
-function print_frame_marker() {
- local label="(1) $color_name[1]."
- local -i n='wizard_columns - 7'
- local -i m=$((n - $#label))
- print -P "${(l:$n:: :)}frame"
- print -P "%B$label%b${(l:$m:: :)} |"
- print -P "${(l:$n:: :)} v"
-}
-
function ask_ornaments_color() {
[[ $style != (rainbow|lean*) || $num_lines == 1 ]] && return
[[ $gap_char == ' ' && $left_frame == 0 && $right_frame == 0 ]] && return
@@ -1043,17 +990,10 @@ function ask_ornaments_color() {
[[ $gap_char != ' ' ]] && ornaments+=Connection
(( left_frame || right_frame )) && ornaments+=Frame
add_widget 0 flowing -c "%B${(j: & :)ornaments} Color%b"
- if (( left_frame || right_frame )); then
- add_widget 0 print_frame_marker
- add_widget 3 print -P "%B(1) $color_name[1].%b"
- add_prompt_n color=1
- add_widget 0 print
- add_widget 2
- else
- add_widget 1
- add_widget 0 print -P "%B(1) $color_name[1].%b"
- add_prompt color=1
- fi
+ add_widget 0 print
+ add_widget 1
+ add_widget 0 print -P "%B(1) $color_name[1].%b"
+ add_prompt color=1
add_widget 0 print -P "%B(2) $color_name[2].%b"
add_prompt color=2
add_widget 0 print -P "%B(3) $color_name[3].%b"
@@ -1075,19 +1015,19 @@ function ask_time() {
add_widget 0 flowing -c "%BShow current time?%b"
add_widget 0 print
add_widget 1
- add_widget 0 print -P "%B(n) No.%b"
+ add_widget 0 print -P "%B(1) No.%b"
add_prompt time=
- add_widget 0 print -P "%B(1) 12-hour format.%b"
- add_prompt time=$time_12h
add_widget 0 print -P "%B(2) 24-hour format.%b"
add_prompt time=$time_24h
+ add_widget 0 print -P "%B(3) 12-hour format.%b"
+ add_prompt time=$time_12h
add_widget 0 print -P "(r) Restart from the beginning."
- ask n12r
+ ask 123r
case $choice in
r) return 1;;
- n) time=;;
- 1) time=$time_12h; options+='12h time';;
+ 1) time=;;
2) time=$time_24h; options+='24h time';;
+ 3) time=$time_12h; options+='12h time';;
esac
return 0
}
@@ -1126,26 +1066,18 @@ function os_icon_name() {
if [[ -r /etc/os-release ]]; then
local lines=(${(f)"$(*|<6->.*) ]]; then
+ if ! is-at-least 5.4; then
instant_prompt=off
options+=instant_prompt=auto-off
return 0
@@ -1613,11 +1544,8 @@ function ask_config_overwrite() {
local tmpdir=/tmp
local tmpdir_u=/tmp
fi
- if (( ! $+commands[mktemp] )) ||
- ! config_backup=$(mktemp $tmpdir/$__p9k_cfg_basename.XXXXXXXXXX 2>/dev/null); then
- config_backup=$tmpdir/$__p9k_cfg_basename.$EPOCHREALTIME
- fi
- cp $__p9k_cfg_path $config_backup || quit -c
+ config_backup="$(mktemp $tmpdir/$__p9k_cfg_basename.XXXXXXXXXX)" || quit -c
+ cp $__p9k_cfg_path $config_backup || quit -c
config_backup_u=$tmpdir_u/${(q-)config_backup:t}
;;
esac
@@ -1686,10 +1614,7 @@ function ask_zshrc_edit() {
local tmpdir=/tmp
local tmpdir_u=/tmp
fi
- if (( ! $+commands[mktemp] )) ||
- ! zshrc_backup="$(mktemp $tmpdir/.zshrc.XXXXXXXXXX 2>/dev/null)"; then
- zshrc_backup=$tmpdir/.zshrc.$EPOCHREALTIME
- fi
+ zshrc_backup="$(mktemp $tmpdir/.zshrc.XXXXXXXXXX)" || quit -c
cp -p $__p9k_zshrc $zshrc_backup || quit -c
local -i writable=1
if [[ ! -w $zshrc_backup ]]; then
@@ -1747,8 +1672,6 @@ function generate_config() {
sub NORDVPN_VISUAL_IDENTIFIER_EXPANSION "'nord'"
uncomment 'typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION'
sub RANGER_VISUAL_IDENTIFIER_EXPANSION "'▲'"
- uncomment 'typeset -g POWERLEVEL9K_YAZI_VISUAL_IDENTIFIER_EXPANSION'
- sub YAZI_VISUAL_IDENTIFIER_EXPANSION "'▲'"
uncomment 'typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION'
sub KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION "'○'"
uncomment 'typeset -g POWERLEVEL9K_AZURE_VISUAL_IDENTIFIER_EXPANSION'
@@ -1770,14 +1693,9 @@ function generate_config() {
sub PYTHON_ICON "'🐍'"
fi
- case $POWERLEVEL9K_MODE in
- nerdfont-complete)
- sub BATTERY_STAGES "'\uf58d\uf579\uf57a\uf57b\uf57c\uf57d\uf57e\uf57f\uf580\uf581\uf578'"
- ;;
- nerdfont-v3)
- sub BATTERY_STAGES "'\UF008E\UF007A\UF007B\UF007C\UF007D\UF007E\UF007F\UF0080\UF0081\UF0082\UF0079'"
- ;;
- esac
+ if [[ $POWERLEVEL9K_MODE == nerdfont-complete ]]; then
+ sub BATTERY_STAGES "'\uf58d\uf579\uf57a\uf57b\uf57c\uf57d\uf57e\uf57f\uf580\uf581\uf578'"
+ fi
if [[ $style == (classic|rainbow) ]]; then
if [[ $style == classic ]]; then
@@ -1957,7 +1875,7 @@ function generate_config() {
command mkdir -p -- ${__p9k_cfg_path:h} || return
if [[ -e $__p9k_cfg_path ]]; then
- zf_rm -f -- $__p9k_cfg_path || return
+ unlink $__p9k_cfg_path || return
fi
print -lr -- "$header" "$lines[@]" >$__p9k_cfg_path
}
@@ -2033,7 +1951,7 @@ function check_zshrc_integration() {
local h9='"$ZDOTDIR"/.p10k.zsh'
local h10='$POWERLEVEL9K_CONFIG_FILE'
local h11='"$POWERLEVEL9K_CONFIG_FILE"'
- if [[ -n ${(@M)lines:#(#b)[^#]#([^[:IDENT:]]|)source[[:space:]]##(|--[[:space:]]##)($f1|$f2|$f3|$f4|$g1|$h0|$h1|$h2|$h3|$h4|$h5|$h6|$h7|$h8|$h9|$h10|$h11)(|[[:space:]]*|'#'*)} ]]; then
+ if [[ -n ${(@M)lines:#(#b)[^#]#([^[:IDENT:]]|)source[[:space:]]##($f1|$f2|$f3|$f4|$g1|$h0|$h1|$h2|$h3|$h4|$h5|$h6|$h7|$h8|$h9|$h10|$h11)(|[[:space:]]*|'#'*)} ]]; then
zshrc_has_cfg=1
fi
local pre='${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh'
@@ -2084,9 +2002,10 @@ else
_p9k_can_configure -q || return
fi
-zmodload zsh/terminfo zsh/datetime || return
+zmodload zsh/terminfo || return
+autoload -Uz is-at-least || return
-if [[ $ZSH_VERSION == (5.7.<1->*|5.<8->*|<6->.*) && $COLORTERM == (24bit|truecolor) ]]; then
+if is-at-least 5.7.1 && [[ $COLORTERM == (24bit|truecolor) ]]; then
local -ir has_truecolor=1
else
local -ir has_truecolor=0
@@ -2101,7 +2020,7 @@ while true; do
local gap_char=' ' prompt_char='❯' down_triangle='\uE0BC' up_triangle='\uE0BA' slanted_bar='\u2571'
local left_subsep= right_subsep= left_tail= right_tail= left_head= right_head= time=
local -i num_lines=2 empty_line=0 color=2 left_frame=1 right_frame=1 transient_prompt=0
- local -i cap_diamond=0 cap_python=0 cap_arrow=0 cap_lock=0 cap_quotes=0
+ local -i cap_diamond=0 cap_python=0 cap_debian=0 cap_lock=0 cap_arrow=0
local -a extra_icons=('' '' '')
local -a frame_color=(244 242 240 238)
local -a color_name=(Lightest Light Dark Darkest)
@@ -2115,7 +2034,7 @@ while true; do
unset pure_use_rprompt
- if [[ -o multibyte && $TERM != (dumb|linux) && $langinfo[CODESET] == (utf|UTF)(-|)8 ]]; then
+ if [[ $TERM != (dumb|linux) && $langinfo[CODESET] == (utf|UTF)(-|)8 ]]; then
ask_font || continue
ask_diamond || continue
if [[ $AWESOME_GLYPHS_LOADED == 1 ]]; then
@@ -2135,27 +2054,19 @@ while true; do
if (( cap_diamond )); then
POWERLEVEL9K_MODE=powerline
else
- ask_quotes || continue
- (( cap_quotes )) && POWERLEVEL9K_MODE=compatible || POWERLEVEL9K_MODE=ascii
+ ask_arrow || continue
+ (( cap_arrow )) && POWERLEVEL9K_MODE=compatible || POWERLEVEL9K_MODE=ascii
fi
fi
elif (( ! cap_diamond )); then
POWERLEVEL9K_MODE=awesome-fontconfig
else
- ask_arrow '\UF0737' || continue
- if (( cap_arrow )); then
- ask_width || continue
- fi
- if (( cap_arrow )); then
- POWERLEVEL9K_MODE=nerdfont-v3
+ ask_debian || continue
+ if (( cap_debian )); then
+ POWERLEVEL9K_MODE=nerdfont-complete
else
- ask_arrow '\uFC35' "Let's try another one." || continue
- if (( cap_arrow )); then
- POWERLEVEL9K_MODE=nerdfont-complete
- else
- POWERLEVEL9K_MODE=awesome-fontconfig
- ask_python || continue
- fi
+ POWERLEVEL9K_MODE=awesome-fontconfig
+ ask_python || continue
fi
fi
fi