Compare commits

..

No commits in common. 'master' and 'kitty' have entirely different histories.

@ -2,11 +2,6 @@
[![Gitter](https://badges.gitter.im/powerlevel10k/community.svg)]( [![Gitter](https://badges.gitter.im/powerlevel10k/community.svg)](
https://gitter.im/powerlevel10k/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) 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), Powerlevel10k is a theme for Zsh. It emphasizes [speed](#uncompromising-performance),
[flexibility](#extremely-customizable) and [out-of-the-box experience](#configuration-wizard). [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: Here's the relevant parameter for kubernetes context:
```zsh ```zsh
# Show prompt segment "kubecontext" only when the command you are typing invokes one of these tools. # Show prompt segment "kubecontext" only when the command you are typing
typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens' # 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 To customize when different prompt segments are shown, open `~/.p10k.zsh`, search for
@ -305,11 +301,10 @@ To ~~ridiculous~~ extravagant:
### Batteries included ### Batteries included
Powerlevel10k comes with dozens of built-in high quality prompt segments that can display Powerlevel10k comes with dozens of built-in high quality segments. When you run `p10k configure`
information from a variety of sources. When you run `p10k configure` and choose any style and choose any style except [Pure](#pure-compatibility), many of these segments get enabled by
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
default while others can be manually enabled by opening `~/.p10k.zsh` and uncommenting them. enable as many segments as you like. It won't slow down your prompt or Zsh startup.
You can enable as many segments as you like. It won't slow down your prompt or Zsh startup.
| Segment | Meaning | | 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) | | `battery` | internal battery state and charge level (yep, batteries *literally* included) |
| `command_execution_time` | duration (wall time) of the last command | | `command_execution_time` | duration (wall time) of the last command |
| `context` | user@hostname | | `context` | user@hostname |
| `cpu_arch` | CPU architecture |
| `dir` | current working directory | | `dir` | current working directory |
| `direnv` | [direnv](https://direnv.net/) status | | `direnv` | [direnv](https://direnv.net/) status |
| `disk_usage` | disk usage | | `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 | | `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 | | `nix_shell` | [nix shell](https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) indicator |
| `nnn` | [nnn](https://github.com/jarun/nnn) shell | | `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) | | `nodeenv` | node.js environment from [nodeenv](https://github.com/ekalinin/nodeenv) |
| `nodenv` | node.js environment from [nodenv](https://github.com/nodenv/nodenv) | | `nodenv` | node.js environment from [nodenv](https://github.com/nodenv/nodenv) |
| `node_version` | [node.js](https://nodejs.org/) version | | `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) | | `nvm` | node.js environment from [nvm](https://github.com/nvm-sh/nvm) |
| `os_icon` | your OS logo (apple for macOS, swirl for debian, etc.) | | `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) | | `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) | | `phpenv` | php environment from [phpenv](https://github.com/phpenv/phpenv) |
| `php_version` | [php](https://www.php.net/) version | | `php_version` | [php](https://www.php.net/) version |
| `plenv` | perl environment from [plenv](https://github.com/tokuhirom/plenv) | | `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) | | `pyenv` | python environment from [pyenv](https://github.com/pyenv/pyenv) |
| `ram` | free RAM | | `ram` | free RAM |
| `ranger` | [ranger](https://github.com/ranger/ranger) shell | | `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) | | `rbenv` | ruby environment from [rbenv](https://github.com/rbenv/rbenv) |
| `rust_version` | [rustc](https://www.rust-lang.org) version | | `rust_version` | [rustc](https://www.rust-lang.org) version |
| `rvm` | ruby environment from [rvm](https://rvm.io) | | `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 | | `status` | exit code of the last command |
| `swap` | used swap | | `swap` | used swap |
| `taskwarrior` | [taskwarrior](https://taskwarrior.org/) task count | | `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 | | `vcs` | Git repository status |
| `vim_shell` | [vim](https://www.vim.org/) shell (`:sh`) | | `vim_shell` | [vim](https://www.vim.org/) shell (`:sh`) |
| `virtualenv` | python environment from [venv](https://docs.python.org/3/library/venv.html) | | `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 | | `vpn_ip` | virtual private network indicator |
| `wifi` | WiFi speed | | `wifi` | WiFi speed |
| `xplr` | [xplr](https://github.com/sayanarijit/xplr) shell | | `xplr` | [xplr](https://github.com/sayanarijit/xplr) shell |
@ -404,11 +391,6 @@ it out of the box.
Type `p10k help segment` for reference. 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 *Tip*: Prefix names of your own segments with `my_` to avoid clashes with future versions of
Powerlevel10k. Powerlevel10k.
@ -419,18 +401,13 @@ Powerlevel10k.
- [Prezto](#prezto) - [Prezto](#prezto)
- [Zim](#zim) - [Zim](#zim)
- [Antibody](#antibody) - [Antibody](#antibody)
- [Antidote](#antidote)
- [Antigen](#antigen) - [Antigen](#antigen)
- [Zplug](#zplug) - [Zplug](#zplug)
- [Zgen](#zgen) - [Zgen](#zgen)
- [Zplugin](#zplugin) - [Zplugin](#zplugin)
- [Zinit](#zinit) - [Zinit](#zinit)
- [Zi](#zi)
- [Zap](#zap)
- [Homebrew](#homebrew) - [Homebrew](#homebrew)
- [Arch Linux](#arch-linux) - [Arch Linux](#arch-linux)
- [Alpine Linux](#alpine-linux)
- [Fig](#fig)
### Manual ### Manual
@ -439,8 +416,8 @@ git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>~/.zshrc
``` ```
Users in China can use the official mirror on gitee.com for faster download.<br> Users in mainland China can use the official mirror on gitee.com for faster download.<br>
中国用户可以使用 gitee.com 上的官方镜像加速下载. 中国大陆用户可以使用 gitee.com 上的官方镜像加速下载.
```zsh ```zsh
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ~/powerlevel10k 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 ```zsh
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k 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.<br> Users in mainland China can use the official mirror on gitee.com for faster download.<br>
中国用户可以使用 gitee.com 上的官方镜像加速下载. 中国大陆用户可以使用 gitee.com 上的官方镜像加速下载.
```zsh ```zsh
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k 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`. Add `antibody bundle romkatv/powerlevel10k` to `~/.zshrc`.
### Antidote
Add `romkatv/powerlevel10k` to `~/.zsh_plugins.txt`.
### Antigen ### Antigen
Add `antigen theme romkatv/powerlevel10k` to `~/.zshrc`. Make sure you have `antigen apply` 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 The use of `depth=1` ice is optional. Other types of ice are neither recommended nor officially
supported by Powerlevel10k. 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 ### Homebrew
```zsh ```zsh
brew install powerlevel10k brew install romkatv/powerlevel10k/powerlevel10k
echo "source $(brew --prefix)/share/powerlevel10k/powerlevel10k.zsh-theme" >>~/.zshrc echo "source $(brew --prefix)/opt/powerlevel10k/powerlevel10k.zsh-theme" >>~/.zshrc
``` ```
### Arch Linux ### Arch Linux
@ -537,23 +499,10 @@ echo 'source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme' >>~/.zs
referenced above is the official Powerlevel10k package. referenced above is the official Powerlevel10k package.
There is also [zsh-theme-powerlevel10k]( 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]( Historically, [it has been breaking often and for extended periods of time](
https://github.com/romkatv/powerlevel10k/pull/786). **Do not use it.** 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 ## Configuration
- [For new users](#for-new-users) - [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`. *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 - **Windows Console Host** (the old thing): Click the icon in the top left corner, then
*Properties → Font* and set *Font* to `MesloLGS NF`. *Properties → Font* and set *Font* to `MesloLGS NF`.
- **Windows Terminal** by Microsoft (the new thing): Open *Settings* (<kbd>Ctrl+,</kbd>), click - **Windows Terminal** by Microsoft (the new thing): Open `settings.json` (<kbd>Ctrl+Shift+,</kbd>),
either on the selected profile under *Profiles* or on *Defaults*, click *Appearance* and set search for `fontFace` and set the value to `MesloLGS NF` for every profile. If you don't find
*Font face* to `MesloLGS NF`. `fontFace`, add it under *profiles → defaults*. See [this settings file](
- **Conemu**: Open *Setup → General → Fonts* and set *Main console font* to `MesloLGS NF`. 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 → - **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 Color Scheme → Console Font*. Select *Use console font instead of the default* and set the font
name to `MesloLGS NF`. name to `MesloLGS NF`.
@ -683,7 +633,7 @@ If you are using a different terminal, proceed with manual font installation.
*Meslo Nerd Font*. *Meslo Nerd Font*.
- **Blink**: Type `config`, go to *Appearance*, tap *Add a new font*, tap *Open Gallery*, select - **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. *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* - **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) 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*. 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`. tab, uncheck *Use the system fixed width font* (if not already) and select `MesloLGS NF Regular`.
Exit the Preferences dialog by clicking *Close*. Exit the Preferences dialog by clicking *Close*.
- **MobaXterm**: Open *Settings**Configuration**Terminal* → (under *Terminal look and feel*) - **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 and change *Font* to `MesloLGS NF`.
of them through *Settings* → right click on an individual session → *Edit Session* → *Terminal
Settings* → *Font settings*.
- **Asbrú Connection Manager**: Open *Preferences → Local Shell Options → Look and Feel*, enable - **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`. *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 → 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 - **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 *Font* dropdown, select `MesloLGS NF` and click *OK*. Click *OK* to save the profile. Select the
new profile and click *Set as Default*. new profile and click *Set as Default*.
- **Alacritty**: Create or open `~/.config/alacritty/alacritty.toml` and add the following - **Alacritty**: Create or open `~/.config/alacritty/alacritty.yml` and add the following section
section to it: to it:
```toml ```yaml
[font.normal] font:
family = "MesloLGS NF" 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 ```text
font_family MesloLGS NF 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 After changing the config run `xrdb ~/.Xresources` to reload it. The new config is applied to
all new terminals. 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 1. Run `p10k configure` to generate a new `~/.p10k.zsh`. The old config may work
incorrectly with the new font. incorrectly with the new font.
@ -789,7 +695,7 @@ PR to expand the list!_
## Try it in Docker ## Try it in Docker
Try Powerlevel10k in Docker. You can safely make any changes to the file system while trying out 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 ```zsh
docker run -e TERM -e COLORTERM -e LC_ALL=C.UTF-8 -it --rm alpine sh -uec ' 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. The command to update Powerlevel10k depends on how it was installed.
| Installation | Update command | | Installation | Update command |
|-------------------------------|-------------------------------------------------------------| |---------------------------|-------------------------------------------------------------|
| [Manual](#manual) | `git -C ~/powerlevel10k pull` | | [Manual](#manual) | `git -C ~/powerlevel10k pull` |
| [Oh My Zsh](#oh-my-zsh) | `git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k pull` | | [Oh My Zsh](#oh-my-zsh) | `git -C ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k pull` |
| [Prezto](#prezto) | `zprezto-update` | | [Prezto](#prezto) | `zprezto-update` |
| [Zim](#zim) | `zimfw update` | | [Zim](#zim) | `zimfw update` |
| [Antigen](#antigen) | `antigen update` | | [Antigen](#antigen) | `antigen update` |
| [Antidote](#antidote) | `antidote update` | | [Zplug](#zplug) | `zplug update` |
| [Zplug](#zplug) | `zplug update` | | [Zgen](#zgen) | `zgen update` |
| [Zgen](#zgen) | `zgen update` | | [Zplugin](#zplugin) | `zplugin update` |
| [Zplugin](#zplugin) | `zplugin update` | | [Zinit](#zinit) | `zinit update` |
| [Zinit](#zinit) | `zinit update` | | [Homebrew](#homebrew) | `brew update && brew upgrade` |
| [Zi](#zi) | `zi update` | | [Arch Linux](#arch-linux) | `yay -S --noconfirm zsh-theme-powerlevel10k-git` |
| [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` |
**IMPORTANT**: Restart Zsh after updating Powerlevel10k. [Do not use `source ~/.zshrc`]( **IMPORTANT**: Restart Zsh after updating Powerlevel10k. [Do not use `source ~/.zshrc`](
#weird-things-happen-after-typing-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. 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. Refer to the [installation instructions](#installation) if you need a reminder.
| Installation | Uninstall command | | Installation | Uninstall command |
|-------------------------------|------------------------------------------------------------------| |---------------------------|------------------------------------------------------------------|
| [Manual](#manual) | `rm -rf ~/powerlevel10k` | | [Manual](#manual) | `rm -rf ~/powerlevel10k` |
| [Oh My Zsh](#oh-my-zsh) | `rm -rf -- ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k` | | [Oh My Zsh](#oh-my-zsh) | `rm -rf -- ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k` |
| [Prezto](#prezto) | n/a | | [Prezto](#prezto) | n/a |
| [Zim](#zim) | `zimfw uninstall` | | [Zim](#zim) | `zimfw uninstall` |
| [Antigen](#antigen) | `antigen purge romkatv/powerlevel10k` | | [Antigen](#antigen) | `antigen purge romkatv/powerlevel10k` |
| [Antidote](#antidote) | `antidote purge romkatv/powerlevel10k` | | [Zplug](#zplug) | `zplug clean` |
| [Zplug](#zplug) | `zplug clean` | | [Zgen](#zgen) | `zgen reset` |
| [Zgen](#zgen) | `zgen reset` | | [Zplugin](#zplugin) | `zplugin delete romkatv/powerlevel10k` |
| [Zplugin](#zplugin) | `zplugin delete romkatv/powerlevel10k` | | [Zinit](#zinit) | `zinit delete romkatv/powerlevel10k` |
| [Zinit](#zinit) | `zinit delete romkatv/powerlevel10k` | | [Homebrew](#homebrew) | `brew uninstall powerlevel10k; brew untap romkatv/powerlevel10k` |
| [Zi](#zi) | `zi delete romkatv/powerlevel10k` | | [Arch Linux](#arch-linux) | `yay -R --noconfirm zsh-theme-powerlevel10k-git` |
| [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` |
6. Restart Zsh. [Do not use `source ~/.zshrc`](#weird-things-happen-after-typing-source-zshrc). 6. Restart Zsh. [Do not use `source ~/.zshrc`](#weird-things-happen-after-typing-source-zshrc).
7. Delete Powerlevel10k cache files. 7. Delete Powerlevel10k cache files.
```zsh ```zsh
@ -987,8 +885,6 @@ Powerlevel10k does not affect:
- Prompt parameters other than `PS1` and `RPS1`. - Prompt parameters other than `PS1` and `RPS1`.
- Zsh options other than those [related to prompt]( - Zsh options other than those [related to prompt](
http://zsh.sourceforge.net/Doc/Release/Options.html#Prompting). 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? ### 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` | | `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}` | | `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` | | `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 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 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}` | | `⇠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 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 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, `~/.p10k.zsh`, search for `POWERLEVEL9K_VCS_LOADING_BACKGROUND`, uncomment it if it's commented out,
and change the value. 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. a relevant tool.
```zsh ```zsh
# Show prompt segment "kubecontext" only when the command you are typing invokes # Show prompt segment "kubecontext" only when the command you are typing
# invokes kubectl, helm, or kubens. # invokes kubectl, helm, kubens, kubectx, oc, istioctl, kogito, k9s, helmfile, flux, fluxctl or stern.
typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens' 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 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 if (( ${+POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND} )); then
unset POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND unset POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND
else 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 fi
p10k reload p10k reload
if zle; then 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. 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 ```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 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:* *Related:*
- [Directory is difficult to see in prompt when using Rainbow style.]( - [Directory is difficult to see in prompt when using Rainbow style.](
#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? ### Why does Powerlevel10k spawn extra processes?
@ -1525,7 +1407,6 @@ Powerlevel10k are released. This may change in the future but not soon.
## Troubleshooting ## Troubleshooting
- [`[oh-my-zsh] theme 'powerlevel10k/powerlevel10k' not found`](#oh-my-zsh-theme-powerlevel10kpowerlevel10k-not-found)
- [Question mark in prompt](#question-mark-in-prompt) - [Question mark in prompt](#question-mark-in-prompt)
- [Icons, glyphs or powerline symbols don't render](#icons-glyphs-or-powerline-symbols-dont-render) - [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) - [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) - [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) - [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) - [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) - [Horrific mess when resizing terminal window](#horrific-mess-when-resizing-terminal-window)
- [Icons cut off in Konsole](#icons-cut-off-in-konsole) - [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) - [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 ### 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 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`. 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 When a UTF-8 locale is available, the first few questions asked by the configuration wizard assess
`MULTIBYTE` shell option is disabled. *Fix*: Enable the `MULTIBYTE` option, or rather don't disable capabilities of the terminal font. If your answers indicate that some glyphs don't render correctly,
it (this option is enabled in Zsh by default). Verify with `print -r -- ${options[MULTIBYTE]}`. 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 `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
`p10k configure` and checking that all glyphs render correctly. `p10k configure` and checking that all glyphs render correctly.
### Cannot install the recommended font ### 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 `POWERLEVEL9K_DIR_ANCHOR_FOREGROUND` and `POWERLEVEL9K_DIR_ANCHOR_BOLD`. You can find them in
`~/.p10k.zsh`. `~/.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 ### Horrific mess when resizing terminal window
When you resize a terminal window horizontally back and forth a few times, you might see this ugly 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 ```zsh
typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='${P9K_CONTENT}' # not bold 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`.

@ -20,7 +20,7 @@
unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR' unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR'
# Zsh >= 5.1 is required. # 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. # The list of segments shown on the left. Fill it with the most important segments.
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=( typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
@ -65,7 +65,6 @@
luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv) luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv)
jenv # java version from jenv (https://github.com/jenv/jenv) jenv # java version from jenv (https://github.com/jenv/jenv)
plenv # perl version from plenv (https://github.com/tokuhirom/plenv) 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) phpenv # php version from phpenv (https://github.com/phpenv/phpenv)
scalaenv # scala version from scalaenv (https://github.com/scalaenv/scalaenv) scalaenv # scala version from scalaenv (https://github.com/scalaenv/scalaenv)
haskell_stack # haskell version from stack (https://haskellstack.org/) haskell_stack # haskell version from stack (https://haskellstack.org/)
@ -81,14 +80,11 @@
context # user@hostname context # user@hostname
nordvpn # nordvpn connection status, linux only (https://nordvpn.com/) nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
ranger # ranger shell (https://github.com/ranger/ranger) ranger # ranger shell (https://github.com/ranger/ranger)
yazi # yazi shell (https://github.com/sxyazi/yazi)
nnn # nnn shell (https://github.com/jarun/nnn) nnn # nnn shell (https://github.com/jarun/nnn)
lf # lf shell (https://github.com/gokcehan/lf)
xplr # xplr shell (https://github.com/sayanarijit/xplr) xplr # xplr shell (https://github.com/sayanarijit/xplr)
vim_shell # vim shell indicator (:sh) vim_shell # vim shell indicator (:sh)
midnight_commander # midnight commander shell (https://midnight-commander.org/) midnight_commander # midnight commander shell (https://midnight-commander.org/)
nix_shell # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) 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) # vi_mode # vi mode (you don't need this if you've enabled prompt_char)
# vpn_ip # virtual private network indicator # vpn_ip # virtual private network indicator
# load # CPU load # load # CPU load
@ -98,8 +94,6 @@
todo # todo items (https://github.com/todotxt/todo.txt-cli) todo # todo items (https://github.com/todotxt/todo.txt-cli)
timewarrior # timewarrior tracking status (https://timewarrior.net/) timewarrior # timewarrior tracking status (https://timewarrior.net/)
taskwarrior # taskwarrior task count (https://taskwarrior.org/) 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 # time # current time
# =========================[ Line #2 ]========================= # =========================[ Line #2 ]=========================
newline # \n newline # \n
@ -171,9 +165,6 @@
typeset -g POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='\uE0B0' typeset -g POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='\uE0B0'
# Separator between different-color segments on the right. # Separator between different-color segments on the right.
typeset -g POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR='\uE0B2' 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. # The right end of left prompt.
typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='\uE0B0' typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='\uE0B0'
# The left end of right prompt. # The left end of right prompt.
@ -243,7 +234,7 @@
.java-version .java-version
.perl-version .perl-version
.php-version .php-version
.tool-versions .tool-version
.shorten_folder_marker .shorten_folder_marker
.svn .svn
.terraform .terraform
@ -349,7 +340,7 @@
# typeset -g POWERLEVEL9K_DIR_PREFIX='%248Fin ' # typeset -g POWERLEVEL9K_DIR_PREFIX='%248Fin '
#####################################[ vcs: git status ]###################################### #####################################[ 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= typeset -g POWERLEVEL9K_VCS_BRANCH_ICON=
# Untracked files icon. It's really a question mark, your font isn't broken. # Untracked files icon. It's really a question mark, your font isn't broken.
@ -429,17 +420,11 @@
res+=" ${modified}wip" res+=" ${modified}wip"
fi fi
if (( VCS_STATUS_COMMITS_AHEAD || VCS_STATUS_COMMITS_BEHIND )); then # ⇣42 if behind the remote.
# ⇣42 if behind the remote. (( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}${VCS_STATUS_COMMITS_BEHIND}"
(( 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.
# ⇡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 && !VCS_STATUS_COMMITS_BEHIND )) && res+=" " (( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}${VCS_STATUS_COMMITS_AHEAD}"
(( 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 push remote. # ⇠42 if behind the push remote.
(( VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" ${clean}${VCS_STATUS_PUSH_COMMITS_BEHIND}" (( VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" ${clean}${VCS_STATUS_PUSH_COMMITS_BEHIND}"
(( VCS_STATUS_PUSH_COMMITS_AHEAD && !VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" " (( VCS_STATUS_PUSH_COMMITS_AHEAD && !VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" "
@ -729,12 +714,6 @@
typeset -g POWERLEVEL9K_RANGER_FOREGROUND=178 typeset -g POWERLEVEL9K_RANGER_FOREGROUND=178
# Custom icon. # Custom icon.
# typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐' # 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: nnn shell (https://github.com/jarun/nnn) ]#######################
# Nnn shell color. # Nnn shell color.
@ -742,12 +721,6 @@
# Custom icon. # Custom icon.
# typeset -g POWERLEVEL9K_NNN_VISUAL_IDENTIFIER_EXPANSION='⭐' # 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: xplr shell (https://github.com/sayanarijit/xplr) ]##################
# xplr shell color. # xplr shell color.
typeset -g POWERLEVEL9K_XPLR_FOREGROUND=72 typeset -g POWERLEVEL9K_XPLR_FOREGROUND=72
@ -770,21 +743,12 @@
# Nix shell color. # Nix shell color.
typeset -g POWERLEVEL9K_NIX_SHELL_FOREGROUND=74 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. # Tip: If you want to see just the icon without "pure" and "impure", uncomment the next line.
# typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION= # typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION=
# Custom icon. # Custom icon.
# typeset -g POWERLEVEL9K_NIX_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐' # 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 ]################################## ##################################[ disk_usage: disk usage ]##################################
# Colors for different levels of disk usage. # Colors for different levels of disk usage.
typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=35 typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=35
@ -811,8 +775,9 @@
# Text and color for insert vi mode. # Text and color for insert vi mode.
typeset -g POWERLEVEL9K_VI_INSERT_MODE_STRING= typeset -g POWERLEVEL9K_VI_INSERT_MODE_STRING=
typeset -g POWERLEVEL9K_VI_MODE_INSERT_FOREGROUND=66 typeset -g POWERLEVEL9K_VI_MODE_INSERT_FOREGROUND=66
# Custom icon. # Custom icon.
# typeset -g POWERLEVEL9K_VI_MODE_VISUAL_IDENTIFIER_EXPANSION='⭐' # typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐'
######################################[ ram: free RAM ]####################################### ######################################[ ram: free RAM ]#######################################
# RAM color. # RAM color.
@ -894,30 +859,6 @@
# Custom icon. # Custom icon.
# typeset -g POWERLEVEL9K_TASKWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐' # 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: user@hostname ]##################################
# Context color when running with privileges. # Context color when running with privileges.
typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=178 typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=178
@ -1043,11 +984,6 @@
##############[ nvm: node.js version from nvm (https://github.com/nvm-sh/nvm) ]############### ##############[ nvm: node.js version from nvm (https://github.com/nvm-sh/nvm) ]###############
# Nvm color. # Nvm color.
typeset -g POWERLEVEL9K_NVM_FOREGROUND=70 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. # Custom icon.
# typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐' # typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐'
@ -1197,16 +1133,6 @@
# Custom icon. # Custom icon.
# typeset -g POWERLEVEL9K_PLENV_VISUAL_IDENTIFIER_EXPANSION='⭐' # 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) ]############ ############[ phpenv: php version from phpenv (https://github.com/phpenv/phpenv) ]############
# PHP color. # PHP color.
typeset -g POWERLEVEL9K_PHPENV_FOREGROUND=99 typeset -g POWERLEVEL9K_PHPENV_FOREGROUND=99
@ -1289,7 +1215,7 @@
#############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]############# #############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]#############
# Show kubecontext only when the command you are typing invokes one of these tools. # Show kubecontext only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show kubecontext. # 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 # Kubernetes context classes for the purpose of using different colors, icons and expansions with
# different contexts. # different contexts.
@ -1376,7 +1302,7 @@
#[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]# #[ 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. # Show aws only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show aws. # 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 # 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. # 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. # Show azure only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show azure. # Tip: Remove the next line to always show azure.
typeset -g POWERLEVEL9K_AZURE_SHOW_ON_COMMAND='az|terraform|pulumi|terragrunt' 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. # Azure account name color.
typeset -g POWERLEVEL9K_AZURE_OTHER_FOREGROUND=32 typeset -g POWERLEVEL9K_AZURE_FOREGROUND=32
# Custom icon. # 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/) ]########### ##########[ gcloud: google cloud account and project (https://cloud.google.com/) ]###########
# Show gcloud only when the command you are typing invokes one of these tools. # 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= typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION=
# Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN # Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN
# to see the name of the interface. # 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 # 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. # 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. # 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 # 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 # 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 # 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 # 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. # it incompatible with your zsh configuration files.
# - quiet: Enable instant prompt and don't print warnings when detecting console output # - quiet: Enable instant prompt and don't print warnings when detecting console output
# during zsh initialization. Choose this if you've read and understood # 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 # - 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 # 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. # seen the warning, or if you are unsure what this all means.

@ -20,7 +20,7 @@
unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR' unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR'
# Zsh >= 5.1 is required. # 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. # The list of segments shown on the left. Fill it with the most important segments.
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=( typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
@ -65,7 +65,6 @@
luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv) luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv)
jenv # java version from jenv (https://github.com/jenv/jenv) jenv # java version from jenv (https://github.com/jenv/jenv)
plenv # perl version from plenv (https://github.com/tokuhirom/plenv) 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) phpenv # php version from phpenv (https://github.com/phpenv/phpenv)
scalaenv # scala version from scalaenv (https://github.com/scalaenv/scalaenv) scalaenv # scala version from scalaenv (https://github.com/scalaenv/scalaenv)
haskell_stack # haskell version from stack (https://haskellstack.org/) haskell_stack # haskell version from stack (https://haskellstack.org/)
@ -81,14 +80,11 @@
context # user@hostname context # user@hostname
nordvpn # nordvpn connection status, linux only (https://nordvpn.com/) nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
ranger # ranger shell (https://github.com/ranger/ranger) ranger # ranger shell (https://github.com/ranger/ranger)
yazi # yazi shell (https://github.com/sxyazi/yazi)
nnn # nnn shell (https://github.com/jarun/nnn) nnn # nnn shell (https://github.com/jarun/nnn)
lf # lf shell (https://github.com/gokcehan/lf)
xplr # xplr shell (https://github.com/sayanarijit/xplr) xplr # xplr shell (https://github.com/sayanarijit/xplr)
vim_shell # vim shell indicator (:sh) vim_shell # vim shell indicator (:sh)
midnight_commander # midnight commander shell (https://midnight-commander.org/) midnight_commander # midnight commander shell (https://midnight-commander.org/)
nix_shell # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) 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 # vpn_ip # virtual private network indicator
# load # CPU load # load # CPU load
# disk_usage # disk usage # disk_usage # disk usage
@ -97,8 +93,6 @@
todo # todo items (https://github.com/todotxt/todo.txt-cli) todo # todo items (https://github.com/todotxt/todo.txt-cli)
timewarrior # timewarrior tracking status (https://timewarrior.net/) timewarrior # timewarrior tracking status (https://timewarrior.net/)
taskwarrior # taskwarrior task count (https://taskwarrior.org/) 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 # time # current time
# =========================[ Line #2 ]========================= # =========================[ Line #2 ]=========================
newline # \n newline # \n
@ -234,7 +228,7 @@
.java-version .java-version
.perl-version .perl-version
.php-version .php-version
.tool-versions .tool-version
.shorten_folder_marker .shorten_folder_marker
.svn .svn
.terraform .terraform
@ -277,6 +271,10 @@
# the full directory that was used in previous commands. # the full directory that was used in previous commands.
typeset -g POWERLEVEL9K_DIR_HYPERLINK=false 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 # Enable special styling for non-writable and non-existent directories. See POWERLEVEL9K_LOCK_ICON
# and POWERLEVEL9K_DIR_CLASSES below. # and POWERLEVEL9K_DIR_CLASSES below.
typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=v3 typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=v3
@ -340,7 +338,7 @@
# typeset -g POWERLEVEL9K_DIR_PREFIX='%fin ' # typeset -g POWERLEVEL9K_DIR_PREFIX='%fin '
#####################################[ vcs: git status ]###################################### #####################################[ 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= typeset -g POWERLEVEL9K_VCS_BRANCH_ICON=
# Untracked files icon. It's really a question mark, your font isn't broken. # Untracked files icon. It's really a question mark, your font isn't broken.
@ -420,17 +418,11 @@
res+=" ${modified}wip" res+=" ${modified}wip"
fi fi
if (( VCS_STATUS_COMMITS_AHEAD || VCS_STATUS_COMMITS_BEHIND )); then # ⇣42 if behind the remote.
# ⇣42 if behind the remote. (( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}${VCS_STATUS_COMMITS_BEHIND}"
(( 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.
# ⇡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 && !VCS_STATUS_COMMITS_BEHIND )) && res+=" " (( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}${VCS_STATUS_COMMITS_AHEAD}"
(( 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 push remote. # ⇠42 if behind the push remote.
(( VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" ${clean}${VCS_STATUS_PUSH_COMMITS_BEHIND}" (( VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" ${clean}${VCS_STATUS_PUSH_COMMITS_BEHIND}"
(( VCS_STATUS_PUSH_COMMITS_AHEAD && !VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" " (( 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 # 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 # 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) typeset -g POWERLEVEL9K_VCS_BACKENDS=(git)
# These settings are used for repositories other than Git or when gitstatusd fails and # These settings are used for repositories other than Git or when gitstatusd fails and
@ -720,12 +712,6 @@
typeset -g POWERLEVEL9K_RANGER_FOREGROUND=3 typeset -g POWERLEVEL9K_RANGER_FOREGROUND=3
# Custom icon. # Custom icon.
# typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐' # 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: nnn shell (https://github.com/jarun/nnn) ]#######################
# Nnn shell color. # Nnn shell color.
@ -733,12 +719,6 @@
# Custom icon. # Custom icon.
# typeset -g POWERLEVEL9K_NNN_VISUAL_IDENTIFIER_EXPANSION='⭐' # 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: xplr shell (https://github.com/sayanarijit/xplr) ]##################
# xplr shell color. # xplr shell color.
typeset -g POWERLEVEL9K_XPLR_FOREGROUND=3 typeset -g POWERLEVEL9K_XPLR_FOREGROUND=3
@ -761,21 +741,12 @@
# Nix shell color. # Nix shell color.
typeset -g POWERLEVEL9K_NIX_SHELL_FOREGROUND=4 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. # Tip: If you want to see just the icon without "pure" and "impure", uncomment the next line.
# typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION= # typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION=
# Custom icon. # Custom icon.
# typeset -g POWERLEVEL9K_NIX_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐' # 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 ]################################## ##################################[ disk_usage: disk usage ]##################################
# Colors for different levels of disk usage. # Colors for different levels of disk usage.
typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=2 typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=2
@ -869,30 +840,6 @@
# Custom icon. # Custom icon.
# typeset -g POWERLEVEL9K_TASKWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐' # 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: user@hostname ]##################################
# Context color when running with privileges. # Context color when running with privileges.
typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=1 typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=1
@ -1018,11 +965,6 @@
##############[ nvm: node.js version from nvm (https://github.com/nvm-sh/nvm) ]############### ##############[ nvm: node.js version from nvm (https://github.com/nvm-sh/nvm) ]###############
# Nvm color. # Nvm color.
typeset -g POWERLEVEL9K_NVM_FOREGROUND=2 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. # Custom icon.
# typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐' # typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐'
@ -1172,16 +1114,6 @@
# Custom icon. # Custom icon.
# typeset -g POWERLEVEL9K_PLENV_VISUAL_IDENTIFIER_EXPANSION='⭐' # 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) ]############ ############[ phpenv: php version from phpenv (https://github.com/phpenv/phpenv) ]############
# PHP color. # PHP color.
typeset -g POWERLEVEL9K_PHPENV_FOREGROUND=5 typeset -g POWERLEVEL9K_PHPENV_FOREGROUND=5
@ -1225,7 +1157,7 @@
#############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]############# #############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]#############
# Show kubecontext only when the command you are typing invokes one of these tools. # Show kubecontext only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show kubecontext. # 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 # Kubernetes context classes for the purpose of using different colors, icons and expansions with
# different contexts. # different contexts.
@ -1351,7 +1283,7 @@
#[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]# #[ 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. # Show aws only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show aws. # 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 # 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. # 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. # Show azure only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show azure. # Tip: Remove the next line to always show azure.
typeset -g POWERLEVEL9K_AZURE_SHOW_ON_COMMAND='az|terraform|pulumi|terragrunt' 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. # Azure account name color.
typeset -g POWERLEVEL9K_AZURE_OTHER_FOREGROUND=4 typeset -g POWERLEVEL9K_AZURE_FOREGROUND=4
# Custom icon. # 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/) ]########### ##########[ gcloud: google cloud account and project (https://cloud.google.com/) ]###########
# Show gcloud only when the command you are typing invokes one of these tools. # 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= typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION=
# Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN # Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN
# to see the name of the interface. # 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 # 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. # 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. # 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 # 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 # 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 # 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 # 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. # it incompatible with your zsh configuration files.
# - quiet: Enable instant prompt and don't print warnings when detecting console output # - quiet: Enable instant prompt and don't print warnings when detecting console output
# during zsh initialization. Choose this if you've read and understood # 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 # - 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 # 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. # seen the warning, or if you are unsure what this all means.

@ -20,7 +20,7 @@
unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR' unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR'
# Zsh >= 5.1 is required. # 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. # The list of segments shown on the left. Fill it with the most important segments.
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=( typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
@ -65,7 +65,6 @@
luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv) luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv)
jenv # java version from jenv (https://github.com/jenv/jenv) jenv # java version from jenv (https://github.com/jenv/jenv)
plenv # perl version from plenv (https://github.com/tokuhirom/plenv) 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) phpenv # php version from phpenv (https://github.com/phpenv/phpenv)
scalaenv # scala version from scalaenv (https://github.com/scalaenv/scalaenv) scalaenv # scala version from scalaenv (https://github.com/scalaenv/scalaenv)
haskell_stack # haskell version from stack (https://haskellstack.org/) haskell_stack # haskell version from stack (https://haskellstack.org/)
@ -81,14 +80,11 @@
context # user@hostname context # user@hostname
nordvpn # nordvpn connection status, linux only (https://nordvpn.com/) nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
ranger # ranger shell (https://github.com/ranger/ranger) ranger # ranger shell (https://github.com/ranger/ranger)
yazi # yazi shell (https://github.com/sxyazi/yazi)
nnn # nnn shell (https://github.com/jarun/nnn) nnn # nnn shell (https://github.com/jarun/nnn)
lf # lf shell (https://github.com/gokcehan/lf)
xplr # xplr shell (https://github.com/sayanarijit/xplr) xplr # xplr shell (https://github.com/sayanarijit/xplr)
vim_shell # vim shell indicator (:sh) vim_shell # vim shell indicator (:sh)
midnight_commander # midnight commander shell (https://midnight-commander.org/) midnight_commander # midnight commander shell (https://midnight-commander.org/)
nix_shell # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) 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 # vpn_ip # virtual private network indicator
# load # CPU load # load # CPU load
# disk_usage # disk usage # disk_usage # disk usage
@ -97,8 +93,6 @@
todo # todo items (https://github.com/todotxt/todo.txt-cli) todo # todo items (https://github.com/todotxt/todo.txt-cli)
timewarrior # timewarrior tracking status (https://timewarrior.net/) timewarrior # timewarrior tracking status (https://timewarrior.net/)
taskwarrior # taskwarrior task count (https://taskwarrior.org/) 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 # time # current time
# =========================[ Line #2 ]========================= # =========================[ Line #2 ]=========================
newline newline
@ -234,7 +228,7 @@
.java-version .java-version
.perl-version .perl-version
.php-version .php-version
.tool-versions .tool-version
.shorten_folder_marker .shorten_folder_marker
.svn .svn
.terraform .terraform
@ -340,7 +334,7 @@
# typeset -g POWERLEVEL9K_DIR_PREFIX='%fin ' # typeset -g POWERLEVEL9K_DIR_PREFIX='%fin '
#####################################[ vcs: git status ]###################################### #####################################[ 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= typeset -g POWERLEVEL9K_VCS_BRANCH_ICON=
# Untracked files icon. It's really a question mark, your font isn't broken. # Untracked files icon. It's really a question mark, your font isn't broken.
@ -420,17 +414,11 @@
res+=" ${modified}wip" res+=" ${modified}wip"
fi fi
if (( VCS_STATUS_COMMITS_AHEAD || VCS_STATUS_COMMITS_BEHIND )); then # ⇣42 if behind the remote.
# ⇣42 if behind the remote. (( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}${VCS_STATUS_COMMITS_BEHIND}"
(( 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.
# ⇡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 && !VCS_STATUS_COMMITS_BEHIND )) && res+=" " (( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}${VCS_STATUS_COMMITS_AHEAD}"
(( 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 push remote. # ⇠42 if behind the push remote.
(( VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" ${clean}${VCS_STATUS_PUSH_COMMITS_BEHIND}" (( VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" ${clean}${VCS_STATUS_PUSH_COMMITS_BEHIND}"
(( VCS_STATUS_PUSH_COMMITS_AHEAD && !VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" " (( 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 # 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 # 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) typeset -g POWERLEVEL9K_VCS_BACKENDS=(git)
# These settings are used for repositories other than Git or when gitstatusd fails and # These settings are used for repositories other than Git or when gitstatusd fails and
@ -720,12 +708,6 @@
typeset -g POWERLEVEL9K_RANGER_FOREGROUND=178 typeset -g POWERLEVEL9K_RANGER_FOREGROUND=178
# Custom icon. # Custom icon.
# typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐' # 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: nnn shell (https://github.com/jarun/nnn) ]#######################
# Nnn shell color. # Nnn shell color.
@ -733,12 +715,6 @@
# Custom icon. # Custom icon.
# typeset -g POWERLEVEL9K_NNN_VISUAL_IDENTIFIER_EXPANSION='⭐' # 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: xplr shell (https://github.com/sayanarijit/xplr) ]##################
# xplr shell color. # xplr shell color.
typeset -g POWERLEVEL9K_XPLR_FOREGROUND=72 typeset -g POWERLEVEL9K_XPLR_FOREGROUND=72
@ -761,21 +737,12 @@
# Nix shell color. # Nix shell color.
typeset -g POWERLEVEL9K_NIX_SHELL_FOREGROUND=74 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. # Tip: If you want to see just the icon without "pure" and "impure", uncomment the next line.
# typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION= # typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION=
# Custom icon. # Custom icon.
# typeset -g POWERLEVEL9K_NIX_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐' # 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 ]################################## ##################################[ disk_usage: disk usage ]##################################
# Colors for different levels of disk usage. # Colors for different levels of disk usage.
typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=35 typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=35
@ -869,30 +836,6 @@
# Custom icon. # Custom icon.
# typeset -g POWERLEVEL9K_TASKWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐' # 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: user@hostname ]##################################
# Context color when running with privileges. # Context color when running with privileges.
typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=178 typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=178
@ -1018,11 +961,6 @@
##############[ nvm: node.js version from nvm (https://github.com/nvm-sh/nvm) ]############### ##############[ nvm: node.js version from nvm (https://github.com/nvm-sh/nvm) ]###############
# Nvm color. # Nvm color.
typeset -g POWERLEVEL9K_NVM_FOREGROUND=70 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. # Custom icon.
# typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐' # typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐'
@ -1172,16 +1110,6 @@
# Custom icon. # Custom icon.
# typeset -g POWERLEVEL9K_PLENV_VISUAL_IDENTIFIER_EXPANSION='⭐' # 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) ]############ ############[ phpenv: php version from phpenv (https://github.com/phpenv/phpenv) ]############
# PHP color. # PHP color.
typeset -g POWERLEVEL9K_PHPENV_FOREGROUND=99 typeset -g POWERLEVEL9K_PHPENV_FOREGROUND=99
@ -1225,7 +1153,7 @@
#############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]############# #############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]#############
# Show kubecontext only when the command you are typing invokes one of these tools. # Show kubecontext only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show kubecontext. # 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 # Kubernetes context classes for the purpose of using different colors, icons and expansions with
# different contexts. # different contexts.
@ -1351,7 +1279,7 @@
#[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]# #[ 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. # Show aws only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show aws. # 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 # 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. # 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. # Show azure only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show azure. # Tip: Remove the next line to always show azure.
typeset -g POWERLEVEL9K_AZURE_SHOW_ON_COMMAND='az|terraform|pulumi|terragrunt' 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. # Azure account name color.
typeset -g POWERLEVEL9K_AZURE_OTHER_FOREGROUND=32 typeset -g POWERLEVEL9K_AZURE_FOREGROUND=32
# Custom icon. # 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/) ]########### ##########[ gcloud: google cloud account and project (https://cloud.google.com/) ]###########
# Show gcloud only when the command you are typing invokes one of these tools. # 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= typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION=
# Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN # Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN
# to see the name of the interface. # 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 # 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. # 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. # 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 # 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 # 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 # 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 # 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. # it incompatible with your zsh configuration files.
# - quiet: Enable instant prompt and don't print warnings when detecting console output # - quiet: Enable instant prompt and don't print warnings when detecting console output
# during zsh initialization. Choose this if you've read and understood # 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 # - 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 # 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. # seen the warning, or if you are unsure what this all means.

@ -29,7 +29,7 @@
unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR' unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR'
# Zsh >= 5.1 is required. # Zsh >= 5.1 is required.
[[ $ZSH_VERSION == (5.<1->*|<6->.*) ]] || return autoload -Uz is-at-least && is-at-least 5.1 || return
# Prompt colors. # Prompt colors.
local grey=242 local grey=242
@ -169,7 +169,7 @@
# it incompatible with your zsh configuration files. # it incompatible with your zsh configuration files.
# - quiet: Enable instant prompt and don't print warnings when detecting console output # - quiet: Enable instant prompt and don't print warnings when detecting console output
# during zsh initialization. Choose this if you've read and understood # 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 # - 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 # 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. # seen the warning, or if you are unsure what this all means.

@ -20,7 +20,7 @@
unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR' unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR'
# Zsh >= 5.1 is required. # 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. # The list of segments shown on the left. Fill it with the most important segments.
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=( typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
@ -65,7 +65,6 @@
luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv) luaenv # lua version from luaenv (https://github.com/cehoffman/luaenv)
jenv # java version from jenv (https://github.com/jenv/jenv) jenv # java version from jenv (https://github.com/jenv/jenv)
plenv # perl version from plenv (https://github.com/tokuhirom/plenv) 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) phpenv # php version from phpenv (https://github.com/phpenv/phpenv)
scalaenv # scala version from scalaenv (https://github.com/scalaenv/scalaenv) scalaenv # scala version from scalaenv (https://github.com/scalaenv/scalaenv)
haskell_stack # haskell version from stack (https://haskellstack.org/) haskell_stack # haskell version from stack (https://haskellstack.org/)
@ -81,14 +80,11 @@
context # user@hostname context # user@hostname
nordvpn # nordvpn connection status, linux only (https://nordvpn.com/) nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
ranger # ranger shell (https://github.com/ranger/ranger) ranger # ranger shell (https://github.com/ranger/ranger)
yazi # yazi shell (https://github.com/sxyazi/yazi)
nnn # nnn shell (https://github.com/jarun/nnn) nnn # nnn shell (https://github.com/jarun/nnn)
lf # lf shell (https://github.com/gokcehan/lf)
xplr # xplr shell (https://github.com/sayanarijit/xplr) xplr # xplr shell (https://github.com/sayanarijit/xplr)
vim_shell # vim shell indicator (:sh) vim_shell # vim shell indicator (:sh)
midnight_commander # midnight commander shell (https://midnight-commander.org/) midnight_commander # midnight commander shell (https://midnight-commander.org/)
nix_shell # nix shell (https://nixos.org/nixos/nix-pills/developing-with-nix-shell.html) 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) # vi_mode # vi mode (you don't need this if you've enabled prompt_char)
# vpn_ip # virtual private network indicator # vpn_ip # virtual private network indicator
# load # CPU load # load # CPU load
@ -98,8 +94,6 @@
todo # todo items (https://github.com/todotxt/todo.txt-cli) todo # todo items (https://github.com/todotxt/todo.txt-cli)
timewarrior # timewarrior tracking status (https://timewarrior.net/) timewarrior # timewarrior tracking status (https://timewarrior.net/)
taskwarrior # taskwarrior task count (https://taskwarrior.org/) 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 # time # current time
# =========================[ Line #2 ]========================= # =========================[ Line #2 ]=========================
newline newline
@ -146,7 +140,7 @@
# Filler between left and right prompt on the first prompt line. You can set it to ' ', '·' or # 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 # '─'. 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 # 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_CHAR=' '
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_BACKGROUND= typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_BACKGROUND=
typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_GAP_BACKGROUND= typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_GAP_BACKGROUND=
@ -168,9 +162,6 @@
typeset -g POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='\uE0B0' typeset -g POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='\uE0B0'
# Separator between different-color segments on the right. # Separator between different-color segments on the right.
typeset -g POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR='\uE0B2' 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. # The right end of left prompt.
typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='\uE0B0' typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='\uE0B0'
# The left end of right prompt. # The left end of right prompt.
@ -243,7 +234,7 @@
.java-version .java-version
.perl-version .perl-version
.php-version .php-version
.tool-versions .tool-version
.shorten_folder_marker .shorten_folder_marker
.svn .svn
.terraform .terraform
@ -352,14 +343,14 @@
# typeset -g POWERLEVEL9K_DIR_PREFIX='in ' # typeset -g POWERLEVEL9K_DIR_PREFIX='in '
#####################################[ vcs: git status ]###################################### #####################################[ vcs: git status ]######################################
# Version control background colors. # Version control system colors.
typeset -g POWERLEVEL9K_VCS_CLEAN_BACKGROUND=2 typeset -g POWERLEVEL9K_VCS_CLEAN_BACKGROUND=2
typeset -g POWERLEVEL9K_VCS_MODIFIED_BACKGROUND=3 typeset -g POWERLEVEL9K_VCS_MODIFIED_BACKGROUND=3
typeset -g POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND=2 typeset -g POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND=2
typeset -g POWERLEVEL9K_VCS_CONFLICTED_BACKGROUND=3 typeset -g POWERLEVEL9K_VCS_CONFLICTED_BACKGROUND=3
typeset -g POWERLEVEL9K_VCS_LOADING_BACKGROUND=8 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= typeset -g POWERLEVEL9K_VCS_BRANCH_ICON=
# Untracked files icon. It's really a question mark, your font isn't broken. # Untracked files icon. It's really a question mark, your font isn't broken.
@ -430,17 +421,11 @@
res+=" ${modified}wip" res+=" ${modified}wip"
fi fi
if (( VCS_STATUS_COMMITS_AHEAD || VCS_STATUS_COMMITS_BEHIND )); then # ⇣42 if behind the remote.
# ⇣42 if behind the remote. (( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}${VCS_STATUS_COMMITS_BEHIND}"
(( 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.
# ⇡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 && !VCS_STATUS_COMMITS_BEHIND )) && res+=" " (( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}${VCS_STATUS_COMMITS_AHEAD}"
(( 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 push remote. # ⇠42 if behind the push remote.
(( VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" ${clean}${VCS_STATUS_PUSH_COMMITS_BEHIND}" (( VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" ${clean}${VCS_STATUS_PUSH_COMMITS_BEHIND}"
(( VCS_STATUS_PUSH_COMMITS_AHEAD && !VCS_STATUS_PUSH_COMMITS_BEHIND )) && res+=" " (( 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 # 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 # 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) typeset -g POWERLEVEL9K_VCS_BACKENDS=(git)
##########################[ status: exit code of the last command ]########################### ##########################[ status: exit code of the last command ]###########################
@ -748,14 +733,7 @@
typeset -g POWERLEVEL9K_RANGER_BACKGROUND=0 typeset -g POWERLEVEL9K_RANGER_BACKGROUND=0
# Custom icon. # Custom icon.
# typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐' # 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: nnn shell (https://github.com/jarun/nnn) ]#######################
# Nnn shell color. # Nnn shell color.
typeset -g POWERLEVEL9K_NNN_FOREGROUND=0 typeset -g POWERLEVEL9K_NNN_FOREGROUND=0
@ -763,13 +741,6 @@
# Custom icon. # Custom icon.
# typeset -g POWERLEVEL9K_NNN_VISUAL_IDENTIFIER_EXPANSION='⭐' # 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: xplr shell (https://github.com/sayanarijit/xplr) ]##################
# xplr shell color. # xplr shell color.
typeset -g POWERLEVEL9K_XPLR_FOREGROUND=0 typeset -g POWERLEVEL9K_XPLR_FOREGROUND=0
@ -796,22 +767,12 @@
typeset -g POWERLEVEL9K_NIX_SHELL_FOREGROUND=0 typeset -g POWERLEVEL9K_NIX_SHELL_FOREGROUND=0
typeset -g POWERLEVEL9K_NIX_SHELL_BACKGROUND=4 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. # Tip: If you want to see just the icon without "pure" and "impure", uncomment the next line.
# typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION= # typeset -g POWERLEVEL9K_NIX_SHELL_CONTENT_EXPANSION=
# Custom icon. # Custom icon.
# typeset -g POWERLEVEL9K_NIX_SHELL_VISUAL_IDENTIFIER_EXPANSION='⭐' # 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 ]################################## ##################################[ disk_usage: disk usage ]##################################
# Colors for different levels of disk usage. # Colors for different levels of disk usage.
typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=3 typeset -g POWERLEVEL9K_DISK_USAGE_NORMAL_FOREGROUND=3
@ -843,8 +804,6 @@
# Text and color for insert vi mode. # Text and color for insert vi mode.
typeset -g POWERLEVEL9K_VI_INSERT_MODE_STRING= typeset -g POWERLEVEL9K_VI_INSERT_MODE_STRING=
typeset -g POWERLEVEL9K_VI_MODE_INSERT_FOREGROUND=8 typeset -g POWERLEVEL9K_VI_MODE_INSERT_FOREGROUND=8
# Custom icon.
# typeset -g POWERLEVEL9K_VI_MODE_VISUAL_IDENTIFIER_EXPANSION='⭐'
######################################[ ram: free RAM ]####################################### ######################################[ ram: free RAM ]#######################################
# RAM color. # RAM color.
@ -935,33 +894,6 @@
# Custom icon. # Custom icon.
# typeset -g POWERLEVEL9K_TASKWARRIOR_VISUAL_IDENTIFIER_EXPANSION='⭐' # 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: user@hostname ]##################################
# Context color when running with privileges. # Context color when running with privileges.
typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=1 typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=1
@ -1096,11 +1028,6 @@
# Nvm color. # Nvm color.
typeset -g POWERLEVEL9K_NVM_FOREGROUND=0 typeset -g POWERLEVEL9K_NVM_FOREGROUND=0
typeset -g POWERLEVEL9K_NVM_BACKGROUND=5 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. # Custom icon.
# typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐' # typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐'
@ -1267,16 +1194,6 @@
# Custom icon. # Custom icon.
# typeset -g POWERLEVEL9K_PLENV_VISUAL_IDENTIFIER_EXPANSION='⭐' # 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) ]############ ############[ phpenv: php version from phpenv (https://github.com/phpenv/phpenv) ]############
# PHP color. # PHP color.
typeset -g POWERLEVEL9K_PHPENV_FOREGROUND=0 typeset -g POWERLEVEL9K_PHPENV_FOREGROUND=0
@ -1369,7 +1286,7 @@
#############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]############# #############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]#############
# Show kubecontext only when the command you are typing invokes one of these tools. # Show kubecontext only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show kubecontext. # 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 # Kubernetes context classes for the purpose of using different colors, icons and expansions with
# different contexts. # different contexts.
@ -1458,7 +1375,7 @@
#[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]# #[ 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. # Show aws only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show aws. # 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 # 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. # 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. # Show azure only when the command you are typing invokes one of these tools.
# Tip: Remove the next line to always show azure. # Tip: Remove the next line to always show azure.
typeset -g POWERLEVEL9K_AZURE_SHOW_ON_COMMAND='az|terraform|pulumi|terragrunt' 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. # Azure account name color.
typeset -g POWERLEVEL9K_AZURE_OTHER_FOREGROUND=7 typeset -g POWERLEVEL9K_AZURE_FOREGROUND=7
typeset -g POWERLEVEL9K_AZURE_OTHER_BACKGROUND=4 typeset -g POWERLEVEL9K_AZURE_BACKGROUND=4
# Custom icon. # 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/) ]########### ##########[ gcloud: google cloud account and project (https://cloud.google.com/) ]###########
# Show gcloud only when the command you are typing invokes one of these tools. # 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= typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION=
# Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN # Regular expression for the VPN network interface. Run `ifconfig` or `ip -4 a show` while on VPN
# to see the name of the interface. # 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 # 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. # 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. # 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 # 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 # 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 # 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 # 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. # it incompatible with your zsh configuration files.
# - quiet: Enable instant prompt and don't print warnings when detecting console output # - quiet: Enable instant prompt and don't print warnings when detecting console output
# during zsh initialization. Choose this if you've read and understood # 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 # - 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 # 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. # seen the warning, or if you are unsure what this all means.

@ -24,7 +24,7 @@
unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR' unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR'
# Zsh >= 5.1 is required. # 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. # Left prompt segments.
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(prompt_char dir vcs) typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(prompt_char dir vcs)
@ -87,7 +87,7 @@
# it incompatible with your zsh configuration files. # it incompatible with your zsh configuration files.
# - quiet: Enable instant prompt and don't print warnings when detecting console output # - quiet: Enable instant prompt and don't print warnings when detecting console output
# during zsh initialization. Choose this if you've read and understood # 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 # - 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 # 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. # seen the warning, or if you are unsure what this all means.

@ -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`. *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 - **Windows Console Host** (the old thing): Click the icon in the top left corner, then
*Properties → Font* and set *Font* to `MesloLGS NF`. *Properties → Font* and set *Font* to `MesloLGS NF`.
- **Windows Terminal** by Microsoft (the new thing): Open *Settings* (<kbd>Ctrl+,</kbd>), click - **Windows Terminal** by Microsoft (the new thing): Open `settings.json` (<kbd>Ctrl+Shift+,</kbd>),
either on the selected profile under *Profiles* or on *Defaults*, click *Appearance* and set search for `fontFace` and set the value to `MesloLGS NF` for every profile. If you don't find
*Font face* to `MesloLGS NF`. `fontFace`, add it under *profiles → defaults*. See [this settings file](
- **Conemu**: Open *Setup → General → Fonts* and set *Main console font* to `MesloLGS NF`. 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 → - **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 Color Scheme → Console Font*. Select *Use console font instead of the default* and set the font
name to `MesloLGS NF`. name to `MesloLGS NF`.
@ -63,7 +64,7 @@ If you are using a different terminal, proceed with manual font installation.
*Meslo Nerd Font*. *Meslo Nerd Font*.
- **Blink**: Type `config`, go to *Appearance*, tap *Add a new font*, tap *Open Gallery*, select - **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. *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* - **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) 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*. 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`. tab, uncheck *Use the system fixed width font* (if not already) and select `MesloLGS NF Regular`.
Exit the Preferences dialog by clicking *Close*. Exit the Preferences dialog by clicking *Close*.
- **MobaXterm**: Open *Settings**Configuration**Terminal* → (under *Terminal look and feel*) - **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 and change *Font* to `MesloLGS NF`.
of them through *Settings* → right click on an individual session → *Edit Session* → *Terminal
Settings* → *Font settings*.
- **Asbrú Connection Manager**: Open *Preferences → Local Shell Options → Look and Feel*, enable - **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`. *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 → 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 - **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 *Font* dropdown, select `MesloLGS NF` and click *OK*. Click *OK* to save the profile. Select the
new profile and click *Set as Default*. new profile and click *Set as Default*.
- **Alacritty**: Create or open `~/.config/alacritty/alacritty.toml` and add the following - **Alacritty**: Create or open `~/.config/alacritty/alacritty.yml` and add the following section
section to it: to it:
```toml ```yaml
[font.normal] font:
family = "MesloLGS NF" 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 ```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 After changing the config run `xrdb ~/.Xresources` to reload it. The new config is applied to
all new terminals. 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 1. Run `p10k configure` to generate a new `~/.p10k.zsh`. The old config may work
incorrectly with the new font. incorrectly with the new font.

@ -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 # Sized delete is implemented as __ZdlPvm in /usr/lib/libc++.1.dylib but this symbol is
# missing in macOS prior to 10.13. # 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 LDFLAGS += -pthread # -fsanitize=thread
LDLIBS += -lgit2 # -lprofiler -lunwind LDLIBS += -lgit2 # -lprofiler -lunwind
@ -44,14 +44,3 @@ pkg: zwc
GITSTATUS_DAEMON= GITSTATUS_CACHE_DIR=$(shell pwd)/usrbin ./install -f GITSTATUS_DAEMON= GITSTATUS_CACHE_DIR=$(shell pwd)/usrbin ./install -f
-include $(OBJS:.o=.dep) -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"

@ -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 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 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 fast theme with first-class gitstatus integration.
install gitstatus.
![Powerlevel10k Zsh Theme]( ![Powerlevel10k Zsh Theme](
https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/prompt-styles-high-contrast.png) https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/prompt-styles-high-contrast.png)
@ -36,7 +35,7 @@ git clone --depth=1 https://github.com/romkatv/gitstatus.git ~/gitstatus
echo 'source ~/gitstatus/gitstatus.prompt.zsh' >>! ~/.zshrc echo 'source ~/gitstatus/gitstatus.prompt.zsh' >>! ~/.zshrc
``` ```
Users in China can use the official mirror on gitee.com for faster download.<br> Users in mainland China can use the official mirror on gitee.com for faster download.<br>
中国大陆用户可以使用 gitee.com 上的官方镜像加速下载. 中国大陆用户可以使用 gitee.com 上的官方镜像加速下载.
```zsh ```zsh
@ -137,7 +136,7 @@ git clone --depth=1 https://github.com/romkatv/gitstatus.git ~/gitstatus
echo 'source ~/gitstatus/gitstatus.prompt.sh' >> ~/.bashrc echo 'source ~/gitstatus/gitstatus.prompt.sh' >> ~/.bashrc
``` ```
Users in China can use the official mirror on gitee.com for faster download.<br> Users in mainland China can use the official mirror on gitee.com for faster download.<br>
中国大陆用户可以使用 gitee.com 上的官方镜像加速下载. 中国大陆用户可以使用 gitee.com 上的官方镜像加速下载.
```bash ```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: Three functionally equivalent tools for computing git status were benchmarked:
* `gitstatusd` * `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 * `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 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 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 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 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 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 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 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 ./build -w -s -d docker
``` ```
Users in China can use the official mirror on gitee.com for faster download.<br> Users in mainland China can use the official mirror on gitee.com for faster download.<br>
中国大陆用户可以使用 gitee.com 上的官方镜像加速下载. 中国大陆用户可以使用 gitee.com 上的官方镜像加速下载.
```zsh ```zsh

@ -100,7 +100,7 @@ if [ -n "$gitstatus_install_tools" ]; then
exit 1 exit 1
fi fi
;; ;;
freebsd|dragonfly) freebsd)
command pkg install -y cmake gmake binutils git perl5 wget command pkg install -y cmake gmake binutils git perl5 wget
;; ;;
openbsd) openbsd)
@ -141,7 +141,7 @@ if [ -n "$gitstatus_install_tools" ]; then
fi fi
cpus="$(command getconf _NPROCESSORS_ONLN 2>/dev/null)" || 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 cpus=8
case "$gitstatus_cpu" in case "$gitstatus_cpu" in
@ -174,21 +174,12 @@ if 2>/dev/null "$CC" \
fi fi
command rm -f -- "$workdir"/cc-test "$workdir"/cc-test.o command rm -f -- "$workdir"/cc-test "$workdir"/cc-test.o
if 2>/dev/null "$CC" \ if 2>/dev/null "$CC" \
-fstack-clash-protection \ -fstack-clash-protection -fcf-protection \
-Werror \ -Werror \
-c "$workdir"/cc-test.c \ -c "$workdir"/cc-test.c \
-o "$workdir"/cc-test.o; then -o "$workdir"/cc-test.o; then
cflags="$cflags -fstack-clash-protection" cflags="$cflags -fstack-clash-protection -fcf-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"
fi fi
command rm -f -- "$workdir"/cc-test "$workdir"/cc-test.o 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}" gitstatus_ldflags="$gitstatus_ldflags ${static_pie:--static}"
libgit2_cmake_flags="$libgit2_cmake_flags -DENABLE_REPRODUCIBLE_BUILDS=ON" 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) openbsd)
gitstatus_cxx=eg++ gitstatus_cxx=eg++
gitstatus_make=gmake gitstatus_make=gmake
@ -589,7 +574,7 @@ case "$gitstatus_kernel" in
fi fi
fi fi
;; ;;
freebsd|openbsd|netbsd|darwin|dragonfly) freebsd|openbsd|netbsd|darwin)
if [ -n "$docker_cmd" ]; then if [ -n "$docker_cmd" ]; then
>&2 echo "[error] docker (-d) is not supported on $gitstatus_kernel" >&2 echo "[error] docker (-d) is not supported on $gitstatus_kernel"
exit 1 exit 1

@ -3,7 +3,7 @@
# #
# This value is also read by shell bindings (indirectly, through # This value is also read by shell bindings (indirectly, through
# ./install) when using GITSTATUS_DAEMON or usrbin/gitstatusd. # ./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 is a build time dependency of gitstatusd. The values of
# libgit2_version and libgit2_sha256 are read by ./build. # 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, # If sha256 of ./deps/libgit2-${libgit2_version}.tar.gz doesn't match,
# build gets aborted. # build gets aborted.
libgit2_version="tag-2ecf33948a4df9ef45a66c68b8ef24a5e60eaac6" libgit2_version="tag-5860a42d19bcd226cb6eff2dcbfcbf155d570c73"
libgit2_sha256="4ce11d71ee576dbbc410b9fa33a9642809cc1fa687b315f7c23eeb825b251e93" libgit2_sha256="2289203eda19913a2f6d2b26a15384cc43872bffd70e87a7659f9a22da79058e"

@ -290,7 +290,7 @@ function gitstatus_stop() {
unset _GITSTATUS_DIRTY_MAX_INDEX_SIZE _GITSTATUS_CLIENT_PID 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]... # Usage: gitstatus_query [OPTION]...
# #

@ -59,7 +59,7 @@ zmodload -F zsh/files b:zf_rm || return
typeset -g _gitstatus_plugin_dir"${1:-}"="${${(%):-%x}:A:h}" 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 ## Usage: gitstatus_query [OPTION]... NAME
# #

@ -2,7 +2,7 @@
# Source gitstatus.plugin.sh from $GITSTATUS_DIR or from the same directory # Source gitstatus.plugin.sh from $GITSTATUS_DIR or from the same directory
# in which the current script resides if the variable isn't set. # 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 source "$GITSTATUS_DIR" || return
elif [[ "${BASH_SOURCE[0]}" == */* ]]; then elif [[ "${BASH_SOURCE[0]}" == */* ]]; then
source "${BASH_SOURCE[0]%/*}/gitstatus.plugin.sh" || return 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 gitstatus_stop && gitstatus_start -s -1 -u -1 -c -1 -d -1
# On every prompt, fetch git status and set GITSTATUS_PROMPT. # On every prompt, fetch git status and set GITSTATUS_PROMPT.
if [[ -z "${PROMPT_COMMAND[*]}" ]]; then PROMPT_COMMAND=gitstatus_prompt_update
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_DIRTRIM=3 PROMPT_DIRTRIM=3
# Enable promptvars so that ${GITSTATUS_PROMPT} in PS1 is expanded. # Enable promptvars so that ${GITSTATUS_PROMPT} in PS1 is expanded.

@ -1,4 +1,4 @@
# 3 # 2
# #
# This file is used by ./install and indirectly by shell bindings. # This file is used by ./install and indirectly by shell bindings.
# #
@ -8,23 +8,23 @@
# work fine. # work fine.
# Official gitstatusd binaries. # 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="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="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.4"; sha256="9fd3913ec1b6b856ab6e08a99a2343f0e8e809eb6b62ca4b0963163656c668e6"; 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.4"; sha256="8e57ad642251e5acfa430aed82cd4ffe103db0bfadae4a15ccaf462c455d0442"; 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.4"; sha256="32b57eb28bf6d80b280e4020a0045184f8ca897b20b570c12948aa6838673225"; 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="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="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="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.4"; sha256="56d55e2e9a202d3072fa612d8fa1faa61243ffc86418a7fa64c2c9d9a82e0f64"; 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.4"; sha256="1afd072c8c26ef6ec2d9ac11cef96c84cd6f10e859665a6ffcfb6112c758547e"; 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.4"; sha256="9633816e7832109e530c9e2532b11a1edae08136d63aa7e40246c0339b7db304"; 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="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"; 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. # 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="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="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"; uname_s_glob="mingw32_nt-*"; uname_m_glob="x86_64"; file="gitstatusd-msys_nt-10.0-${uname_m}"; version="v1.5.1"; sha256="5d3c626b5ee564dbc13ddba89752dc58b0efe925b26dbd8b2304849d9ba01732";

@ -94,7 +94,9 @@
setopt no_unset extended_glob pipe_fail prompt_percent typeset_silent \ setopt no_unset extended_glob pipe_fail prompt_percent typeset_silent \
no_prompt_subst no_prompt_bang pushd_silent warn_create_global 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" print -ru2 -- "[error] unsupported zsh version: $ZSH_VERSION"
return 1 return 1
fi fi
@ -182,7 +184,7 @@ function build-unix() {
case $2 in case $2 in
linux-ppc64le) ;; linux-ppc64le) ;;
linux-*) flags+=(-d docker);; 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"';; darwin-*) intro='PATH="/usr/local/bin:$PATH"';;
esac esac
ssh $1 -- /bin/sh -uex <<<" ssh $1 -- /bin/sh -uex <<<"
@ -269,52 +271,16 @@ function build-windows() {
chmod +x $binaries/gitstatusd-$2 chmod +x $binaries/gitstatusd-$2
} }
if [[ -r /proc/version && "$(</proc/version)" == *Microsoft* ]]; then
() {
(( $# )) || return 0
print -ru2 -- "WARNING: lock files exist: $@"
(( $# )) && rm -- $@
} $locks/*(N)
function flock() {
local fd
sysopen -ro cloexec -u fd <(
exec </dev/null 2>/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() ( function build() (
setopt xtrace setopt xtrace
local platform=$1 local platform=$1
local machine=$assets[$platform] local machine=$assets[$platform]
flock $locks/$machine print -n >>$locks/$machine
zsystem flock $locks/$machine
build-${protocol[(k)$platform]} $machine $platform build-${protocol[(k)$platform]} $machine $platform
local tmp=gitstatusd-$platform.tmp.$$.tar.gz local tmp=gitstatusd-$platform.tmp.$$.tar.gz
( cd -q -- $binaries; tar --owner=0 --group=0 -I 'gzip -9' -cf $tmp gitstatusd-$platform ) ( cd -q -- $binaries; tar --owner=0 --group=0 -I 'gzip -9' -cf $tmp gitstatusd-$platform )
mv -f -- $binaries/$tmp $binaries/gitstatusd-$platform.tar.gz mv -f -- $binaries/$tmp $binaries/gitstatusd-$platform.tar.gz
# Make sure the last command is a built-in (important for flock).
:
) )
function mbuild() { function mbuild() {
@ -399,8 +365,4 @@ function run-process-tree() {
} }
mkdir -p -- $logs $locks $binaries mkdir -p -- $logs $locks $binaries
run-process-tree mbuild $@
() {
run-process-tree mbuild $@
exit
} "$@"

@ -23,7 +23,7 @@
#include <stdexcept> #include <stdexcept>
// The argument must be an expression convertible to bool. // 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). // it's equivalent to LOG(FATAL).
#define CHECK(cond...) \ #define CHECK(cond...) \
static_cast<void>(0), (!!(cond)) ? static_cast<void>(0) : LOG(FATAL) << #cond << ": " static_cast<void>(0), (!!(cond)) ? static_cast<void>(0) : LOG(FATAL) << #cond << ": "

@ -25,7 +25,7 @@
namespace gitstatus { 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. // 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 // Every appended entry is a null-terminated string. At -1 offset is its d_type. All elements

@ -61,7 +61,7 @@ size_t ParseSizeT(const char* s) {
void PrintUsage() { void PrintUsage() {
std::cout << "Usage: gitstatusd [OPTION]...\n" 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" << "\n"
<< "OPTIONS\n" << "OPTIONS\n"
<< " -l, --lock-fd=NUM [default=-1]\n" << " -l, --lock-fd=NUM [default=-1]\n"
@ -78,7 +78,7 @@ void PrintUsage() {
<< " maximum performance.\n" << " maximum performance.\n"
<< "\n" << "\n"
<< " -v, --log-level=STR [default=INFO]\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" << " increasing order: DEBUG, INFO, WARN, ERROR, FATAL.\n"
<< "\n" << "\n"
<< " -r, --repo-ttl-seconds=NUM [default=3600]\n" << " -r, --repo-ttl-seconds=NUM [default=3600]\n"
@ -141,7 +141,7 @@ void PrintUsage() {
<< "\n" << "\n"
<< " 1. Request ID. Any string. Can be empty.\n" << " 1. Request ID. Any string. Can be empty.\n"
<< " 2. Path to the directory for which git stats are being requested.\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" << " is treated as GIT_DIR.\n"
<< " 3. (Optional) '1' to disable computation of anything that requires reading\n" << " 3. (Optional) '1' to disable computation of anything that requires reading\n"
<< " git index; '0' for the default behavior of computing everything.\n" << " git index; '0' for the default behavior of computing everything.\n"

@ -62,7 +62,7 @@ struct Options : Limits {
// If non-negative, send signal 0 to the specified PID when not receiving any requests for one // If non-negative, send signal 0 to the specified PID when not receiving any requests for one
// second; exit if signal sending fails. // second; exit if signal sending fails.
int parent_pid = -1; 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. // DEBUG, INFO, WARN, ERROR, FATAL.
LogLevel log_level = INFO; LogLevel log_level = INFO;
// Close git repositories that haven't been used for this long. This is meant to release resources // Close git repositories that haven't been used for this long. This is meant to release resources

@ -155,7 +155,7 @@ IndexStats Repo::GetIndexStats(const git_oid* head, git_config* cfg) {
VERIFY(!git_repository_index(&git_index_, repo_)) << GitError(); VERIFY(!git_repository_index(&git_index_, repo_)) << GitError();
// Query an attribute (doesn't matter which) to initialize repo's attribute // Query an attribute (doesn't matter which) to initialize repo's attribute
// cache. It's a workaround for synchronization bugs (data races) in libgit2 // 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. // Thankfully, subsequent cache reads and writes are properly synchronized.
const char* attr; const char* attr;
VERIFY(!git_attr_get(&attr, repo_, 0, "x", "x")) << GitError(); VERIFY(!git_attr_get(&attr, repo_, 0, "x", "x")) << GitError();

@ -268,7 +268,7 @@ void TagDb::ParsePack() {
} }
if (!std::is_sorted(name2id_.begin(), name2id_.end(), ByName)) { 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); std::sort(name2id_.begin(), name2id_.end(), ByName);
} }

@ -18,6 +18,7 @@ function _p9k_can_configure() {
typeset -g __p9k_cfg_path=${__p9k_cfg_path_o:A} 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]}//\%/%%} 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 } [[ -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_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 } [[ ! -d $__p9k_cfg_path ]] || { $0_error "$__p9k_cfg_path_u is a directory"; return 1 }

@ -52,7 +52,6 @@ function _p9k_init_icons() {
LINUX_DEBIAN_ICON '\uE271'$s #  LINUX_DEBIAN_ICON '\uE271'$s # 
LINUX_RASPBIAN_ICON '\uE271'$s #  LINUX_RASPBIAN_ICON '\uE271'$s # 
LINUX_UBUNTU_ICON '\uE271'$s #  LINUX_UBUNTU_ICON '\uE271'$s # 
LINUX_KALI_ICON '\uE271'$s # 
LINUX_CENTOS_ICON '\uE271'$s #  LINUX_CENTOS_ICON '\uE271'$s # 
LINUX_COREOS_ICON '\uE271'$s #  LINUX_COREOS_ICON '\uE271'$s # 
LINUX_ELEMENTARY_ICON '\uE271'$s #  LINUX_ELEMENTARY_ICON '\uE271'$s # 
@ -72,10 +71,6 @@ function _p9k_init_icons() {
LINUX_ARTIX_ICON '\uE271'$s #  LINUX_ARTIX_ICON '\uE271'$s # 
LINUX_RHEL_ICON '\uE271'$s #  LINUX_RHEL_ICON '\uE271'$s # 
LINUX_AMZN_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 # 🌞 SUNOS_ICON '\U1F31E'$q # 🌞
HOME_ICON '\uE12C'$s #  HOME_ICON '\uE12C'$s # 
HOME_SUB_ICON '\uE18D'$s #  HOME_SUB_ICON '\uE18D'$s # 
@ -106,23 +101,10 @@ function _p9k_init_icons() {
VCS_GIT_GITHUB_ICON '\uE20E ' # VCS_GIT_GITHUB_ICON '\uE20E ' #
VCS_GIT_BITBUCKET_ICON '\uE20E ' # VCS_GIT_BITBUCKET_ICON '\uE20E ' #
VCS_GIT_GITLAB_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_HG_ICON '\uE1C3 ' # 
VCS_SVN_ICON 'svn'$q VCS_SVN_ICON 'svn'$q
RUST_ICON 'R' RUST_ICON 'R'
PYTHON_ICON '\uE63C'$s #  (doesn't always work) PYTHON_ICON '\uE63C'$s #  (doesn't always work)
CHEZMOI_ICON '\uE12C'$s # 
SWIFT_ICON 'Swift' SWIFT_ICON 'Swift'
GO_ICON 'Go' GO_ICON 'Go'
GOLANG_ICON 'Go' GOLANG_ICON 'Go'
@ -139,7 +121,6 @@ function _p9k_init_icons() {
JAVA_ICON '\U2615' # ☕︎ JAVA_ICON '\U2615' # ☕︎
LARAVEL_ICON '' LARAVEL_ICON ''
RANGER_ICON '\u2B50' # ⭐ RANGER_ICON '\u2B50' # ⭐
YAZI_ICON '\u2B50' # ⭐
MIDNIGHT_COMMANDER_ICON 'mc' MIDNIGHT_COMMANDER_ICON 'mc'
VIM_ICON 'vim' VIM_ICON 'vim'
TERRAFORM_ICON 'tf' TERRAFORM_ICON 'tf'
@ -153,7 +134,6 @@ function _p9k_init_icons() {
LUA_ICON 'lua' LUA_ICON 'lua'
PERL_ICON 'perl' PERL_ICON 'perl'
NNN_ICON 'nnn' NNN_ICON 'nnn'
LF_ICON 'lf'
XPLR_ICON 'xplr' XPLR_ICON 'xplr'
TIMEWARRIOR_ICON 'tw' TIMEWARRIOR_ICON 'tw'
TASKWARRIOR_ICON 'task' TASKWARRIOR_ICON 'task'
@ -168,8 +148,6 @@ function _p9k_init_icons() {
JULIA_ICON 'jl' JULIA_ICON 'jl'
SCALA_ICON 'scala' SCALA_ICON 'scala'
TOOLBOX_ICON '\u2B22' # ⬢ TOOLBOX_ICON '\u2B22' # ⬢
ARCH_ICON 'arch'
HISTORY_ICON 'hist'
) )
;; ;;
'awesome-fontconfig') 'awesome-fontconfig')
@ -210,7 +188,6 @@ function _p9k_init_icons() {
LINUX_DEBIAN_ICON '\uF17C'$s #  LINUX_DEBIAN_ICON '\uF17C'$s # 
LINUX_RASPBIAN_ICON '\uF17C'$s #  LINUX_RASPBIAN_ICON '\uF17C'$s # 
LINUX_UBUNTU_ICON '\uF17C'$s #  LINUX_UBUNTU_ICON '\uF17C'$s # 
LINUX_KALI_ICON '\uF17C'$s # 
LINUX_CENTOS_ICON '\uF17C'$s #  LINUX_CENTOS_ICON '\uF17C'$s # 
LINUX_COREOS_ICON '\uF17C'$s #  LINUX_COREOS_ICON '\uF17C'$s # 
LINUX_ELEMENTARY_ICON '\uF17C'$s #  LINUX_ELEMENTARY_ICON '\uF17C'$s # 
@ -230,10 +207,6 @@ function _p9k_init_icons() {
LINUX_ARTIX_ICON '\uF17C'$s #  LINUX_ARTIX_ICON '\uF17C'$s # 
LINUX_RHEL_ICON '\uF17C'$s #  LINUX_RHEL_ICON '\uF17C'$s # 
LINUX_AMZN_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 ' #  SUNOS_ICON '\uF185 ' # 
HOME_ICON '\uF015'$s #  HOME_ICON '\uF015'$s # 
HOME_SUB_ICON '\uF07C'$s #  HOME_SUB_ICON '\uF07C'$s # 
@ -260,23 +233,10 @@ function _p9k_init_icons() {
VCS_GIT_GITHUB_ICON '\uF113 ' #  VCS_GIT_GITHUB_ICON '\uF113 ' # 
VCS_GIT_BITBUCKET_ICON '\uF171 ' #  VCS_GIT_BITBUCKET_ICON '\uF171 ' # 
VCS_GIT_GITLAB_ICON '\uF296 ' #  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_HG_ICON '\uF0C3 ' # 
VCS_SVN_ICON 'svn'$q VCS_SVN_ICON 'svn'$q
RUST_ICON '\uE6A8' #  RUST_ICON '\uE6A8' # 
PYTHON_ICON '\uE63C'$s #  PYTHON_ICON '\uE63C'$s # 
CHEZMOI_ICON '\uF015'$s # 
SWIFT_ICON 'Swift' SWIFT_ICON 'Swift'
GO_ICON 'Go' GO_ICON 'Go'
GOLANG_ICON 'Go' GOLANG_ICON 'Go'
@ -293,7 +253,6 @@ function _p9k_init_icons() {
JAVA_ICON '\U2615' # ☕︎ JAVA_ICON '\U2615' # ☕︎
LARAVEL_ICON '' LARAVEL_ICON ''
RANGER_ICON '\u2B50' # ⭐ RANGER_ICON '\u2B50' # ⭐
YAZI_ICON '\u2B50' # ⭐
MIDNIGHT_COMMANDER_ICON 'mc' MIDNIGHT_COMMANDER_ICON 'mc'
VIM_ICON 'vim' VIM_ICON 'vim'
TERRAFORM_ICON 'tf' TERRAFORM_ICON 'tf'
@ -307,7 +266,6 @@ function _p9k_init_icons() {
LUA_ICON 'lua' LUA_ICON 'lua'
PERL_ICON 'perl' PERL_ICON 'perl'
NNN_ICON 'nnn' NNN_ICON 'nnn'
LF_ICON 'lf'
XPLR_ICON 'xplr' XPLR_ICON 'xplr'
TIMEWARRIOR_ICON 'tw' TIMEWARRIOR_ICON 'tw'
TASKWARRIOR_ICON 'task' TASKWARRIOR_ICON 'task'
@ -322,8 +280,6 @@ function _p9k_init_icons() {
JULIA_ICON 'jl' JULIA_ICON 'jl'
SCALA_ICON 'scala' SCALA_ICON 'scala'
TOOLBOX_ICON '\u2B22' # ⬢ TOOLBOX_ICON '\u2B22' # ⬢
ARCH_ICON 'arch'
HISTORY_ICON 'hist'
) )
;; ;;
'awesome-mapped-fontconfig') '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_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_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_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_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_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}" 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_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_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_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 }" 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_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}" 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_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_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_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_HG_ICON "${CODEPOINT_OF_AWESOME_FLASK:+\\u$CODEPOINT_OF_AWESOME_FLASK }"
VCS_SVN_ICON 'svn'$q VCS_SVN_ICON 'svn'$q
RUST_ICON '\uE6A8' #  RUST_ICON '\uE6A8' # 
PYTHON_ICON '\U1F40D' # 🐍 PYTHON_ICON '\U1F40D' # 🐍
CHEZMOI_ICON "${CODEPOINT_OF_AWESOME_HOME:+\\u$CODEPOINT_OF_AWESOME_HOME$s}"
SWIFT_ICON '\uE655'$s #  SWIFT_ICON '\uE655'$s # 
PUBLIC_IP_ICON "${CODEPOINT_OF_AWESOME_GLOBE:+\\u$CODEPOINT_OF_AWESOME_GLOBE$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}" LOCK_ICON "${CODEPOINT_OF_AWESOME_LOCK:+\\u$CODEPOINT_OF_AWESOME_LOCK}"
@ -450,7 +388,6 @@ function _p9k_init_icons() {
JAVA_ICON '\U2615' # ☕︎ JAVA_ICON '\U2615' # ☕︎
LARAVEL_ICON '' LARAVEL_ICON ''
RANGER_ICON '\u2B50' # ⭐ RANGER_ICON '\u2B50' # ⭐
YAZI_ICON '\u2B50' # ⭐
MIDNIGHT_COMMANDER_ICON 'mc' MIDNIGHT_COMMANDER_ICON 'mc'
VIM_ICON 'vim' VIM_ICON 'vim'
TERRAFORM_ICON 'tf' TERRAFORM_ICON 'tf'
@ -464,7 +401,6 @@ function _p9k_init_icons() {
LUA_ICON 'lua' LUA_ICON 'lua'
PERL_ICON 'perl' PERL_ICON 'perl'
NNN_ICON 'nnn' NNN_ICON 'nnn'
LF_ICON 'lf'
XPLR_ICON 'xplr' XPLR_ICON 'xplr'
TIMEWARRIOR_ICON 'tw' TIMEWARRIOR_ICON 'tw'
TASKWARRIOR_ICON 'task' TASKWARRIOR_ICON 'task'
@ -479,168 +415,6 @@ function _p9k_init_icons() {
JULIA_ICON 'jl' JULIA_ICON 'jl'
SCALA_ICON 'scala' SCALA_ICON 'scala'
TOOLBOX_ICON '\u2B22' # ⬢ 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') 'nerdfont-complete'|'nerdfont-fontconfig')
@ -698,13 +472,8 @@ function _p9k_init_icons() {
LINUX_VOID_ICON '\uF17C' #  LINUX_VOID_ICON '\uF17C' # 
LINUX_ARTIX_ICON '\uF17C' #  LINUX_ARTIX_ICON '\uF17C' # 
LINUX_UBUNTU_ICON '\uF31b'$s #  LINUX_UBUNTU_ICON '\uF31b'$s # 
LINUX_KALI_ICON '\uF17C' # 
LINUX_RHEL_ICON '\uF316'$s #  LINUX_RHEL_ICON '\uF316'$s # 
LINUX_AMZN_ICON '\uF270'$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' #  LINUX_ICON '\uF17C' # 
SUNOS_ICON '\uF185 ' #  SUNOS_ICON '\uF185 ' # 
HOME_ICON '\uF015'$s #  HOME_ICON '\uF015'$s # 
@ -732,23 +501,10 @@ function _p9k_init_icons() {
VCS_GIT_GITHUB_ICON '\uF113 ' #  VCS_GIT_GITHUB_ICON '\uF113 ' # 
VCS_GIT_BITBUCKET_ICON '\uE703 ' #  VCS_GIT_BITBUCKET_ICON '\uE703 ' # 
VCS_GIT_GITLAB_ICON '\uF296 ' #  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_HG_ICON '\uF0C3 ' # 
VCS_SVN_ICON '\uE72D'$q #  VCS_SVN_ICON '\uE72D'$q # 
RUST_ICON '\uE7A8'$q #  RUST_ICON '\uE7A8'$q # 
PYTHON_ICON '\UE73C ' #  PYTHON_ICON '\UE73C ' # 
CHEZMOI_ICON '\uF015'$s # 
SWIFT_ICON '\uE755' #  SWIFT_ICON '\uE755' # 
GO_ICON '\uE626' #  GO_ICON '\uE626' # 
GOLANG_ICON '\uE626' #  GOLANG_ICON '\uE626' # 
@ -765,7 +521,6 @@ function _p9k_init_icons() {
JAVA_ICON '\uE738' #  JAVA_ICON '\uE738' # 
LARAVEL_ICON '\ue73f'$q #  LARAVEL_ICON '\ue73f'$q # 
RANGER_ICON '\uF00b ' #  RANGER_ICON '\uF00b ' # 
YAZI_ICON '\uF00b ' # 
MIDNIGHT_COMMANDER_ICON 'mc' MIDNIGHT_COMMANDER_ICON 'mc'
VIM_ICON '\uE62B' #  VIM_ICON '\uE62B' # 
TERRAFORM_ICON '\uF1BB ' #  TERRAFORM_ICON '\uF1BB ' # 
@ -779,7 +534,6 @@ function _p9k_init_icons() {
LUA_ICON '\uE620' #  LUA_ICON '\uE620' # 
PERL_ICON '\uE769' #  PERL_ICON '\uE769' # 
NNN_ICON 'nnn' NNN_ICON 'nnn'
LF_ICON 'lf'
XPLR_ICON 'xplr' XPLR_ICON 'xplr'
TIMEWARRIOR_ICON '\uF49B' #  TIMEWARRIOR_ICON '\uF49B' # 
TASKWARRIOR_ICON '\uF4A0 ' #  TASKWARRIOR_ICON '\uF4A0 ' # 
@ -794,8 +548,6 @@ function _p9k_init_icons() {
JULIA_ICON '\uE624' #  JULIA_ICON '\uE624' # 
SCALA_ICON '\uE737' #  SCALA_ICON '\uE737' # 
TOOLBOX_ICON '\uE20F'$s #  TOOLBOX_ICON '\uE20F'$s # 
ARCH_ICON '\uE266' # 
HISTORY_ICON '\uF1DA'$s # 
) )
;; ;;
ascii) ascii)
@ -834,7 +586,6 @@ function _p9k_init_icons() {
LINUX_DEBIAN_ICON 'debian' LINUX_DEBIAN_ICON 'debian'
LINUX_RASPBIAN_ICON 'pi' LINUX_RASPBIAN_ICON 'pi'
LINUX_UBUNTU_ICON 'ubuntu' LINUX_UBUNTU_ICON 'ubuntu'
LINUX_KALI_ICON 'kali'
LINUX_CENTOS_ICON 'centos' LINUX_CENTOS_ICON 'centos'
LINUX_COREOS_ICON 'coreos' LINUX_COREOS_ICON 'coreos'
LINUX_ELEMENTARY_ICON 'elementary' LINUX_ELEMENTARY_ICON 'elementary'
@ -854,10 +605,6 @@ function _p9k_init_icons() {
LINUX_ARTIX_ICON 'artix' LINUX_ARTIX_ICON 'artix'
LINUX_RHEL_ICON 'rhel' LINUX_RHEL_ICON 'rhel'
LINUX_AMZN_ICON 'amzn' LINUX_AMZN_ICON 'amzn'
LINUX_ENDEAVOUROS_ICON 'edvos'
LINUX_ROCKY_ICON 'rocky'
LINUX_GUIX_ICON 'guix'
LINUX_NEON_ICON 'neon'
SUNOS_ICON 'sunos' SUNOS_ICON 'sunos'
HOME_ICON '' HOME_ICON ''
HOME_SUB_ICON '' HOME_SUB_ICON ''
@ -884,23 +631,10 @@ function _p9k_init_icons() {
VCS_GIT_GITHUB_ICON '' VCS_GIT_GITHUB_ICON ''
VCS_GIT_BITBUCKET_ICON '' VCS_GIT_BITBUCKET_ICON ''
VCS_GIT_GITLAB_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_HG_ICON ''
VCS_SVN_ICON '' VCS_SVN_ICON ''
RUST_ICON 'rust' RUST_ICON 'rust'
PYTHON_ICON 'py' PYTHON_ICON 'py'
CHEZMOI_ICON 'chezmoi'
SWIFT_ICON 'swift' SWIFT_ICON 'swift'
GO_ICON 'go' GO_ICON 'go'
GOLANG_ICON 'go' GOLANG_ICON 'go'
@ -917,7 +651,6 @@ function _p9k_init_icons() {
JAVA_ICON 'java' JAVA_ICON 'java'
LARAVEL_ICON '' LARAVEL_ICON ''
RANGER_ICON 'ranger' RANGER_ICON 'ranger'
YAZI_ICON 'yazi'
MIDNIGHT_COMMANDER_ICON 'mc' MIDNIGHT_COMMANDER_ICON 'mc'
VIM_ICON 'vim' VIM_ICON 'vim'
TERRAFORM_ICON 'tf' TERRAFORM_ICON 'tf'
@ -931,7 +664,6 @@ function _p9k_init_icons() {
LUA_ICON 'lua' LUA_ICON 'lua'
PERL_ICON 'perl' PERL_ICON 'perl'
NNN_ICON 'nnn' NNN_ICON 'nnn'
LF_ICON 'lf'
XPLR_ICON 'xplr' XPLR_ICON 'xplr'
TIMEWARRIOR_ICON 'tw' TIMEWARRIOR_ICON 'tw'
TASKWARRIOR_ICON 'task' TASKWARRIOR_ICON 'task'
@ -946,8 +678,6 @@ function _p9k_init_icons() {
JULIA_ICON 'jl' JULIA_ICON 'jl'
SCALA_ICON 'scala' SCALA_ICON 'scala'
TOOLBOX_ICON 'toolbox' TOOLBOX_ICON 'toolbox'
ARCH_ICON 'arch'
HISTORY_ICON 'hist'
) )
;; ;;
*) *)
@ -988,7 +718,6 @@ function _p9k_init_icons() {
LINUX_DEBIAN_ICON 'Deb' LINUX_DEBIAN_ICON 'Deb'
LINUX_RASPBIAN_ICON 'RPi' LINUX_RASPBIAN_ICON 'RPi'
LINUX_UBUNTU_ICON 'Ubu' LINUX_UBUNTU_ICON 'Ubu'
LINUX_KALI_ICON 'Kal'
LINUX_CENTOS_ICON 'Cen' LINUX_CENTOS_ICON 'Cen'
LINUX_COREOS_ICON 'Cor' LINUX_COREOS_ICON 'Cor'
LINUX_ELEMENTARY_ICON 'Elm' LINUX_ELEMENTARY_ICON 'Elm'
@ -1008,10 +737,6 @@ function _p9k_init_icons() {
LINUX_ARTIX_ICON 'Art' LINUX_ARTIX_ICON 'Art'
LINUX_RHEL_ICON 'RH' LINUX_RHEL_ICON 'RH'
LINUX_AMZN_ICON 'Amzn' LINUX_AMZN_ICON 'Amzn'
LINUX_ENDEAVOUROS_ICON 'Edv'
LINUX_ROCKY_ICON 'Roc'
LINUX_GUIX_ICON 'Guix'
LINUX_NEON_ICON 'Neon'
SUNOS_ICON 'Sun' SUNOS_ICON 'Sun'
HOME_ICON '' HOME_ICON ''
HOME_SUB_ICON '' HOME_SUB_ICON ''
@ -1038,23 +763,10 @@ function _p9k_init_icons() {
VCS_GIT_GITHUB_ICON '' VCS_GIT_GITHUB_ICON ''
VCS_GIT_BITBUCKET_ICON '' VCS_GIT_BITBUCKET_ICON ''
VCS_GIT_GITLAB_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_HG_ICON ''
VCS_SVN_ICON '' VCS_SVN_ICON ''
RUST_ICON 'R' RUST_ICON 'R'
PYTHON_ICON 'Py' PYTHON_ICON 'Py'
CHEZMOI_ICON 'Chez'
SWIFT_ICON 'Swift' SWIFT_ICON 'Swift'
GO_ICON 'Go' GO_ICON 'Go'
GOLANG_ICON 'Go' GOLANG_ICON 'Go'
@ -1071,7 +783,6 @@ function _p9k_init_icons() {
JAVA_ICON '\U2615' # ☕︎ JAVA_ICON '\U2615' # ☕︎
LARAVEL_ICON '' LARAVEL_ICON ''
RANGER_ICON '\u2B50' # ⭐ RANGER_ICON '\u2B50' # ⭐
YAZI_ICON '\u2B50' # ⭐
MIDNIGHT_COMMANDER_ICON 'mc' MIDNIGHT_COMMANDER_ICON 'mc'
VIM_ICON 'vim' VIM_ICON 'vim'
TERRAFORM_ICON 'tf' TERRAFORM_ICON 'tf'
@ -1085,7 +796,6 @@ function _p9k_init_icons() {
LUA_ICON 'lua' LUA_ICON 'lua'
PERL_ICON 'perl' PERL_ICON 'perl'
NNN_ICON 'nnn' NNN_ICON 'nnn'
LF_ICON 'lf'
XPLR_ICON 'xplr' XPLR_ICON 'xplr'
TIMEWARRIOR_ICON 'tw' TIMEWARRIOR_ICON 'tw'
TASKWARRIOR_ICON 'task' TASKWARRIOR_ICON 'task'
@ -1100,8 +810,6 @@ function _p9k_init_icons() {
JULIA_ICON 'jl' JULIA_ICON 'jl'
SCALA_ICON 'scala' SCALA_ICON 'scala'
TOOLBOX_ICON '\u2B22' # ⬢ TOOLBOX_ICON '\u2B22' # ⬢
ARCH_ICON 'arch'
HISTORY_ICON 'hist'
) )
;; ;;
esac esac

File diff suppressed because it is too large Load Diff

@ -222,12 +222,7 @@ function hide_cursor() {
} }
function show_cursor() { function show_cursor() {
local cnorm=${terminfo[cnorm]-} echoti cnorm 2>/dev/null
if [[ $cnorm == *$'\e[?25h'(|'\e'*) ]]; then
print -n '\e[?25h'
else
print -n $cnorm
fi
} }
function consume_input() { function consume_input() {
@ -744,7 +739,7 @@ function ask_python() {
return 0 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 flowing -c %BDoes this look like%b "%2F><%f" %Bbut taller and "fatter?%b"
add_widget 0 print -P "" add_widget 0 print -P ""
add_widget 0 flowing -c -- "---> \u276F\u276E <---" add_widget 0 flowing -c -- "---> \u276F\u276E <---"
@ -760,23 +755,17 @@ function ask_quotes() {
ask ynr ask ynr
case $choice in case $choice in
r) return 1;; r) return 1;;
y) cap_quotes=1;; y) cap_arrow=1;;
n) cap_quotes=0;; n) cap_arrow=0;;
esac esac
return 0 return 0
} }
function ask_arrow() { function ask_debian() {
# This condition holds as long as zsh is compiled with unicode 9 support. add_widget 0 flowing -c %BDoes this look like a%b "%2FDebian logo%f" "%B(swirl/spiral)?%b"
if (( ${(m)#${(g::)1}} != 1 )); then add_widget 0 flowing -c reference: "$(href https://debian.org/logos/openlogo-nd.svg)"
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 print -P ""
add_widget 0 flowing -c -- "---> $1 <---" add_widget 0 flowing -c -- "---> \uF306 <---"
add_widget 0 print -P "" add_widget 0 print -P ""
add_widget 3 add_widget 3
add_widget 0 print -P "%B(y) Yes.%b" add_widget 0 print -P "%B(y) Yes.%b"
@ -789,41 +778,8 @@ function ask_arrow() {
ask ynr ask ynr
case $choice in case $choice in
r) return 1;; r) return 1;;
y) cap_arrow=1;; y) cap_debian=1;;
n) cap_arrow=0;; n) cap_debian=0;;
esac
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"
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 print -P ""
add_widget 3
add_widget 0 print -P "%B(1) It is pointing at '1'.%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 ""
add_widget 2
add_widget 0 print -P "(r) Restart from the beginning."
ask 123r
case $choice in
r) return 1;;
1) cap_arrow=1;;
2|3) cap_arrow=0;;
esac esac
return 0 return 0
} }
@ -949,9 +905,9 @@ function ask_charset() {
POWERLEVEL9K_ICON_PADDING=none POWERLEVEL9K_ICON_PADDING=none
cap_diamond=0 cap_diamond=0
cap_python=0 cap_python=0
cap_arrow=0 cap_debian=0
cap_lock=0 cap_lock=0
cap_quotes=0 cap_arrow=0
;; ;;
esac esac
return 0 return 0
@ -1027,15 +983,6 @@ function ask_color() {
return 0 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() { function ask_ornaments_color() {
[[ $style != (rainbow|lean*) || $num_lines == 1 ]] && return [[ $style != (rainbow|lean*) || $num_lines == 1 ]] && return
[[ $gap_char == ' ' && $left_frame == 0 && $right_frame == 0 ]] && return [[ $gap_char == ' ' && $left_frame == 0 && $right_frame == 0 ]] && return
@ -1043,17 +990,10 @@ function ask_ornaments_color() {
[[ $gap_char != ' ' ]] && ornaments+=Connection [[ $gap_char != ' ' ]] && ornaments+=Connection
(( left_frame || right_frame )) && ornaments+=Frame (( left_frame || right_frame )) && ornaments+=Frame
add_widget 0 flowing -c "%B${(j: & :)ornaments} Color%b" add_widget 0 flowing -c "%B${(j: & :)ornaments} Color%b"
if (( left_frame || right_frame )); then add_widget 0 print
add_widget 0 print_frame_marker add_widget 1
add_widget 3 print -P "%B(1) $color_name[1].%b" add_widget 0 print -P "%B(1) $color_name[1].%b"
add_prompt_n color=1 add_prompt 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 -P "%B(2) $color_name[2].%b" add_widget 0 print -P "%B(2) $color_name[2].%b"
add_prompt color=2 add_prompt color=2
add_widget 0 print -P "%B(3) $color_name[3].%b" 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 flowing -c "%BShow current time?%b"
add_widget 0 print add_widget 0 print
add_widget 1 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_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_widget 0 print -P "%B(2) 24-hour format.%b"
add_prompt time=$time_24h 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." add_widget 0 print -P "(r) Restart from the beginning."
ask n12r ask 123r
case $choice in case $choice in
r) return 1;; r) return 1;;
n) time=;; 1) time=;;
1) time=$time_12h; options+='12h time';;
2) time=$time_24h; options+='24h time';; 2) time=$time_24h; options+='24h time';;
3) time=$time_12h; options+='12h time';;
esac esac
return 0 return 0
} }
@ -1126,26 +1066,18 @@ function os_icon_name() {
if [[ -r /etc/os-release ]]; then if [[ -r /etc/os-release ]]; then
local lines=(${(f)"$(</etc/os-release)"}) local lines=(${(f)"$(</etc/os-release)"})
lines=(${(@M)lines:#ID=*}) lines=(${(@M)lines:#ID=*})
(( $#lines == 1 )) && os_release_id=${(Q)${lines[1]#ID=}} (( $#lines == 1 )) && os_release_id=${lines[1]#ID=}
elif [[ -e /etc/artix-release ]]; then elif [[ -e /etc/artix-release ]]; then
os_release_id=artix os_release_id=artix
fi fi
case $os_release_id in case $os_release_id in
*arch*) echo LINUX_ARCH_ICON;; *arch*) echo LINUX_ARCH_ICON;;
*raspbian*) echo LINUX_RASPBIAN_ICON;; *debian*) echo LINUX_DEBIAN_ICON;;
*debian*)
if [[ -f /etc/apt/sources.list.d/raspi.list ]]; then
echo LINUX_RASPBIAN_ICON
else
echo LINUX_DEBIAN_ICON
fi
;;
*raspbian*) echo LINUX_RASPBIAN_ICON;; *raspbian*) echo LINUX_RASPBIAN_ICON;;
*ubuntu*) echo LINUX_UBUNTU_ICON;; *ubuntu*) echo LINUX_UBUNTU_ICON;;
*elementary*) echo LINUX_ELEMENTARY_ICON;; *elementary*) echo LINUX_ELEMENTARY_ICON;;
*fedora*) echo LINUX_FEDORA_ICON;; *fedora*) echo LINUX_FEDORA_ICON;;
*coreos*) echo LINUX_COREOS_ICON;; *coreos*) echo LINUX_COREOS_ICON;;
*kali*) echo LINUX_KALI_ICON;;
*gentoo*) echo LINUX_GENTOO_ICON;; *gentoo*) echo LINUX_GENTOO_ICON;;
*mageia*) echo LINUX_MAGEIA_ICON;; *mageia*) echo LINUX_MAGEIA_ICON;;
*centos*) echo LINUX_CENTOS_ICON;; *centos*) echo LINUX_CENTOS_ICON;;
@ -1162,10 +1094,6 @@ function os_icon_name() {
*artix*) echo LINUX_ARTIX_ICON;; *artix*) echo LINUX_ARTIX_ICON;;
*rhel*) echo LINUX_RHEL_ICON;; *rhel*) echo LINUX_RHEL_ICON;;
amzn) echo LINUX_AMZN_ICON;; amzn) echo LINUX_AMZN_ICON;;
endeavouros) echo LINUX_ENDEAVOUROS_ICON;;
rocky) echo LINUX_ROCKY_ICON;;
guix) echo LINUX_GUIX_ICON;;
neon) echo LINUX_NEON_ICON;;
*) echo LINUX_ICON;; *) echo LINUX_ICON;;
esac esac
;; ;;
@ -1239,7 +1167,7 @@ function ask_separators() {
add_widget 2 add_widget 2
add_widget 0 print -P "%B(2) Vertical.%b" add_widget 0 print -P "%B(2) Vertical.%b"
add_prompt left_sep='' right_sep='' left_subsep=$vertical_bar right_subsep=$vertical_bar add_prompt left_sep='' right_sep='' left_subsep=$vertical_bar right_subsep=$vertical_bar
if [[ $POWERLEVEL9K_MODE == nerdfont-* ]]; then if [[ $POWERLEVEL9K_MODE == nerdfont-complete ]]; then
extra+=3 extra+=3
add_widget 0 print -P "%B(3) Slanted.%b" add_widget 0 print -P "%B(3) Slanted.%b"
add_prompt left_sep=$down_triangle right_sep=$up_triangle left_subsep=$slanted_bar right_subsep=$slanted_bar add_prompt left_sep=$down_triangle right_sep=$up_triangle left_subsep=$slanted_bar right_subsep=$slanted_bar
@ -1289,34 +1217,42 @@ function ask_heads() {
fi fi
local extra local extra
add_widget 0 flowing -c "%BPrompt Heads%b" add_widget 0 flowing -c "%BPrompt Heads%b"
add_widget 0 print -Pl " head" "%B(1) Flat.%b |" " v" if (( cap_diamond )); then
add_widget 3 print -P "%B(1) Flat.%b" add_widget 0 print -Pl " head" "%B(1) Sharp.%b |" " v"
add_prompt_n left_head= right_head= add_widget 3 print -P "%B(1) Sharp.%b"
add_widget 0 print add_prompt_n left_head=$right_triangle right_head=$left_triangle
add_widget 2 add_widget 0 print
add_widget 2
else
add_widget 0 print
add_widget 1
add_widget 0 print -P "%B(1) Flat.%b"
add_prompt left_head= right_head=
fi
add_widget 0 print -P "%B(2) Blurred.%b" add_widget 0 print -P "%B(2) Blurred.%b"
add_prompt left_head=$fade_out right_head=$fade_in add_prompt left_head=$fade_out right_head=$fade_in
if (( cap_diamond )); then if [[ $POWERLEVEL9K_MODE == nerdfont-complete ]]; then
extra+=3 extra+=3
add_widget 0 print -P "%B(3) Sharp.%b" add_widget 0 print -P "%B(3) Slanted.%b"
add_prompt left_head=$right_triangle right_head=$left_triangle add_prompt left_head=$down_triangle right_head=$up_triangle
if [[ $POWERLEVEL9K_MODE == nerdfont-* ]]; then extra+=4
extra+=4 add_widget 0 print -P "%B(4) Round.%b"
add_widget 0 print -P "%B(4) Slanted.%b" add_prompt left_head=$right_circle right_head=$left_circle
add_prompt left_head=$down_triangle right_head=$up_triangle
extra+=5
add_widget 0 print -P "%B(5) Round.%b"
add_prompt left_head=$right_circle right_head=$left_circle
fi
fi fi
add_widget 0 print -P "(r) Restart from the beginning." add_widget 0 print -P "(r) Restart from the beginning."
ask 12${extra}r ask 12${extra}r
case $choice in case $choice in
r) return 1;; r) return 1;;
1) 1)
left_head= if (( cap_diamond )); then
right_head= left_head=$right_triangle
options+='flat heads' right_head=$left_triangle
options+='sharp heads'
else
left_head=
right_head=
options+='flat heads'
fi
;; ;;
2) 2)
left_head=$fade_out left_head=$fade_out
@ -1324,16 +1260,11 @@ function ask_heads() {
options+='blurred heads' options+='blurred heads'
;; ;;
3) 3)
left_head=$right_triangle
right_head=$left_triangle
options+='sharp heads'
;;
4)
left_head=$down_triangle left_head=$down_triangle
right_head=$up_triangle right_head=$up_triangle
options+='slanted heads' options+='slanted heads'
;; ;;
5) 4)
left_head=$right_circle left_head=$right_circle
right_head=$left_circle right_head=$left_circle
options+='round heads' options+='round heads'
@ -1368,7 +1299,7 @@ function ask_tails() {
extra+=3 extra+=3
add_widget 0 print -P "%B(3) Sharp.%b" add_widget 0 print -P "%B(3) Sharp.%b"
add_prompt left_tail=$left_triangle right_tail=$right_triangle add_prompt left_tail=$left_triangle right_tail=$right_triangle
if [[ $POWERLEVEL9K_MODE == nerdfont-* ]]; then if [[ $POWERLEVEL9K_MODE == nerdfont-complete ]]; then
extra+=4 extra+=4
add_widget 0 print -P "%B(4) Slanted.%b" add_widget 0 print -P "%B(4) Slanted.%b"
add_prompt left_tail=$up_triangle right_tail=$down_triangle add_prompt left_tail=$up_triangle right_tail=$down_triangle
@ -1506,14 +1437,14 @@ function ask_empty_line() {
} }
function print_instant_prompt_link() { function print_instant_prompt_link() {
local link='https://github.com/romkatv/powerlevel10k#instant-prompt' local link='https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt'
(( wizard_columns < $#link )) && return (( wizard_columns < $#link )) && return
print print
flowing -c "$(href $link)" flowing -c "$(href $link)"
} }
function ask_instant_prompt() { function ask_instant_prompt() {
if [[ $ZSH_VERSION != (5.<4->*|<6->.*) ]]; then if ! is-at-least 5.4; then
instant_prompt=off instant_prompt=off
options+=instant_prompt=auto-off options+=instant_prompt=auto-off
return 0 return 0
@ -1613,11 +1544,8 @@ function ask_config_overwrite() {
local tmpdir=/tmp local tmpdir=/tmp
local tmpdir_u=/tmp local tmpdir_u=/tmp
fi fi
if (( ! $+commands[mktemp] )) || config_backup="$(mktemp $tmpdir/$__p9k_cfg_basename.XXXXXXXXXX)" || quit -c
! config_backup=$(mktemp $tmpdir/$__p9k_cfg_basename.XXXXXXXXXX 2>/dev/null); then cp $__p9k_cfg_path $config_backup || quit -c
config_backup=$tmpdir/$__p9k_cfg_basename.$EPOCHREALTIME
fi
cp $__p9k_cfg_path $config_backup || quit -c
config_backup_u=$tmpdir_u/${(q-)config_backup:t} config_backup_u=$tmpdir_u/${(q-)config_backup:t}
;; ;;
esac esac
@ -1686,10 +1614,7 @@ function ask_zshrc_edit() {
local tmpdir=/tmp local tmpdir=/tmp
local tmpdir_u=/tmp local tmpdir_u=/tmp
fi fi
if (( ! $+commands[mktemp] )) || zshrc_backup="$(mktemp $tmpdir/.zshrc.XXXXXXXXXX)" || quit -c
! zshrc_backup="$(mktemp $tmpdir/.zshrc.XXXXXXXXXX 2>/dev/null)"; then
zshrc_backup=$tmpdir/.zshrc.$EPOCHREALTIME
fi
cp -p $__p9k_zshrc $zshrc_backup || quit -c cp -p $__p9k_zshrc $zshrc_backup || quit -c
local -i writable=1 local -i writable=1
if [[ ! -w $zshrc_backup ]]; then if [[ ! -w $zshrc_backup ]]; then
@ -1747,8 +1672,6 @@ function generate_config() {
sub NORDVPN_VISUAL_IDENTIFIER_EXPANSION "'nord'" sub NORDVPN_VISUAL_IDENTIFIER_EXPANSION "'nord'"
uncomment 'typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION' uncomment 'typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION'
sub 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' uncomment 'typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION'
sub KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION "'○'" sub KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION "'○'"
uncomment 'typeset -g POWERLEVEL9K_AZURE_VISUAL_IDENTIFIER_EXPANSION' uncomment 'typeset -g POWERLEVEL9K_AZURE_VISUAL_IDENTIFIER_EXPANSION'
@ -1770,14 +1693,9 @@ function generate_config() {
sub PYTHON_ICON "'🐍'" sub PYTHON_ICON "'🐍'"
fi fi
case $POWERLEVEL9K_MODE in if [[ $POWERLEVEL9K_MODE == nerdfont-complete ]]; then
nerdfont-complete) sub BATTERY_STAGES "'\uf58d\uf579\uf57a\uf57b\uf57c\uf57d\uf57e\uf57f\uf580\uf581\uf578'"
sub BATTERY_STAGES "'\uf58d\uf579\uf57a\uf57b\uf57c\uf57d\uf57e\uf57f\uf580\uf581\uf578'" fi
;;
nerdfont-v3)
sub BATTERY_STAGES "'\UF008E\UF007A\UF007B\UF007C\UF007D\UF007E\UF007F\UF0080\UF0081\UF0082\UF0079'"
;;
esac
if [[ $style == (classic|rainbow) ]]; then if [[ $style == (classic|rainbow) ]]; then
if [[ $style == classic ]]; then if [[ $style == classic ]]; then
@ -1957,7 +1875,7 @@ function generate_config() {
command mkdir -p -- ${__p9k_cfg_path:h} || return command mkdir -p -- ${__p9k_cfg_path:h} || return
if [[ -e $__p9k_cfg_path ]]; then if [[ -e $__p9k_cfg_path ]]; then
zf_rm -f -- $__p9k_cfg_path || return unlink $__p9k_cfg_path || return
fi fi
print -lr -- "$header" "$lines[@]" >$__p9k_cfg_path print -lr -- "$header" "$lines[@]" >$__p9k_cfg_path
} }
@ -2033,7 +1951,7 @@ function check_zshrc_integration() {
local h9='"$ZDOTDIR"/.p10k.zsh' local h9='"$ZDOTDIR"/.p10k.zsh'
local h10='$POWERLEVEL9K_CONFIG_FILE' local h10='$POWERLEVEL9K_CONFIG_FILE'
local h11='"$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 zshrc_has_cfg=1
fi fi
local pre='${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh' local pre='${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh'
@ -2084,9 +2002,10 @@ else
_p9k_can_configure -q || return _p9k_can_configure -q || return
fi 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 local -ir has_truecolor=1
else else
local -ir has_truecolor=0 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 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 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 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 extra_icons=('' '' '')
local -a frame_color=(244 242 240 238) local -a frame_color=(244 242 240 238)
local -a color_name=(Lightest Light Dark Darkest) local -a color_name=(Lightest Light Dark Darkest)
@ -2115,7 +2034,7 @@ while true; do
unset pure_use_rprompt 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_font || continue
ask_diamond || continue ask_diamond || continue
if [[ $AWESOME_GLYPHS_LOADED == 1 ]]; then if [[ $AWESOME_GLYPHS_LOADED == 1 ]]; then
@ -2135,27 +2054,19 @@ while true; do
if (( cap_diamond )); then if (( cap_diamond )); then
POWERLEVEL9K_MODE=powerline POWERLEVEL9K_MODE=powerline
else else
ask_quotes || continue ask_arrow || continue
(( cap_quotes )) && POWERLEVEL9K_MODE=compatible || POWERLEVEL9K_MODE=ascii (( cap_arrow )) && POWERLEVEL9K_MODE=compatible || POWERLEVEL9K_MODE=ascii
fi fi
fi fi
elif (( ! cap_diamond )); then elif (( ! cap_diamond )); then
POWERLEVEL9K_MODE=awesome-fontconfig POWERLEVEL9K_MODE=awesome-fontconfig
else else
ask_arrow '\UF0737' || continue ask_debian || continue
if (( cap_arrow )); then if (( cap_debian )); then
ask_width || continue POWERLEVEL9K_MODE=nerdfont-complete
fi
if (( cap_arrow )); then
POWERLEVEL9K_MODE=nerdfont-v3
else else
ask_arrow '\uFC35' "Let's try another one." || continue POWERLEVEL9K_MODE=awesome-fontconfig
if (( cap_arrow )); then ask_python || continue
POWERLEVEL9K_MODE=nerdfont-complete
else
POWERLEVEL9K_MODE=awesome-fontconfig
ask_python || continue
fi
fi fi
fi fi
fi fi

Loading…
Cancel
Save