summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md915
-rw-r--r--config/p10k-classic.zsh2
-rw-r--r--config/p10k-lean-8colors.zsh2
-rw-r--r--config/p10k-lean.zsh2
-rw-r--r--config/p10k-pure.zsh11
-rw-r--r--config/p10k-rainbow.zsh2
-rw-r--r--internal/icons.zsh368
7 files changed, 874 insertions, 428 deletions
diff --git a/README.md b/README.md
index ff998721..581bc974 100644
--- a/README.md
+++ b/README.md
@@ -1,56 +1,289 @@
# Powerlevel10k
[![Gitter](https://badges.gitter.im/powerlevel10k/community.svg)](https://gitter.im/powerlevel10k/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
-Powerlevel10k is a theme for ZSH. It's fast, flexible and easy to install and configure.
+Powerlevel10k is a theme for Zsh. It emphasizes [speed](#uncompromising-performance),
+[flexibility](#extremely-customizable) and [out-of-the-box experience](#configuration-wizard).
-Powerlevel10k can be used as a [fast](#is-it-really-fast) drop-in replacement for
-[Powerlevel9k](https://github.com/bhilburn/powerlevel9k). When given the same configuration options
-it will generate the same prompt.
+![Powerlevel10k](
+ https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/prompt-styles.png)
-![Powerlevel10k](https://raw.githubusercontent.com/romkatv/powerlevel10k/master/powerlevel10k.png)
+To see what Powerlevel10k is about, scroll through [features](#features).
-## Table of Contents
+Powerlevel9k users, go [here](#powerlevel9k-compatibility).
-1. [Installation](#installation)
- 1. [Manual](#manual)
- 1. [Oh My Zsh](#oh-my-zsh)
- 1. [Prezto](#prezto)
- 1. [Zim](#zim)
- 1. [Antigen](#antigen)
- 1. [Zplug](#zplug)
- 1. [Zgen](#zgen)
- 1. [Antibody](#antibody)
- 1. [Zplugin](#zplugin)
-1. [Configuration](#configuration)
- 1. [For new users](#for-new-users)
- 1. [For Powerlevel9k users](#for-powerlevel9k-users)
-1. [Fonts](#fonts)
- 1. [Recommended: Meslo Nerd Font patched for Powerlevel10k](#recommended-meslo-nerd-font-patched-for-powerlevel10k)
-1. [Try it in Docker](#try-it-in-docker)
-1. [Is it really fast?](#is-it-really-fast)
-1. [License](#license)
-1. [FAQ](#faq)
- 1. [What is instant prompt?](#what-is-instant-prompt)
- 1. [Why do my icons and/or powerline symbols look bad?](#why-do-my-icons-andor-powerline-symbols-look-bad)
- 1. [I'm getting "character not in range" error. What gives?](#im-getting-character-not-in-range-error-what-gives)
- 1. [Why is my cursor in the wrong place?](#why-is-my-cursor-in-the-wrong-place)
- 1. [Why is my prompt wrapping around in a weird way?](#why-is-my-prompt-wrapping-around-in-a-weird-way)
- 1. [Why is my right prompt in the wrong place?](#why-is-my-right-prompt-in-the-wrong-place)
- 1. [Why does the configuration wizard run automatically every time I start zsh?](#why-does-the-configuration-wizard-run-automatically-every-time-i-start-zsh)
- 1. [I cannot install the recommended font. Help!](#i-cannot-install-the-recommended-font-help)
- 1. [Why do I have a question mark symbol in my prompt? Is my font broken?](#why-do-i-have-a-question-mark-symbol-in-my-prompt-is-my-font-broken)
- 1. [What do different symbols in Git status mean?](#what-do-different-symbols-in-git-status-mean)
- 1. [How do I change the format of Git status?](#how-do-i-change-the-format-of-git-status)
- 1. [How do I add username and/or hostname to prompt?](#how-do-i-add-username-andor-hostname-to-prompt)
- 1. [How do I change colors?](#how-do-i-change-colors)
- 1. [Why some prompt segments appear and disappear as I'm typing?](#why-some-prompt-segments-appear-and-disappear-as-im-typing)
- 1. [Why does Powerlevel10k spawn extra processes?](#why-does-powerlevel10k-spawn-extra-processes)
- 1. [Are there configuration options that make Powerlevel10k slow?](#are-there-configuration-options-that-make-powerlevel10k-slow)
- 1. [Is Powerlevel10k fast to load?](#is-powerlevel10k-fast-to-load)
- 1. [Does Powerlevel10k always render exactly the same prompt as Powerlevel9k given the same config?](#does-powerlevel10k-always-render-exactly-the-same-prompt-as-powerlevel9k-given-the-same-config)
- 1. [Is there an AUR package for Powerlevel10k?](#is-there-an-aur-package-for-powerlevel10k)
- 1. [I cannot make Powerlevel10k work with my plugin manager. Help!](#i-cannot-make-powerlevel10k-work-with-my-plugin-manager-help)
- 1. [What is the minimum supported zsh version?](#what-is-the-minimum-supported-zsh-version)
+Ready to give Powerlevel10k a try?
+
+1. Install [the recommended font](#meslo-nerd-font-patched-for-powerlevel10k). *Optional but highly
+ recommended.*
+1. Install Powerlevel10k for your plugin manager.
+ - [Manual](#manual) 👈 **choose this if confused or uncertain**
+ - [Oh My Zsh](#oh-my-zsh)
+ - [Prezto](#prezto)
+ - [Zim](#zim)
+ - [Antigen](#antigen)
+ - [Zplug](#zplug)
+ - [Zgen](#zgen)
+ - [Antibody](#antibody)
+ - [Zplugin](#zplugin)
+1. Restart Zsh.
+1. Type `p10k configure` if the configuration wizard doesn't start automatically.
+
+## Features
+
+### Configuration wizard
+
+Type `p10k configure` to access the builtin configuration wizard right from your terminal.
+
+![Powerlevel10k Configuration Wizard](
+ https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/configuration-wizard.gif)
+
+All styles except [Pure](#pure-compatibility) are functionally equivalent. They display the same
+information and differ only in presentation.
+
+Configuration wizard creates `~/.p10k.zsh` based on your preferences. Additional prompt
+customization can be done by editing this file. It has plenty of comments to help you navigate
+through configuration options.
+
+*Tip*: Install [the recommended font](#recommended-meslo-nerd-font-patched-for-powerlevel10k) before
+running `p10k configure`.
+
+*FAQ:*
+
+- [Why do I have a question mark symbol in my prompt? Is my font broken?](#why-do-i-have-a-question-mark-symbol-in-my-prompt-is-my-font-broken)
+- [What do different symbols in Git status mean?](#what-do-different-symbols-in-git-status-mean)
+- [How do I change the format of Git status?](#how-do-i-change-the-format-of-git-status)
+- [How do I add username and/or hostname to prompt?](#how-do-i-add-username-andor-hostname-to-prompt)
+- [How do I change colors?](#how-do-i-change-colors)
+- [Why some prompt segments appear and disappear as I'm typing?](#why-some-prompt-segments-appear-and-disappear-as-im-typing)
+
+### Uncompromising performance
+
+When you hit *ENTER*, the next prompt appears instantly. With Powerlevel10k there is no prompt lag.
+If you install Cygwin on Raspberry Pi, `cd` into a Linux Git repository and activate enough prompt
+segments to fill four prompt lines on both sides of the screen... wait, that's just crazy and no
+one ever does that. Probably impossible, too. The point is, Powerlevel10k prompt is always fast, no
+matter what you do!
+
+![Powerlevel10k Performance](
+ https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/performance.gif)
+
+Note how the effect of every command is instantly reflected by the very next prompt.
+
+| Command | Prompt Indicator | Meaning |
+|-------------------------------|:----------------:|----------------------------------------------------------------------:|
+| `timew start hack linux` | `🛡️ hack linux` | time tracking enabled in [timewarrior](https://timewarrior.net/) |
+| `touch x y` | `?2` | 2 untracked files in the Git repo |
+| `rm COPYING` | `!1` | 1 unstaged change in the Git repo |
+| `echo 2.7.3 >.python-version` | `🐍 2.7.3` | the current python version in [pyenv](https://github.com/pyenv/pyenv) |
+
+Other Zsh themes capable of displaying the same information either produce prompt lag or print
+prompt that doesn't reflect the current state of the system and then refresh it later. With
+Powerlevel10k you get fast prompt *and* up-to-date information.
+
+*FAQ*: [Is it really fast?](#is-it-really-fast)
+
+### Powerlevel9k compatibility
+
+Powerlevel10k understands all [Powerlevel9k](https://github.com/Powerlevel9k/powerlevel9k)
+configuration parameters.
+
+![Powerlevel10k Compatibility with 9k](
+ https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/9k-compatibility.gif)
+
+Migration from Powerlevel9k to Powerlevel10k is a straightforward process. All your `POWERLEVEL9K`
+configuration parameters will still work. Prompt will look the same as before ([almost](
+ #does-powerlevel10k-always-render-exactly-the-same-prompt-as-powerlevel9k-given-the-same-config))
+but it will be [much faster](#uncompromising-performance) ([certainly](#is-it-really-fast)).
+
+*FAQ*:
+
+- [I'm using Powerlevel9k with Oh My Zsh. How do I migrate?](
+ #im-using-powerlevel9k-with-oh-my-zsh-how-do-i-migrate)
+- [Does Powerlevel10k always render exactly the same prompt as Powerlevel9k given the same config?](
+ #does-powerlevel10k-always-render-exactly-the-same-prompt-as-powerlevel9k-given-the-same-config)
+
+### Pure compatibility
+
+Powerlevel10k can produce the same prompt as [Pure](https://github.com/sindresorhus/pure). Type
+`p10k configure` and select *Pure* style.
+
+![Powerlevel10k Pure Style](
+ https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/pure-style.gif)
+
+You can still use Powerlevel10k features such as [transient Prompt](#transient-prompt) or
+[instant Prompt](#instant-prompt) when sporting Pure style.
+
+To customize prompt, edit `~/.p10k.zsh`. Powerlevel10k doesn't recognize Pure configuration
+parameters, so you need to use `POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3` instead of
+`PURE_CMD_MAX_EXEC_TIME=3`, etc. All relevant parameters are in `~/.p10k.zsh`. This file has
+plenty of comments to help you navigate through it.
+
+### <a name='what-is-instant-prompt'></a>Instant prompt
+
+If your `~/.zshrc` loads many plugins, or perhaps just a few slow ones
+(for example, [pyenv](https://github.com/pyenv/pyenv) or [nvm](https://github.com/nvm-sh/nvm), you
+may have noticed that it takes some time for Zsh to start.
+
+![Powerlevel10k No Instant Prompt](
+ https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/no-instant-prompt.gif)
+
+Powerlevel10k can remove Zsh startup lag **even if it's not caused by a theme**.
+
+![Powerlevel10k Instant Prompt](
+ https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/instant-prompt.gif)
+
+This feature is called *Instant Prompt*. You need to explicitly enable it through `p10k configure`
+or [manually](#what-is-instant-prompt). It does what it says on the tin -- prints prompt instantly
+upon Zsh startup allowing you to start typing while plugins are still loading.
+
+Other themes *increase* Zsh startup lag -- some by a lot, others by a just a little. Powerlevel10k
+*removes* it outright.
+
+*FAQ:* [How do I enable instant prompt?](#how-do-i-enable-instant-prompt)
+
+### Show on command
+
+The behavior of some commands depends on global environment. For example, `kubectl run ...` runs an
+image on the cluster defined by the current kubernetes context. If you frequently change context
+between "prod" and "testing", you might want to display the current context in Zsh prompt. If you do
+likewise for AWS, Azure and Google Cloud credentials, prompt will get pretty crowded.
+
+Enter *Show On Command*. This feature makes prompt segments appear only when they are relevant to
+the command you are currently typing.
+
+![Powerlevel10k Show On Command](
+ https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/show-on-command.gif)
+
+Configs created by `p10k configure` enable show on command for several prompt segments by default.
+Here's the relevant parameter for kubernetes context:
+
+```zsh
+# Show prompt segment "kubecontext" only when the command you are typing
+# invokes kubectl, helm, kubens, kubectx or oc.
+typeset -g POWERLEVEL9K_KUBECONTEXT_SHOW_ON_COMMAND='kubectl|helm|kubens|kubectx|oc'
+```
+
+To customize when different prompt segments are shown, open `~/.p10k.zsh`, search for
+`SHOW_ON_COMMAND` and either remove these parameters to display affected segments unconditionally,
+or change their values.
+
+### Transient prompt
+
+When *Transient Prompt* is enabled through `p10k configure`, Powerlevel10k will trim down every
+prompt when accepting a command line.
+
+![Powerlevel10k Transient Prompt](
+ https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/transient-prompt.gif)
+
+Transient prompt makes it much easier to copy-paste series of commands from the terminal scrollback.
+
+*Tip*: If you enable Transient Prompt, take advantage of two-line prompt. You'll get the benefit of
+extra space for typing commands without the usual drawback of reduced scrollback density.
+
+### Current directory that just works
+
+The current working directory is perhaps the most important prompt segment. Powerlevel10k goes to
+great length to highlight its important parts and to truncate it with the least loss of information
+when horizontal space gets scarce.
+
+![Powerlevel10k Directory Truncation](
+ https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/directory-truncation.gif)
+
+When the full directory doesn't fit, the leftmost segment gets truncated to its shortest unique
+prefix. In the screencast, `~/work` becomes `~/wo`. It couldn't be truncated to `~/w` because it
+would be ambiguous (there was `~/wireguard` when the session was recorded). The next segment --
+`projects` -- turns into `p` as there was nothing else that started with `p` in `~/work/`.
+
+Directory segments are shown in one of three colors:
+
+- Truncated segments are bleak.
+- Important segments are bright and never truncated. These include the first and the last segment,
+ roots of Git repositories, etc.
+- Regular segments (not truncated but can be) use in-between color.
+
+*Tip*: If you copy-paste a truncated directory and hit *TAB*, it'll complete to the original.
+
+### Extremely customizable
+
+Powerlevel10k can be configured to look like any other Zsh theme out there.
+
+![Powerlevel10k Other Theme Emulation](
+ https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/other-theme-emulation.gif)
+
+[Pure](#pure-compatibility) and [Powerlevel9k](#powerlevel9k-compatibility) emulations are built-in.
+To emulate the appearence of other themes, you'll need to write a suitable configuration file. The
+best way to go about it is to run `p10k configure`, select the style that is the closest to your
+goal and then edit `~/.p10k.zsh`.
+
+The full range of Powerlevel10k appearance spans from spartan:
+
+![Powerlevel10k Spartan Style](
+ https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/spartan-style.png)
+
+To ~~ridiculous~~ extravagant:
+
+![Powerlevel10k Extravagant Style](
+ https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/extravagant-style.png)
+
+### Batteries included
+
+Powerlevel10k comes with dozens of built-in high quality segments. When you run `p10k configure`
+and choose any style except [Pure](#pure-compatibility), most of these segments get enabled by
+default. Some must be manually enabled by opening `~/.p10k.zsh` and uncommenting them. You can
+enable as many segments as you like. It won't slow down your prompt or Zsh startup.
+
+| Segment | Meaning |
+|--------:|---------|
+| `os_icon` | your OS logo (apple for macOS, swirl for debian, etc.) |
+| `dir` | current working directory |
+| `vcs` | Git repository status |
+| `prompt_char` | multi-functional prompt symbol; changes depending on vi mode: `❯`, `❮`, `Ⅴ`, `▶` for insert, command, visual and replace mode respectively; turns red on error |
+| `context` | user@hostname |
+| `status` | exit code of the last command |
+| `command_execution_time` | duration (wall time) of the last command |
+| `background_jobs` | presence of background jobs |
+| `time` | current time |
+| `direnv` | [direnv](https://direnv.net/) status |
+| `virtualenv` | python environment from [venv](https://docs.python.org/3/library/venv.html) |
+| `anaconda` | virtual environment from [conda](https://conda.io/) |
+| `pyenv` | python environment from [pyenv](https://github.com/pyenv/pyenv) |
+| `goenv` | go environment from [goenv](https://github.com/syndbg/goenv) |
+| `nodenv` | node.js environment from [nodenv](https://github.com/nodenv/nodenv) |
+| `nvm` | node.js environment from [nvm](https://github.com/nvm-sh/nvm) |
+| `nodeenv` | node.js environment from [nodeenv](https://github.com/ekalinin/nodeenv) |
+| `rbenv` | ruby environment from [rbenv](https://github.com/rbenv/rbenv) |
+| `rvm` | ruby environment from [rvm](https://rvm.io) |
+| `fvm` | flutter environment from [fvm](https://github.com/leoafarias/fvm) |
+| `luaenv` | lua environment from [luaenv](https://github.com/cehoffman/luaenv) |
+| `jenv` | java environment from [jenv](https://github.com/jenv/jenv) |
+| `plenv` | perl environment from [plenv](https://github.com/tokuhirom/plenv) |
+| `node_version` | [node.js](https://nodejs.org/) version |
+| `go_version` | [go](https://golang.org) version |
+| `rust_version` | [rustc](https://www.rust-lang.org) version |
+| `dotnet_version` | [dotnet](https://dotnet.microsoft.com) version |
+| `kubecontext` | current [kubernetes](https://kubernetes.io/) context |
+| `terraform` | [terraform](https://www.terraform.io) workspace |
+| `aws` | [aws profile](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) |
+| `aws_eb_env` | [aws elastic beanstalk](https://aws.amazon.com/elasticbeanstalk/) environment |
+| `azure` | [azure](https://docs.microsoft.com/en-us/cli/azure) account name |
+| `gcloud` | [google cloud](https://cloud.google.com/) cli acccount and project |
+| `google_app_cred` | [google application credentials](https://cloud.google.com/docs/authentication/production) |
+| `nordvpn` | [nordvpn](https://nordvpn.com/) connection status |
+| `ranger` | [ranger](https://github.com/ranger/ranger) shell |
+| `nnn` | [nnn](https://github.com/jarun/nnn) shell |
+| `vim_shell` | [vim](https://www.vim.org/) shell (`:sh`) |
+| `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 |
+| `todo` | [todo](https://github.com/todotxt/todo.txt-cli) items |
+| `timewarrior` | [timewarrior](https://timewarrior.net/) tracking status |
+| `vpn_ip` | virtual private network indicator |
+| `load` | CPU load |
+| `disk_usage` | disk usage |
+| `ram` | free RAM |
+| `swap` | used swap |
+| `public_ip` | public ip address |
+| `proxy` | system-wide http/https/ftp proxy |
+| `battery` | internal battery state and charge level (yep, batteries *literally* included) |
## Installation
@@ -62,8 +295,8 @@ echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>! ~/.zshrc
```
This is the simplest kind of installation and it works even if you are using a plugin manager. Just
-make sure to disable your current theme in your plugin manager. See
-[FAQ](#i-cannot-make-powerlevel10k-work-with-my-plugin-manager-help) for help.
+make sure to disable the current theme in your plugin manager. See
+[troubleshooting](#cannot-make-powerlevel10k-work-with-my-plugin-manager) for help.
### Oh My Zsh
@@ -71,36 +304,36 @@ make sure to disable your current theme in your plugin manager. See
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k
```
-Set `ZSH_THEME=powerlevel10k/powerlevel10k` in your `~/.zshrc`.
+Set `ZSH_THEME="powerlevel10k/powerlevel10k"` in `~/.zshrc`.
### Prezto
-Add `zstyle :prezto:module:prompt theme powerlevel10k` to your `~/.zpreztorc`.
+Add `zstyle :prezto:module:prompt theme powerlevel10k` to `~/.zpreztorc`.
### Zim
-Add `zmodule romkatv/powerlevel10k` to your `.zimrc` and run `zimfw install`.
+Add `zmodule romkatv/powerlevel10k` to `~/.zimrc` and run `zimfw install`.
### Antigen
-Add `antigen theme romkatv/powerlevel10k` to your `~/.zshrc`. Make sure you have `antigen apply`
+Add `antigen theme romkatv/powerlevel10k` to `~/.zshrc`. Make sure you have `antigen apply`
somewhere after it.
### Zplug
-Add `zplug romkatv/powerlevel10k, as:theme, depth:1` to your `~/.zshrc`.
+Add `zplug romkatv/powerlevel10k, as:theme, depth:1` to `~/.zshrc`.
### Zgen
-Add `zgen load romkatv/powerlevel10k powerlevel10k` to your `~/.zshrc`.
+Add `zgen load romkatv/powerlevel10k powerlevel10k` to `~/.zshrc`.
### Antibody
-Add `antibody bundle romkatv/powerlevel10k` to your `~/.zshrc`.
+Add `antibody bundle romkatv/powerlevel10k` to `~/.zshrc`.
### Zplugin
-Add `zplugin ice depth=1; zplugin light romkatv/powerlevel10k` to your `~/.zshrc`.
+Add `zplugin ice depth=1; zplugin 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.
@@ -109,20 +342,17 @@ supported by Powerlevel10k.
### For new users
-On the first run, Powerlevel10k configuration wizard will ask you a few questions and configure
-your prompt. If it doesn't trigger automatically, type `p10k configure`. You can further customize
-your prompt by editing `~/.p10k.zsh`.
+On the first run, Powerlevel10k [configuration wizard](#configuration-wizard) will ask you a few
+questions and configure your prompt. If it doesn't trigger automatically, type `p10k configure`.
+Configuration wizard creates `~/.p10k.zsh` based on your preferences. Additional prompt
+customization can be done by editing this file. It has plenty of comments to help you navigate
+through configuration options.
### For Powerlevel9k users
If you've been using Powerlevel9k before, **do not remove the configuration options**. Powerlevel10k
-will pick them up and provide you with the same prompt UI you are used to. Powerlevel10k recognized
-all configuration options used by Powerlevel9k. See Powerlevel9k
-[configuration guide](https://github.com/Powerlevel9k/powerlevel9k/blob/master/README.md#prompt-customization).
-
-To go beyond the functionality of Powerlevel9k, type `p10k configure` and explore the unique styles
-and features Powerlevel10k has to offer. You can further customize your prompt by editing
-`~/.p10k.zsh`.
+will pick them up and provide you with the same prompt UI you are used to. See
+[Powerlevel9k compatibility](#powerlevel9k-compatibility).
## Fonts
@@ -133,7 +363,23 @@ It works well with [Nerd Fonts](https://github.com/ryanoasis/nerd-fonts),
the default system fonts. The full choice of style options is available only when using
[Nerd Fonts](https://github.com/ryanoasis/nerd-fonts).
-### Recommended: Meslo Nerd Font patched for Powerlevel10k
+👇 **Recommended font**: Meslo Nerd Font patched for Powerlevel10k. 👇
+
+### <a name='recommended-meslo-nerd-font-patched-for-powerlevel10k'></a>Meslo Nerd Font patched for Powerlevel10k
+
+Gorgeous monospace font designed by Jim Lyles for Apple, customized by André Berg, patched by Ryan
+L McIntyre of Nerd Fonts, and hand-edited in FontForge by yours trully. Contains all glyphs and
+symbols that Powerlevel10k may need. Battle-tested in dozens of different terminals on all major
+operating systems.
+
+#### Automatic font installation
+
+If you are using iTerm2 or Termux, `p10k configure` can install the recommended font for you.
+Simply answer `Yes` when asked whether to install *Meslo Nerd Font*.
+
+If you are using a different terminal, proceed with manual font installation. 👇
+
+#### Manual font installation
Download these four ttf files:
- [MesloLGS NF Regular.ttf](https://github.com/romkatv/dotfiles-public/raw/master/.local/share/fonts/NerdFonts/MesloLGS%20NF%20Regular.ttf)
@@ -141,12 +387,12 @@ Download these four ttf files:
- [MesloLGS NF Italic.ttf](https://github.com/romkatv/dotfiles-public/raw/master/.local/share/fonts/NerdFonts/MesloLGS%20NF%20Italic.ttf)
- [MesloLGS NF Bold Italic.ttf](https://github.com/romkatv/dotfiles-public/raw/master/.local/share/fonts/NerdFonts/MesloLGS%20NF%20Bold%20Italic.ttf)
-Double-click on each file and press "Install". This will make `MesloLGS NF` font available to all
+Double-click on each file and click "Install". This will make `MesloLGS NF` font available to all
applications on your system. Configure your terminal to use this font:
-- **iTerm2**: Type `p10k configure`, answer `Yes` when asked whether to install
- *Meslo Nerd Font* and restart iTerm2 for the changes to take effect. Alternatively, open
- *iTerm2 → Preferences → Profiles → Text* and set *Font* to `MesloLGS NF`.
+- **iTerm2**: Open *iTerm2 → Preferences → Profiles → Text* and set *Font* to `MesloLGS NF`.
+ Alternatively, type `p10k configure` and answer `Yes` when asked whether to install
+ *Meslo Nerd Font*.
- **Apple Terminal** Open *Terminal → Preferences → Profiles → Text*, click *Change* under *Font*
and select `MesloLGS NF` family.
- **Hyper**: Open *Hyper → Edit → Preferences* and change the value of `fontFamily` under
@@ -167,27 +413,60 @@ applications on your system. Configure your terminal to use this font:
- **Termux**: Type `p10k configure` and answer `Yes` when asked whether to install
*Meslo Nerd Font*.
-Run `p10k configure` to pick the best style for your new font.
+**IMPORTANT:** Run `p10k configure` after changing terminal font. The old `~/.p10k.zsh` may work
+incorrectly with the new font.
-_Using a different terminal and know how to set the font for it? Share your knowledge by sending a PR
-to expand the list!_
+_Using a different terminal and know how to set the font for it? Share your knowledge by sending a
+PR to expand the list!_
## Try it in Docker
Try Powerlevel10k in Docker. You can safely make any changes to the file system while trying out
-the theme. Once you exit zsh, the image is deleted.
+the theme. Once you exit Zsh, the image is deleted.
```zsh
-docker run -e TERM -it --rm debian:buster bash -uec '
+docker run -e TERM -e COLORTERM -it --rm debian:buster bash -uec '
apt update
- apt install -y git zsh
+ apt install -y git zsh nano vim
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
echo "source ~/powerlevel10k/powerlevel10k.zsh-theme" >>~/.zshrc
cd ~/powerlevel10k
exec zsh'
```
-## Is it really fast?
+*Tip*: Install [the recommended font](#recommended-meslo-nerd-font-patched-for-powerlevel10k) before
+running the Docker command to get access to all prompt styles.
+
+*Tip*: Run `p10k configure` while in Docker to try a different prompt style.
+
+## License
+
+Powerlevel10k is released under the
+[MIT license](https://github.com/romkatv/powerlevel10k/blob/master/LICENSE).
+
+## FAQ
+
+### I'm using Powerlevel9k with Oh My Zsh. How do I migrate?
+
+1. Run this command:
+```zsh
+# Add powerlevel10k to the list of Oh My Zsh themes.
+git clone --depth=1 https://github.com/romkatv/powerlevel10k.git $ZSH_CUSTOM/themes/powerlevel10k
+# Replace ZSH_THEME="powerlevel9k/powerlevel9k" with ZSH_THEME="powerlevel10k/powerlevel10k".
+sed 's/powerlevel9k/powerlevel10k/g' -i ~/.zshrc
+# Restart Zsh.
+exec zsh
+```
+2. *Optional but highly recommended:*
+ 1. Install [the recommended font](#meslo-nerd-font-patched-for-powerlevel10k).
+ 1. Type `p10k configure` and chose your favorite prompt style.
+
+*Related:*
+ - [Powerlevel9k compatibility.](#powerlevel9k-compatibility)
+ - [Does Powerlevel10k always render exactly the same prompt as Powerlevel9k given the same config?](#does-powerlevel10k-always-render-exactly-the-same-prompt-as-powerlevel9k-given-the-same-config)
+ - [Extra or missing spaces in prompt compared to Powerlevel9k.](#extra-or-missing-spaces-in-prompt-compared-to-powerlevel9k)
+
+### Is it really fast?
Yes.
@@ -214,22 +493,12 @@ Powerlevel10k, on the other hand, doesn't require trading latency for utility --
instant with any configuration. It stays well below the 50 ms mark, leaving most of the latency
budget for other plugins you might install.
-## License
+### How do I enable instant prompt?
-Powerlevel10k is released under the
-[MIT license](https://github.com/romkatv/powerlevel10k/blob/master/LICENSE). Contributions are
-covered by the same license.
+See [instant prompt](#instant-prompt) to learn what instant prompt is. This section explains how
+you can enable it and lists caveats that you should be aware of.
-## FAQ
-
-### <a name='instant-prompt'></a>What is instant prompt?
-
-*Instant Prompt* is an optional feature of Powerlevel10k. When enabled, it gives you a limited
-prompt within a few milliseconds of starting zsh, allowing you to start hacking right away while zsh
-is initializing. Once initialization is complete, the full-featured Powerlevel10k prompt will
-seamlessly replace instant prompt.
-
-You can enable instant prompt either by running `p10k configure` or by manually adding the following
+Instant prompt can be enabled either through `p10k configure` or by manually adding the following
code snippet at the top of `~/.zshrc`:
```zsh
@@ -266,6 +535,7 @@ fi
keychain id_rsa --agents ssh # asks for password
chatty-script # spams to stdout even when everything is fine
+# ...
```
Fixed version:
@@ -281,6 +551,7 @@ fi
# console output may appear uncolored.
chatty-script >/dev/null # spam output suppressed
+# ...
```
If `POWERLEVEL9K_INSTANT_PROMPT` is unset or set to `verbose`, Powerlevel10k will print a warning
@@ -294,125 +565,6 @@ initialization and you don't know how to fix it.
*NOTE: Instant prompt requires zsh >= 5.4. It's OK to enable it even when using an older version of
zsh but it won't do anything.*
-### Why do my icons and/or powerline symbols look bad?
-
-It's likely your font's fault.
-[Install the recommended font](#recommended-meslo-nerd-font-patched-for-powerlevel10k) and run
-`p10k configure`.
-
-### I'm getting "character not in range" error. What gives?
-
-Type `echo '\u276F'`. If you get an error saying "zsh: character not in range", your locale
-doesn't support UTF-8. You need to fix it. If you are running zsh over SSH, see
-[this](https://github.com/romkatv/powerlevel10k/issues/153#issuecomment-518347833). If you are
-running zsh locally, Google "set UTF-8 locale in *your OS*".
-
-### Why is my cursor in the wrong place?
-
-Type `echo '\u276F'`. If you get an error saying "zsh: character not in range", see the
-[previous question](#im-getting-character-not-in-range-error-what-gives).
-
-If the `echo` command prints `❯` but the cursor is still in the wrong place, install
-[the recommended font](#recommended-meslo-nerd-font-patched-for-powerlevel10k) and run
-`p10k configure`.
-
-If this doesn't help, add `unset ZLE_RPROMPT_INDENT` at the bottom of `~/.zshrc`.
-
-Still having issues? Run the following command to diagnose the problem:
-
-```zsh
-() {
- emulate -L zsh
- setopt err_return no_unset
- local text
- print -rl -- 'Select a part of your prompt from the terminal window and paste it below.' ''
- read -r '?Prompt: ' text
- local -i len=${(m)#text}
- local frame="+-${(pl.$len..-.):-}-+"
- print -lr -- $frame "| $text |" $frame
-}
-```
-
-#### If the prompt line aligns with the frame
-
-```text
-+------------------------------+
-| romka@adam ✓ ~/powerlevel10k |
-+------------------------------+
-```
-
-If the output of the command is aligned for every part of your prompt (left and right), this
-indicates a bug in the theme or your config. Use this command to diagnose it:
-
-```zsh
-print -rl -- ${(eq+)PROMPT} ${(eq+)RPROMPT}
-```
-
-Look for `%{...%}` and backslash escapes in the output. If there are any, they are the likely
-culprits. Open an issue if you get stuck.
-
-#### If the prompt line is longer than the frame
-
-```text
-+-----------------------------+
-| romka@adam ✓ ~/powerlevel10k |
-+-----------------------------+
-```
-
-This is usually caused by a terminal bug or misconfiguration that makes it print ambiguous-width
-characters as double-width instead of single width. For example,
-[this issue](https://github.com/romkatv/powerlevel10k/issues/165).
-
-#### If the prompt line is shorter than the frame and is mangled
-
-```text
-+------------------------------+
-| romka@adam ✓~/powerlevel10k |
-+------------------------------+
-```
-
-Note that this prompt is different from the original as it's missing a space after the checkmark.
-
-This can be caused by a low-level bug in macOS. See
-[this issue](https://github.com/romkatv/powerlevel10k/issues/241).
-
-#### If the prompt line is shorter than the frame and is not mangled
-
-```text
-+--------------------------------+
-| romka@adam ✓ ~/powerlevel10k |
-+--------------------------------+
-```
-
-This can be caused by misconfigured locale. See
-[this issue](https://github.com/romkatv/powerlevel10k/issues/251).
-
-### Why is my prompt wrapping around in a weird way?
-
-See [Why is my cursor in the wrong place?](#why-is-my-cursor-in-the-wrong-place)
-
-### Why is my right prompt in the wrong place?
-
-See [Why is my cursor in the wrong place?](#why-is-my-cursor-in-the-wrong-place)
-
-### Why does the configuration wizard run automatically every time I start zsh?
-
-When Powerlevel10k starts, it automatically runs `p10k configure` if no `POWERLEVEL9K_*`
-parameters are defined. Based on your prompt style choices, the configuration wizard creates
-`~/.p10k.zsh` with a bunch of `POWERLEVEL9K_*` parameters in it and adds a line to `~/.zshrc` to
-source this file. The next time you start zsh, the configuration wizard shouldn't run automatically.
-If it does, this means the evaluation of `~/.zshrc` terminates prematurely before it reaches the
-line that sources `~/.p10k.zsh`. This most often happens due to syntax errors in `~/.zshrc`. These
-errors get hidden by the configuration wizard screen, so you don't notice them. Scroll up in the
-first configuration wizard screen to see these errors. Alternatively, run
-`POWERLEVEL9K_DISABLE_CONFIGURATION_WIZARD=true zsh` to start zsh without automatically running the
-configuration wizard. Once you can see the errors, fix `~/.zshrc` to get rid of them.
-
-### I cannot install the recommended font. Help!
-
-Once you download [the recommended font](#recommended-meslo-nerd-font-patched-for-powerlevel10k),
-you can install it just like any other font. Google "how to install fonts on *your OS*".
-
### Why do I have a question mark symbol in my prompt? Is my font broken?
If it looks like a regular `?`, that's normal. It means you have untracked files in the current Git
@@ -445,13 +597,16 @@ feature:master ⇣42⇡42 *42 merge ~42 +42 !42 ?42
| `!42` | this many unstaged changes | `git status` |
| `?42` | this many untracked files | `git status` |
-See also: [How do I change the format of Git status?](#how-do-i-change-the-format-of-git-status)
+*Related*: [How do I change the format of Git status?](#how-do-i-change-the-format-of-git-status)
### How do I change the format of Git status?
To change the format of Git status, open `~/.p10k.zsh`, search for `my_git_formatter` and edit its
source code.
+*Related*: [What do different symbols in Git status mean?](
+ #what-do-different-symbols-in-git-status-mean)
+
### How do I add username and/or hostname to prompt?
When using *Lean*, *Classic* or *Rainbow* style, prompt shows `username@hostname` when you are
@@ -467,7 +622,7 @@ them are enabled, others are commented out. One of them is of interest to you.
```zsh
typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
...
- context # user@hostname
+ context # user@hostname
...
)
```
@@ -485,8 +640,8 @@ If you follow the tip and remove (or comment out) the last line, you'll always s
`username@hostname` in prompt. You can change the format to just `username`, or change the color, by
adjusting the values of parameters nearby. There are plenty of comments to help you navigate.
-Finally, you can move `context` segment to where you want it to be in your prompt. Perhaps somewhere
-within `POWERLEVEL9K_LEFT_PROMPT_ELEMENTS`.
+You can also move `context` to a different position in `POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS` or even
+to `POWERLEVEL9K_LEFT_PROMPT_ELEMENTS`.
### Why some prompt segments appear and disappear as I'm typing?
@@ -505,15 +660,41 @@ parameters or change their values.
### How do I change colors?
+You can either [change the color palette used by your terminal](
+ #change-the-color-palette-used-by-your-terminal) or
+[set colors through Powerlevel10k configuration parameters](
+ #set-colors-through-Powerlevel10k-configuration-parameters).
+
+#### Change the color palette used by your terminal
+
+How exactly you change the terminal color pallete (a.k.a. color scheme, or theme) depends on the
+kind of terminal you are using. Look around in terminal's settings/preferences or consult
+documentation.
+
+When you change the terminal color palette, it usually affects only the first 16 colors, numbered
+from 0 to 15. In order to see any effect on Powerlevel10k prompt, you need to use prompt style that
+utilizes these low-numbered colors. Type `p10k configure` and select *Rainbow*, *Lean* → *8 colors*
+or *Pure* → *Original*. Other styles use higher-numbered colors, so they look the same in any
+terminal color palette.
+
+#### Set colors through Powerlevel10k configuration parameters
+
Open `~/.p10k.zsh`, search for "color", "foreground" and "background" and change values of
-appropriate parameters. Colors are specified using numbers from 0 to 255. Colors from 0 to 15 look
-differently in different terminals. Many terminals also support customization of these colors
-through color schemes or themes. Colors from 16 to 255 always look the same.
+appropriate parameters. For example, here's how you can set the foreground of `time` prompt segment
+to bright red:
+
+```zsh
+typeset -g POWERLEVEL9K_TIME_FOREGROUND=160
+```
+
+Colors are specified using numbers from 0 to 255. Colors from 0 to 15 look differently in different
+terminals. Many terminals also support customization of these colors through color palettes
+(a.k.a. color schemes, or themes). Colors from 16 to 255 always look the same.
To see how different colors look in your terminal, run the following command:
```zsh
-for i in {0..255}; do print -Pn "%${i}F${(l:3::0:)i}%f " ${${(M)$((i%8)):#7}:+$'\n'}; done
+for i in {0..255}; do print -Pn "%K{$i} %k%F{$i}${(l:3::0:)i}%f " ${${(M)$((i%8)):#7}:+$'\n'}; done
```
### Why does Powerlevel10k spawn extra processes?
@@ -521,8 +702,9 @@ for i in {0..255}; do print -Pn "%${i}F${(l:3::0:)i}%f " ${${(M)$((i%8)):#7}:+$'
Powerlevel10k uses [gitstatus](https://github.com/romkatv/gitstatus) as the backend behind `vcs`
prompt; gitstatus spawns `gitstatusd` and `zsh`. See
[gitstatus](https://github.com/romkatv/gitstatus) for details. Powerlevel10k may also spawn `zsh`
-to trigger async prompt refresh. To avoid security hazard, these background processes aren't shared
-by different interactive shells.
+to perform computation without blocking prompt. To avoid security hazard, these background processes
+aren't shared by different interactive shells. They terminate automatically when the parent `zsh`
+process terminates or runs `exec(3)`.
### Are there configuration options that make Powerlevel10k slow?
@@ -540,8 +722,8 @@ Loading time, or time to first prompt, can be measured with the following benchm
time (repeat 1000 zsh -dfis <<< 'source ~/powerlevel10k/powerlevel10k.zsh-theme')
```
-*NOTE: This measures time to first complete prompt. Powerlevel10k can also display a
-[limited prompt](#what-is-instant-prompt) before the full-featured prompt is ready.*
+*Note:* This measures time to first complete prompt. Powerlevel10k can also display a
+[limited prompt](#what-is-instant-prompt) before the full-featured prompt is ready.
Running this command with `~/powerlevel10k` as the current directory on the same machine as in the
[prompt benchmark](#is-it-really-fast) takes 29 seconds (29 ms per invocation). This is about 6
@@ -549,22 +731,26 @@ times faster than powerlevel9k/master and 17 times faster than powerlevel9k/next
### Does Powerlevel10k always render exactly the same prompt as Powerlevel9k given the same config?
-This is the goal. You should be able to switch from Powerlevel9k to Powerlevel10k with no
-visible changes except for performance. There are, however, several differences.
+Almost. There are a few differences.
-- By default only `git` vcs backend is enabled in Powerlevel10k. If you need `svn` and `hg`, you'll
- need to add them to `POWERLEVEL9K_VCS_BACKENDS`.
+- By default only `git` vcs backend is enabled in Powerlevel10k. If you need `svn` and `hg`, add
+ them to `POWERLEVEL9K_VCS_BACKENDS`.
+- Powerlevel10k doesn't support `POWERLEVEL9K_VCS_SHOW_SUBMODULE_DIRTY=true`.
- Powerlevel10k strives to be bug-compatible with Powerlevel9k but not when it comes to egregious
bugs. If you accidentally rely on these bugs, your prompt will differ between Powerlevel9k and
Powerlevel10k. Some examples:
- - Powerlevel9k doesn't respect `ZLE_RPROMPT_INDENT`. As a result, right prompt in Powerlevel10k
- can have an extra space at the end compared to Powerlevel9k. Set `ZLE_RPROMPT_INDENT=0` if you
- don't want that space.
- Powerlevel9k ignores some options that are set after the theme is sourced while Powerlevel10k
respects all options. If you see different icons in Powerlevel9k and Powerlevel10k, you've
probably defined `POWERLEVEL9K_MODE` before sourcing the theme. This parameter gets ignored
by Powerlevel9k but honored by Powerlevel10k. If you want your prompt to look in Powerlevel10k
the same as in Powerlevel9k, remove `POWERLEVEL9K_MODE`.
+ - Powerlevel9k doesn't respect `ZLE_RPROMPT_INDENT`. As a result, right prompt in Powerlevel10k
+ can have an extra space at the end compared to Powerlevel9k. Set `ZLE_RPROMPT_INDENT=0` if you
+ don't want that space. More details in
+ [troubleshooting](#extra-space-without-background-on-the-right-side-of-right-prompt).
+ - Powerlevel9k has inconsistent spacing around icons. This was fixed in Powerlevel10k. Set
+ `POWERLEVEL9K_LEGACY_ICON_SPACING=true` to get the same spacing as in Powerlevel9k. More
+ details in [troubleshooting](#extra-or-missing-spaces-after-some-icons).
- There are
[dozens more bugs](https://github.com/Powerlevel9k/powerlevel9k/issues/created_by/romkatv) in
Powerlevel9k that don't exist in Powerlevel10k.
@@ -577,32 +763,283 @@ Powerlevel10k, please [open an issue](https://github.com/romkatv/powerlevel10k/i
Yes, [zsh-theme-powerlevel10k-git](https://aur.archlinux.org/packages/zsh-theme-powerlevel10k-git/).
This package is owned by an unaffiliated volunteer.
-### I cannot make Powerlevel10k work with my plugin manager. Help!
+### What is the minimum supported zsh version?
+
+Zsh 5.1 or newer should work. Fast startup requires zsh >= 5.4.
+
+### How were these screenshots and animated gifs created?
+
+All screenshots and animated gifs were recorded in GNOME Terminal with
+[the recommended font](#meslo-nerd-font-patched-for-powerlevel10k) and Tango Dark color scheme with
+custom background color (`#171A1B` instead of `#2E3436` -- twice as dark).
+
+![GNOME Terminal Color Settings](
+ https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/gnome-terminal-colors.png)
+
+## Troubleshooting
+
+### Icons, glyphs or powerline symbols don't render
+
+Restart your terminal, [install the recommended font](
+ #recommended-meslo-nerd-font-patched-for-powerlevel10k) and run `p10k configure`.
+
+### Small imperfections around powerline symbols
+
+TODO
+
+### zsh: character not in range
+
+Type `echo '\u276F'`. If you get an error saying "zsh: character not in range", your locale
+doesn't support UTF-8. You need to fix it. If you are running zsh over SSH, see
+[this](https://github.com/romkatv/powerlevel10k/issues/153#issuecomment-518347833). If you are
+running zsh locally, Google "set UTF-8 locale in *your OS*".
+
+### Cursor is in the wrong place
+
+Type `echo '\u276F'`. If you get an error saying "zsh: character not in range", see the
+[previous section](#zsh-character-not-in-range).
+
+If the `echo` command prints `❯` but the cursor is still in the wrong place, install
+[the recommended font](#recommended-meslo-nerd-font-patched-for-powerlevel10k) and run
+`p10k configure`.
+
+If this doesn't help, add `unset ZLE_RPROMPT_INDENT` at the bottom of `~/.zshrc`.
+
+Still having issues? Run the following command to diagnose the problem:
+
+```zsh
+() {
+ emulate -L zsh
+ setopt err_return no_unset
+ local text
+ print -rl -- 'Select a part of your prompt from the terminal window and paste it below.' ''
+ read -r '?Prompt: ' text
+ local -i len=${(m)#text}
+ local frame="+-${(pl.$len..-.):-}-+"
+ print -lr -- $frame "| $text |" $frame
+}
+```
+
+#### If the prompt line aligns with the frame
+
+```text
++------------------------------+
+| romka@adam ✓ ~/powerlevel10k |
++------------------------------+
+```
+
+If the output of the command is aligned for every part of your prompt (left and right), this
+indicates a bug in the theme or your config. Use this command to diagnose it:
+
+```zsh
+print -rl -- ${(eq+)PROMPT} ${(eq+)RPROMPT}
+```
+
+Look for `%{...%}` and backslash escapes in the output. If there are any, they are the likely
+culprits. Open an issue if you get stuck.
+
+#### If the prompt line is longer than the frame
+
+```text
++-----------------------------+
+| romka@adam ✓ ~/powerlevel10k |
++-----------------------------+
+```
+
+This is usually caused by a terminal bug or misconfiguration that makes it print ambiguous-width
+characters as double-width instead of single width. For example,
+[this issue](https://github.com/romkatv/powerlevel10k/issues/165).
+
+#### If the prompt line is shorter than the frame and is mangled
+
+```text
++------------------------------+
+| romka@adam ✓~/powerlevel10k |
++------------------------------+
+```
+
+Note that this prompt is different from the original as it's missing a space after the checkmark.
+
+This can be caused by a low-level bug in macOS. See
+[this issue](https://github.com/romkatv/powerlevel10k/issues/241).
+
+#### If the prompt line is shorter than the frame and is not mangled
+
+```text
++--------------------------------+
+| romka@adam ✓ ~/powerlevel10k |
++--------------------------------+
+```
+
+This can be caused by misconfigured locale. See
+[this issue](https://github.com/romkatv/powerlevel10k/issues/251).
+
+### Prompt wrapping around in a weird way
+
+See [cursor is in the wrong place](#cursor-is-in-the-wrong-place).
+
+### Right prompt is in the wrong place
+
+See [cursor is in the wrong place](#cursor-is-in-the-wrong-place).
+
+### Configuration wizard run automatically every time zsh is started
+
+When Powerlevel10k starts, it automatically runs `p10k configure` if no `POWERLEVEL9K_*`
+parameters are defined. Based on your prompt style choices, the configuration wizard creates
+`~/.p10k.zsh` with a bunch of `POWERLEVEL9K_*` parameters in it and adds a line to `~/.zshrc` to
+source this file. The next time you start zsh, the configuration wizard shouldn't run automatically.
+If it does, this means the evaluation of `~/.zshrc` terminates prematurely before it reaches the
+line that sources `~/.p10k.zsh`. This most often happens due to syntax errors in `~/.zshrc`. These
+errors get hidden by the configuration wizard screen, so you don't notice them. Scroll up in the
+first configuration wizard screen to see these errors. Alternatively, run
+`POWERLEVEL9K_DISABLE_CONFIGURATION_WIZARD=true zsh` to start zsh without automatically running the
+configuration wizard. Once you can see the errors, fix `~/.zshrc` to get rid of them.
+
+### Cannot install the recommended font
+
+Once you download [the recommended font](#recommended-meslo-nerd-font-patched-for-powerlevel10k),
+you can install it just like any other font. Google "how to install fonts on *your OS*".
+
+### Extra or missing spaces in prompt compared to Powerlevel9k
+
+tl;dr: Add `ZLE_RPROMPT_INDENT=0` and `POWERLEVEL9K_LEGACY_ICON_SPACING=true` to `~/.zshrc` to get
+the same prompt spacing as in Powerlevel9k.
+
+When using Powerlevel10k with a Powerlevel9k config, you might get additional spaces in prompt here
+and there. These come in two flavors.
+
+#### Extra space without background on the right side of right prompt
+
+tl;dr: Add `ZLE_RPROMPT_INDENT=0` to `~/.zshrc` to get rid of that space.
+
+From [Zsh documentation](
+ http://zsh.sourceforge.net/Doc/Release/Parameters.html#index-ZLE_005fRPROMPT_005fINDENT):
+
+> `ZLE_RPROMPT_INDENT <S>`
+>
+> If set, used to give the indentation between the right hand side of the right prompt in the line
+> editor as given by `RPS1` or `RPROMPT` and the right hand side of the screen. If not set, the
+> value `1` is used.
+>
+> Typically this will be used to set the value to `0` so that the prompt appears flush with the
+> right hand side of the screen.
+
+Powerlevel10k respects this parameter. If you set `ZLE_RPROMPT_INDENT=1` (or leave it unset, which
+is the same thing as setting it to `1`), you'll get an empty space to the right of right prompt. If
+you set `ZLE_RPROMPT_INDENT=0`, your prompt will go to the edge of the terminal. This is how it
+works in every theme except Powerlevel9k.
+
+![ZLE_RPROMPT_INDENT: Powerlevel10k vs Powerlevel9k](
+ https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/p9k-vs-p10k-zle-rprompt-indent.png)
+
+Powerlevel9k issue: [powerlevel9k#1292](https://github.com/Powerlevel9k/powerlevel9k/issues/1292).
+It's been fixed in the development branch of Powerlevel9k but the fix hasn't yet made it to
+`master`.
+
+Add `ZLE_RPROMPT_INDENT=0` to `~/.zshrc` to get the same spacing on the right edge of prompt as in
+Powerlevel9k.
+
+*Note:* Several versions of Zsh have bugs that get triggered when you set `ZLE_RPROMPT_INDENT=0`.
+Powerlevel10k can work around these bugs when using powerline prompt style. If you notice visual
+artifacts in prompt, or wrong cursor position, try removing `ZLE_RPROMPT_INDENT` from `~/.zshrc`.
+
+#### Extra or missing spaces after some icons
+
+tl;dr: Add `POWERLEVEL9K_LEGACY_ICON_SPACING=true` to `~/.zshrc` to get rid of these spaces.
+
+Spacing around icons in Powerlevel9k is inconsistent.
+
+![ZLE_RPROMPT_INDENT: Powerlevel10k vs Powerlevel9k](
+ https://raw.githubusercontent.com/romkatv/powerlevel10k-media/master/p9k-vs-p10k-icon-spacing.png)
+
+This inconsistency is a constant source of annoyance, so it was fixed in Powerlevel10k. You can add
+`POWERLEVEL9K_LEGACY_ICON_SPACING=true` to `~/.zshrc` to get the same spacing around icons as in
+Powerlevel9k.
+
+*Note:* It's not a good idea to define `POWERLEVEL9K_LEGACY_ICON_SPACING` when using
+`p10k configure`.
+
+### Cannot make Powerlevel10k work with my plugin manager
If the [installation instructions](#installation) didn't work for you, try disabling your current
theme (so that you end up with no theme) and then installing Powerlevel10k manually.
1. Disable the current theme in your framework / plugin manager.
+- **oh-my-zsh:** Open `~/.zshrc` and remove the line that sets `ZSH_THEME`. It might look like this:
+ `ZSH_THEME="powerlevel9k/powerlevel9k"`.
- **zplug:** Open `~/.zshrc` and remove the `zplug` command that refers to your current theme. For
example, if you are currently using Powerlevel9k, look for
`zplug bhilburn/powerlevel9k, use:powerlevel9k.zsh-theme`.
- **prezto:** Open `~/.zpreztorc` and put `zstyle :prezto:module:prompt theme off` in it. Remove
any other command that sets `theme` such as `zstyle :prezto:module:prompt theme powerlevel9k`.
-- **oh-my-zsh:** Open `~/.zshrc` and remove the line that sets `ZSH_THEME`, such as
- `ZSH_THEME=powerlevel9k/powerlevel9k`.
-- **antigen:** Open `~/.zshrc` and remove the line that sets `antigen theme`, such as
- `antigen theme powerlevel9k/powerlevel9k`.
+- **antigen:** Open `~/.zshrc` and remove the line that sets `antigen theme`. It might look like
+ this: `antigen theme powerlevel9k/powerlevel9k`.
2. Install Powerlevel10k manually.
```zsh
-git clone https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
+git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
echo 'source ~/powerlevel10k/powerlevel10k.zsh-theme' >>! ~/.zshrc
```
This method of installation won't make anything slower or otherwise sub-par.
-### What is the minimum supported zsh version?
-
-Zsh 5.1 or newer should work. Fast startup requires zsh >= 5.4.
+## Table of contents
+
+1. [Features](#features)
+ 1. [Configuration wizard](#configuration-wizard)
+ 1. [Uncompromising performance](#uncompromising-performance)
+ 1. [Powerlevel9k compatibility](#powerlevel9k-compatibility)
+ 1. [Pure compatibility](#pure-compatibility)
+ 1. [Instant prompt](#instant-prompt)
+ 1. [Show On Command](#show-on-command)
+ 1. [Transient prompt](#transient-prompt)
+ 1. [Current directory that just works](#current-directory-that-just-works)
+ 1. [Extremely customizable](#extremely-customizable)
+ 1. [Batteries included](#batteries-included)
+1. [Installation](#installation)
+ 1. [Manual](#manual)
+ 1. [Oh My Zsh](#oh-my-zsh)
+ 1. [Prezto](#prezto)
+ 1. [Zim](#zim)
+ 1. [Antigen](#antigen)
+ 1. [Zplug](#zplug)
+ 1. [Zgen](#zgen)
+ 1. [Antibody](#antibody)
+ 1. [Zplugin](#zplugin)
+1. [Configuration](#configuration)
+ 1. [For new users](#for-new-users)
+ 1. [For Powerlevel9k users](#for-powerlevel9k-users)
+1. [Fonts](#fonts)
+ 1. [Meslo Nerd Font patched for Powerlevel10k](#meslo-nerd-font-patched-for-powerlevel10k)
+ 1. [Automatic font installation](#automatic-font-installation)
+ 1. [Manual font installation](#manual-font-installation)
+1. [Try it in Docker](#try-it-in-docker)
+1. [License](#license)
+1. [FAQ](#faq)
+ 1. [I'm using Powerlevel9k with Oh My Zsh. How do I migrate?](#im-using-powerlevel9k-with-oh-my-zsh-how-do-i-migrate)
+ 1. [Is it really fast?](#is-it-really-fast)
+ 1. [What is instant prompt?](#what-is-instant-prompt)
+ 1. [Why do my icons and/or powerline symbols look bad?](#why-do-my-icons-andor-powerline-symbols-look-bad)
+ 1. [I'm getting "character not in range" error. What gives?](#im-getting-character-not-in-range-error-what-gives)
+ 1. [Why is my cursor in the wrong place?](#why-is-my-cursor-in-the-wrong-place)
+ 1. [Why is my prompt wrapping around in a weird way?](#why-is-my-prompt-wrapping-around-in-a-weird-way)
+ 1. [Why is my right prompt in the wrong place?](#why-is-my-right-prompt-in-the-wrong-place)
+ 1. [Why does the configuration wizard run automatically every time I start zsh?](#why-does-the-configuration-wizard-run-automatically-every-time-i-start-zsh)
+ 1. [I cannot install the recommended font. Help!](#i-cannot-install-the-recommended-font-help)
+ 1. [Why do I have a question mark symbol in my prompt? Is my font broken?](#why-do-i-have-a-question-mark-symbol-in-my-prompt-is-my-font-broken)
+ 1. [What do different symbols in Git status mean?](#what-do-different-symbols-in-git-status-mean)
+ 1. [How do I change the format of Git status?](#how-do-i-change-the-format-of-git-status)
+ 1. [How do I add username and/or hostname to prompt?](#how-do-i-add-username-andor-hostname-to-prompt)
+ 1. [How do I change colors?](#how-do-i-change-colors)
+ 1. [Why some prompt segments appear and disappear as I'm typing?](#why-some-prompt-segments-appear-and-disappear-as-im-typing)
+ 1. [Why does Powerlevel10k spawn extra processes?](#why-does-powerlevel10k-spawn-extra-processes)
+ 1. [Are there configuration options that make Powerlevel10k slow?](#are-there-configuration-options-that-make-powerlevel10k-slow)
+ 1. [Is Powerlevel10k fast to load?](#is-powerlevel10k-fast-to-load)
+ 1. [Does Powerlevel10k always render exactly the same prompt as Powerlevel9k given the same config?](#does-powerlevel10k-always-render-exactly-the-same-prompt-as-powerlevel9k-given-the-same-config)
+ 1. [Why do I get extra spaces in prompt when I use my Powerlevel9k config with Powerlevel10k?](#why-do-i-get-extra-spaces-in-prompt-when-i-use-my-powerlevel9k-config-with-powerlevel10k)
+ 1. [Is there an AUR package for Powerlevel10k?](#is-there-an-aur-package-for-powerlevel10k)
+ 1. [I cannot make Powerlevel10k work with my plugin manager. Help!](#i-cannot-make-powerlevel10k-work-with-my-plugin-manager-help)
+ 1. [What is the minimum supported zsh version?](#what-is-the-minimum-supported-zsh-version)
+ 1. [How were these screenshots and animated gifs created?](#how-were-these-screenshots-and-animated-gifs-created)
diff --git a/config/p10k-classic.zsh b/config/p10k-classic.zsh
index f2fe3f1a..59879ada 100644
--- a/config/p10k-classic.zsh
+++ b/config/p10k-classic.zsh
@@ -3,7 +3,7 @@
#
# Tip: Looking for a nice color? Here's a one-liner to print colormap.
#
-# for i in {0..255}; do print -Pn "%${i}F${(l:3::0:)i}%f " ${${(M)$((i%8)):#7}:+$'\n'}; done
+# for i in {0..255}; do print -Pn "%K{$i} %k%F{$i}${(l:3::0:)i}%f " ${${(M)$((i%8)):#7}:+$'\n'}; done
# Temporarily change options.
'builtin' 'local' '-a' 'p10k_config_opts'
diff --git a/config/p10k-lean-8colors.zsh b/config/p10k-lean-8colors.zsh
index 23a0e491..27cd4444 100644
--- a/config/p10k-lean-8colors.zsh
+++ b/config/p10k-lean-8colors.zsh
@@ -3,7 +3,7 @@
#
# Tip: Looking for a nice color? Here's a one-liner to print colormap.
#
-# for i in {0..255}; do print -Pn "%${i}F${(l:3::0:)i}%f " ${${(M)$((i%8)):#7}:+$'\n'}; done
+# for i in {0..255}; do print -Pn "%K{$i} %k%F{$i}${(l:3::0:)i}%f " ${${(M)$((i%8)):#7}:+$'\n'}; done
# Temporarily change options.
'builtin' 'local' '-a' 'p10k_config_opts'
diff --git a/config/p10k-lean.zsh b/config/p10k-lean.zsh
index 3734f7ef..a17e92df 100644
--- a/config/p10k-lean.zsh
+++ b/config/p10k-lean.zsh
@@ -3,7 +3,7 @@
#
# Tip: Looking for a nice color? Here's a one-liner to print colormap.
#
-# for i in {0..255}; do print -Pn "%${i}F${(l:3::0:)i}%f " ${${(M)$((i%8)):#7}:+$'\n'}; done
+# for i in {0..255}; do print -Pn "%K{$i} %k%F{$i}${(l:3::0:)i}%f " ${${(M)$((i%8)):#7}:+$'\n'}; done
# Temporarily change options.
'builtin' 'local' '-a' 'p10k_config_opts'
diff --git a/config/p10k-pure.zsh b/config/p10k-pure.zsh
index f7a6dd1c..50299dff 100644
--- a/config/p10k-pure.zsh
+++ b/config/p10k-pure.zsh
@@ -12,7 +12,8 @@
# doesn't fit on one line, it wraps around with no attempt to shorten it.
#
# If you like the general style of Pure but not particularly attached to all its quirks, type
-# `p10k configure` while having Powerlevel10k theme active and pick "Lean" style.
+# `p10k configure` and pick "Lean" style. This will give you slick minimalist prompt while taking
+# advantage of Powerlevel10k features that aren't present in Pure.
# Temporarily change options.
'builtin' 'local' '-a' 'p10k_config_opts'
@@ -117,12 +118,12 @@
typeset -g POWERLEVEL9K_VCS_{INCOMING,OUTGOING}_CHANGESFORMAT_FOREGROUND=$cyan
# Don't show remote branch, current tag or stashes.
typeset -g POWERLEVEL9K_VCS_GIT_HOOKS=(vcs-detect-changes git-untracked git-aheadbehind)
- # Don't show the branh icon.
+ # Don't show the branch icon.
typeset -g POWERLEVEL9K_VCS_BRANCH_ICON=
# When in detached HEAD state, show @commit where branch normally goes.
typeset -g POWERLEVEL9K_VCS_COMMIT_ICON='@'
# Don't show staged, unstaged, untracked indicators.
- typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED}_ICON=$'\b'
+ typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED}_ICON=
# Show '*' when there are staged, unstaged or untracked files.
typeset -g POWERLEVEL9K_VCS_DIRTY_ICON='*'
# Show '⇣' if local branch is behind remote.
@@ -131,8 +132,8 @@
typeset -g POWERLEVEL9K_VCS_OUTGOING_CHANGES_ICON='⇡'
# Don't show the number of commits next to the ahead/behind arrows.
typeset -g POWERLEVEL9K_VCS_{COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=1
- # Remove space between '⇣' and '⇡'.
- typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${P9K_CONTENT/⇣* ⇡/⇣⇡}'
+ # Remove space between '⇣' and '⇡' and all trailing spaces.
+ typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${${P9K_CONTENT/⇣* ⇡/⇣⇡}// }'
# Transient prompt works similarly to the builtin transient_rprompt option. It trims down prompt
# when accepting a command line. Supported values:
diff --git a/config/p10k-rainbow.zsh b/config/p10k-rainbow.zsh
index ac503971..ded749d8 100644
--- a/config/p10k-rainbow.zsh
+++ b/config/p10k-rainbow.zsh
@@ -3,7 +3,7 @@
#
# Tip: Looking for a nice color? Here's a one-liner to print colormap.
#
-# for i in {0..255}; do print -Pn "%${i}F${(l:3::0:)i}%f " ${${(M)$((i%8)):#7}:+$'\n'}; done
+# for i in {0..255}; do print -Pn "%K{$i} %k%F{$i}${(l:3::0:)i}%f " ${${(M)$((i%8)):#7}:+$'\n'}; done
# Temporarily change options.
'builtin' 'local' '-a' 'p10k_config_opts'
diff --git a/internal/icons.zsh b/internal/icons.zsh
index 6b8dd9f8..4f7e8e22 100644
--- a/internal/icons.zsh
+++ b/internal/icons.zsh
@@ -1,8 +1,8 @@
typeset -gA icons
function _p9k_init_icons() {
- [[ $+_p9k_icon_mode == 1 && $_p9k_icon_mode == $POWERLEVEL9K_MODE ]] && return
- typeset -g _p9k_icon_mode=$POWERLEVEL9K_MODE
+ [[ $+_p9k_icon_mode == 1 && $_p9k_icon_mode == $POWERLEVEL9K_MODE/$POWERLEVEL9K_LEGACY_ICON_SPACING ]] && return
+ typeset -g _p9k_icon_mode=$POWERLEVEL9K_MODE/$POWERLEVEL9K_LEGACY_ICON_SPACING
zmodload zsh/langinfo
if [[ ${langinfo[CODESET]:-} != (utf|UTF)(-|)8 ]]; then
typeset -g _p9k_locale=${${(@M)$(locale -a):#*.(utf|UTF)(-|)8}[1]:-en_US.UTF-8}
@@ -10,6 +10,14 @@ function _p9k_init_icons() {
typeset -g _p9k_locale=
fi
+ if [[ $POWERLEVEL9K_LEGACY_ICON_SPACING == true ]]; then
+ local s=
+ local q=' '
+ else
+ local s=' '
+ local q=
+ fi
+
case $POWERLEVEL9K_MODE in
'flat'|'awesome-patched')
# Awesome-Patched Font required! See:
@@ -21,61 +29,61 @@ function _p9k_init_icons() {
LEFT_SEGMENT_END_SEPARATOR ' ' # Whitespace
LEFT_SUBSEGMENT_SEPARATOR '\uE0B1' # 
RIGHT_SUBSEGMENT_SEPARATOR '\uE0B3' # 
- CARRIAGE_RETURN_ICON '\u21B5 ' # ↵
+ CARRIAGE_RETURN_ICON '\u21B5'$s # ↵
ROOT_ICON '\uE801' # 
SUDO_ICON '\uE0A2' # 
RUBY_ICON '\uE847 ' # 
- AWS_ICON '\uE895 ' # 
- AWS_EB_ICON '\U1F331' # 🌱
+ AWS_ICON '\uE895'$s # 
+ AWS_EB_ICON '\U1F331'$q # 🌱
BACKGROUND_JOBS_ICON '\uE82F ' # 
- TEST_ICON '\uE891 ' # 
+ TEST_ICON '\uE891'$s # 
TODO_ICON '\u2611' # ☑
- BATTERY_ICON '\uE894 ' # 
+ BATTERY_ICON '\uE894'$s # 
DISK_ICON '\uE1AE ' # 
OK_ICON '\u2714' # ✔
FAIL_ICON '\u2718' # ✘
SYMFONY_ICON 'SF'
- NODE_ICON '\u2B22 ' # ⬢
+ NODE_ICON '\u2B22'$s # ⬢
MULTILINE_FIRST_PROMPT_PREFIX '\u256D\U2500' # ╭─
MULTILINE_NEWLINE_PROMPT_PREFIX '\u251C\U2500' # ├─
MULTILINE_LAST_PROMPT_PREFIX '\u2570\U2500 ' # ╰─
- APPLE_ICON '\uE26E ' # 
- WINDOWS_ICON '\uE26F ' # 
- FREEBSD_ICON '\U1F608' # 😈
- ANDROID_ICON '\uE270 ' # 
- LINUX_ICON '\uE271 ' # 
- LINUX_ARCH_ICON '\uE271 ' # 
- LINUX_DEBIAN_ICON '\uE271 ' # 
- LINUX_RASPBIAN_ICON '\uE271 ' # 
- LINUX_UBUNTU_ICON '\uE271 ' # 
- LINUX_CENTOS_ICON '\uE271 ' # 
- LINUX_COREOS_ICON '\uE271 ' # 
- LINUX_ELEMENTARY_ICON '\uE271 ' # 
- LINUX_MINT_ICON '\uE271 ' # 
- LINUX_FEDORA_ICON '\uE271 ' # 
- LINUX_GENTOO_ICON '\uE271 ' # 
- LINUX_MAGEIA_ICON '\uE271 ' # 
- LINUX_NIXOS_ICON '\uE271 ' # 
- LINUX_MANJARO_ICON '\uE271 ' # 
- LINUX_DEVUAN_ICON '\uE271 ' # 
- LINUX_ALPINE_ICON '\uE271 ' # 
- LINUX_AOSC_ICON '\uE271 ' # 
- LINUX_OPENSUSE_ICON '\uE271 ' # 
- LINUX_SABAYON_ICON '\uE271 ' # 
- LINUX_SLACKWARE_ICON '\uE271 ' # 
- SUNOS_ICON '\U1F31E' # 🌞
- HOME_ICON '\uE12C ' # 
- HOME_SUB_ICON '\uE18D ' # 
- FOLDER_ICON '\uE818 ' # 
- NETWORK_ICON '\uE1AD ' # 
- ETC_ICON '\uE82F ' # 
+ APPLE_ICON '\uE26E'$s # 
+ WINDOWS_ICON '\uE26F'$s # 
+ FREEBSD_ICON '\U1F608'$q # 😈
+ ANDROID_ICON '\uE270'$s # 
+ LINUX_ICON '\uE271'$s # 
+ LINUX_ARCH_ICON '\uE271'$s # 
+ LINUX_DEBIAN_ICON '\uE271'$s # 
+ LINUX_RASPBIAN_ICON '\uE271'$s # 
+ LINUX_UBUNTU_ICON '\uE271'$s # 
+ LINUX_CENTOS_ICON '\uE271'$s # 
+ LINUX_COREOS_ICON '\uE271'$s # 
+ LINUX_ELEMENTARY_ICON '\uE271'$s # 
+ LINUX_MINT_ICON '\uE271'$s # 
+ LINUX_FEDORA_ICON '\uE271'$s # 
+ LINUX_GENTOO_ICON '\uE271'$s # 
+ LINUX_MAGEIA_ICON '\uE271'$s # 
+ LINUX_NIXOS_ICON '\uE271'$s # 
+ LINUX_MANJARO_ICON '\uE271'$s # 
+ LINUX_DEVUAN_ICON '\uE271'$s # 
+ LINUX_ALPINE_ICON '\uE271'$s # 
+ LINUX_AOSC_ICON '\uE271'$s # 
+ LINUX_OPENSUSE_ICON '\uE271'$s # 
+ LINUX_SABAYON_ICON '\uE271'$s # 
+ LINUX_SLACKWARE_ICON '\uE271'$s # 
+ SUNOS_ICON '\U1F31E'$q # 🌞
+ HOME_ICON '\uE12C'$s # 
+ HOME_SUB_ICON '\uE18D'$s # 
+ FOLDER_ICON '\uE818'$s # 
+ NETWORK_ICON '\uE1AD'$s # 
+ ETC_ICON '\uE82F'$s # 
LOAD_ICON '\uE190 ' # 
- SWAP_ICON '\uE87D ' # 
+ SWAP_ICON '\uE87D'$s # 
RAM_ICON '\uE1E2 ' # 
- SERVER_ICON '\uE895 ' # 
- VCS_UNTRACKED_ICON '\uE16C ' # 
- VCS_UNSTAGED_ICON '\uE17C ' # 
- VCS_STAGED_ICON '\uE168 ' # 
+ SERVER_ICON '\uE895'$s # 
+ VCS_UNTRACKED_ICON '\uE16C'$s # 
+ VCS_UNSTAGED_ICON '\uE17C'$s # 
+ VCS_STAGED_ICON '\uE168'$s # 
VCS_STASH_ICON '\uE133 ' # 
#VCS_INCOMING_CHANGES_ICON '\uE1EB ' # 
#VCS_INCOMING_CHANGES_ICON '\uE80D ' # 
@@ -94,20 +102,20 @@ function _p9k_init_icons() {
VCS_GIT_BITBUCKET_ICON '\uE20E ' #
VCS_GIT_GITLAB_ICON '\uE20E ' #
VCS_HG_ICON '\uE1C3 ' # 
- VCS_SVN_ICON 'svn'
+ VCS_SVN_ICON 'svn'$q
RUST_ICON 'R'
- PYTHON_ICON '\uE63C ' #  (doesn't always work)
+ PYTHON_ICON '\uE63C'$s #  (doesn't always work)
SWIFT_ICON 'Swift'
GO_ICON 'Go'
PUBLIC_IP_ICON 'IP'
LOCK_ICON '\UE138' # 
- EXECUTION_TIME_ICON '\UE89C ' # 
+ EXECUTION_TIME_ICON '\UE89C'$s # 
SSH_ICON 'ssh'
VPN_ICON '\UE138'
- KUBERNETES_ICON '\U2388 ' # ⎈
- DROPBOX_ICON '\UF16B ' #  (doesn't always work)
- DATE_ICON '\uE184 ' # 
- TIME_ICON '\uE12E ' # 
+ KUBERNETES_ICON '\U2388'$s # ⎈
+ DROPBOX_ICON '\UF16B'$s #  (doesn't always work)
+ DATE_ICON '\uE184'$s # 
+ TIME_ICON '\uE12E'$s # 
JAVA_ICON '\U2615' # ☕︎
LARAVEL_ICON ''
RANGER_ICON '\u2B50' # ⭐
@@ -138,13 +146,13 @@ function _p9k_init_icons() {
LEFT_SUBSEGMENT_SEPARATOR '\uE0B1' # 
RIGHT_SUBSEGMENT_SEPARATOR '\uE0B3' # 
CARRIAGE_RETURN_ICON '\u21B5' # ↵
- ROOT_ICON '\uF201 ' # 
- SUDO_ICON '\uF09C ' # 
+ ROOT_ICON '\uF201'$s # 
+ SUDO_ICON '\uF09C'$s # 
RUBY_ICON '\uF219 ' # 
- AWS_ICON '\uF270 ' # 
- AWS_EB_ICON '\U1F331' # 🌱
+ AWS_ICON '\uF270'$s # 
+ AWS_EB_ICON '\U1F331'$q # 🌱
BACKGROUND_JOBS_ICON '\uF013 ' # 
- TEST_ICON '\uF291 ' # 
+ TEST_ICON '\uF291'$s # 
TODO_ICON '\u2611' # ☑
BATTERY_ICON '\U1F50B' # 🔋
DISK_ICON '\uF0A0 ' # 
@@ -155,43 +163,43 @@ function _p9k_init_icons() {
MULTILINE_FIRST_PROMPT_PREFIX '\u256D\U2500' # ╭─
MULTILINE_NEWLINE_PROMPT_PREFIX '\u251C\U2500' # ├─
MULTILINE_LAST_PROMPT_PREFIX '\u2570\U2500 ' # ╰─
- APPLE_ICON '\uF179 ' # 
- WINDOWS_ICON '\uF17A ' # 
- FREEBSD_ICON '\U1F608' # 😈
- ANDROID_ICON '\uE17B ' #  (doesn't always work)
- LINUX_ICON '\uF17C ' # 
- LINUX_ARCH_ICON '\uF17C ' # 
- LINUX_DEBIAN_ICON '\uF17C ' # 
- LINUX_RASPBIAN_ICON '\uF17C ' # 
- LINUX_UBUNTU_ICON '\uF17C ' # 
- LINUX_CENTOS_ICON '\uF17C ' # 
- LINUX_COREOS_ICON '\uF17C ' # 
- LINUX_ELEMENTARY_ICON '\uF17C ' # 
- LINUX_MINT_ICON '\uF17C ' # 
- LINUX_FEDORA_ICON '\uF17C ' # 
- LINUX_GENTOO_ICON '\uF17C ' # 
- LINUX_MAGEIA_ICON '\uF17C ' # 
- LINUX_NIXOS_ICON '\uF17C ' # 
- LINUX_MANJARO_ICON '\uF17C ' # 
- LINUX_DEVUAN_ICON '\uF17C ' # 
- LINUX_ALPINE_ICON '\uF17C ' # 
- LINUX_AOSC_ICON '\uF17C ' # 
- LINUX_OPENSUSE_ICON '\uF17C ' # 
- LINUX_SABAYON_ICON '\uF17C ' # 
- LINUX_SLACKWARE_ICON '\uF17C ' # 
+ APPLE_ICON '\uF179'$s # 
+ WINDOWS_ICON '\uF17A'$s # 
+ FREEBSD_ICON '\U1F608'$q # 😈
+ ANDROID_ICON '\uE17B'$s #  (doesn't always work)
+ LINUX_ICON '\uF17C'$s # 
+ LINUX_ARCH_ICON '\uF17C'$s # 
+ LINUX_DEBIAN_ICON '\uF17C'$s # 
+ LINUX_RASPBIAN_ICON '\uF17C'$s # 
+ LINUX_UBUNTU_ICON '\uF17C'$s # 
+ LINUX_CENTOS_ICON '\uF17C'$s # 
+ LINUX_COREOS_ICON '\uF17C'$s # 
+ LINUX_ELEMENTARY_ICON '\uF17C'$s # 
+ LINUX_MINT_ICON '\uF17C'$s # 
+ LINUX_FEDORA_ICON '\uF17C'$s # 
+ LINUX_GENTOO_ICON '\uF17C'$s # 
+ LINUX_MAGEIA_ICON '\uF17C'$s # 
+ LINUX_NIXOS_ICON '\uF17C'$s # 
+ LINUX_MANJARO_ICON '\uF17C'$s # 
+ LINUX_DEVUAN_ICON '\uF17C'$s # 
+ LINUX_ALPINE_ICON '\uF17C'$s # 
+ LINUX_AOSC_ICON '\uF17C'$s # 
+ LINUX_OPENSUSE_ICON '\uF17C'$s # 
+ LINUX_SABAYON_ICON '\uF17C'$s # 
+ LINUX_SLACKWARE_ICON '\uF17C'$s # 
SUNOS_ICON '\uF185 ' # 
- HOME_ICON '\uF015 ' # 
- HOME_SUB_ICON '\uF07C ' # 
- FOLDER_ICON '\uF115 ' # 
+ HOME_ICON '\uF015'$s # 
+ HOME_SUB_ICON '\uF07C'$s # 
+ FOLDER_ICON '\uF115'$s # 
ETC_ICON '\uF013 ' # 
- NETWORK_ICON '\uF09E ' # 
+ NETWORK_ICON '\uF09E'$s # 
LOAD_ICON '\uF080 ' # 
- SWAP_ICON '\uF0E4 ' # 
- RAM_ICON '\uF0E4 ' # 
- SERVER_ICON '\uF233 ' # 
- VCS_UNTRACKED_ICON '\uF059 ' # 
- VCS_UNSTAGED_ICON '\uF06A ' # 
- VCS_STAGED_ICON '\uF055 ' # 
+ SWAP_ICON '\uF0E4'$s # 
+ RAM_ICON '\uF0E4'$s # 
+ SERVER_ICON '\uF233'$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 ' # 
@@ -206,18 +214,18 @@ function _p9k_init_icons() {
VCS_GIT_BITBUCKET_ICON '\uF171 ' # 
VCS_GIT_GITLAB_ICON '\uF296 ' # 
VCS_HG_ICON '\uF0C3 ' # 
- VCS_SVN_ICON 'svn'
+ VCS_SVN_ICON 'svn'$q
RUST_ICON '\uE6A8' # 
- PYTHON_ICON '\uE63C ' # 
+ PYTHON_ICON '\uE63C'$s # 
SWIFT_ICON 'Swift'
GO_ICON 'Go'
PUBLIC_IP_ICON 'IP'
LOCK_ICON '\UF023' # 
- EXECUTION_TIME_ICON '\uF253 ' # 
+ EXECUTION_TIME_ICON '\uF253'$s # 
SSH_ICON 'ssh'
VPN_ICON '\uF023'
KUBERNETES_ICON '\U2388' # ⎈
- DROPBOX_ICON '\UF16B ' # 
+ DROPBOX_ICON '\UF16B'$s # 
DATE_ICON '\uF073 ' # 
TIME_ICON '\uF017 ' # 
JAVA_ICON '\U2615' # ☕︎
@@ -258,57 +266,57 @@ function _p9k_init_icons() {
RIGHT_SUBSEGMENT_SEPARATOR '\uE0B3' # 
CARRIAGE_RETURN_ICON '\u21B5' # ↵
ROOT_ICON "${CODEPOINT_OF_OCTICONS_ZAP:+\\u$CODEPOINT_OF_OCTICONS_ZAP}"
- SUDO_ICON "${CODEPOINT_OF_AWESOME_UNLOCK:+\\u$CODEPOINT_OF_AWESOME_UNLOCK }"
+ SUDO_ICON "${CODEPOINT_OF_AWESOME_UNLOCK:+\\u$CODEPOINT_OF_AWESOME_UNLOCK$s}"
RUBY_ICON "${CODEPOINT_OF_OCTICONS_RUBY:+\\u$CODEPOINT_OF_OCTICONS_RUBY }"
- AWS_ICON "${CODEPOINT_OF_AWESOME_SERVER:+\\u$CODEPOINT_OF_AWESOME_SERVER }"
- AWS_EB_ICON '\U1F331' # 🌱
+ AWS_ICON "${CODEPOINT_OF_AWESOME_SERVER:+\\u$CODEPOINT_OF_AWESOME_SERVER$s}"
+ AWS_EB_ICON '\U1F331'$q # 🌱
BACKGROUND_JOBS_ICON "${CODEPOINT_OF_AWESOME_COG:+\\u$CODEPOINT_OF_AWESOME_COG }"
- TEST_ICON "${CODEPOINT_OF_AWESOME_BUG:+\\u$CODEPOINT_OF_AWESOME_BUG }"
- TODO_ICON "${CODEPOINT_OF_AWESOME_CHECK_SQUARE_O:+\\u$CODEPOINT_OF_AWESOME_CHECK_SQUARE_O }"
- BATTERY_ICON "${CODEPOINT_OF_AWESOME_BATTERY_FULL:+\\U$CODEPOINT_OF_AWESOME_BATTERY_FULL }"
+ TEST_ICON "${CODEPOINT_OF_AWESOME_BUG:+\\u$CODEPOINT_OF_AWESOME_BUG$s}"
+ TODO_ICON "${CODEPOINT_OF_AWESOME_CHECK_SQUARE_O:+\\u$CODEPOINT_OF_AWESOME_CHECK_SQUARE_O$s}"
+ BATTERY_ICON "${CODEPOINT_OF_AWESOME_BATTERY_FULL:+\\U$CODEPOINT_OF_AWESOME_BATTERY_FULL$s}"
DISK_ICON "${CODEPOINT_OF_AWESOME_HDD_O:+\\u$CODEPOINT_OF_AWESOME_HDD_O }"
- OK_ICON "${CODEPOINT_OF_AWESOME_CHECK:+\\u$CODEPOINT_OF_AWESOME_CHECK }"
+ OK_ICON "${CODEPOINT_OF_AWESOME_CHECK:+\\u$CODEPOINT_OF_AWESOME_CHECK$s}"
FAIL_ICON "${CODEPOINT_OF_AWESOME_TIMES:+\\u$CODEPOINT_OF_AWESOME_TIMES}"
SYMFONY_ICON 'SF'
NODE_ICON '\u2B22' # ⬢
MULTILINE_FIRST_PROMPT_PREFIX '\u256D\U2500' # ╭─
MULTILINE_NEWLINE_PROMPT_PREFIX '\u251C\U2500' # ├─
MULTILINE_LAST_PROMPT_PREFIX '\u2570\U2500 ' # ╰─
- APPLE_ICON "${CODEPOINT_OF_AWESOME_APPLE:+\\u$CODEPOINT_OF_AWESOME_APPLE }"
- FREEBSD_ICON '\U1F608' # 😈
- LINUX_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
- LINUX_ARCH_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
- LINUX_DEBIAN_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
- LINUX_RASPBIAN_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
- LINUX_UBUNTU_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
- LINUX_CENTOS_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
- LINUX_COREOS_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
- LINUX_ELEMENTARY_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
- LINUX_MINT_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
- LINUX_FEDORA_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
- LINUX_GENTOO_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
- LINUX_MAGEIA_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
- LINUX_NIXOS_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
- LINUX_MANJARO_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
- LINUX_DEVUAN_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
- LINUX_ALPINE_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
- LINUX_AOSC_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
- LINUX_OPENSUSE_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
- LINUX_SABAYON_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
- LINUX_SLACKWARE_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX }"
+ APPLE_ICON "${CODEPOINT_OF_AWESOME_APPLE:+\\u$CODEPOINT_OF_AWESOME_APPLE$s}"
+ FREEBSD_ICON '\U1F608'$q # 😈
+ LINUX_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
+ LINUX_ARCH_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_UBUNTU_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
+ LINUX_CENTOS_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
+ LINUX_COREOS_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
+ LINUX_ELEMENTARY_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
+ LINUX_MINT_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
+ LINUX_FEDORA_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
+ LINUX_GENTOO_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
+ LINUX_MAGEIA_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
+ LINUX_NIXOS_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
+ LINUX_MANJARO_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
+ LINUX_DEVUAN_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
+ LINUX_ALPINE_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
+ LINUX_AOSC_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
+ LINUX_OPENSUSE_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
+ LINUX_SABAYON_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
+ LINUX_SLACKWARE_ICON "${CODEPOINT_OF_AWESOME_LINUX:+\\u$CODEPOINT_OF_AWESOME_LINUX$s}"
SUNOS_ICON "${CODEPOINT_OF_AWESOME_SUN_O:+\\u$CODEPOINT_OF_AWESOME_SUN_O }"
- HOME_ICON "${CODEPOINT_OF_AWESOME_HOME:+\\u$CODEPOINT_OF_AWESOME_HOME }"
- HOME_SUB_ICON "${CODEPOINT_OF_AWESOME_FOLDER_OPEN:+\\u$CODEPOINT_OF_AWESOME_FOLDER_OPEN }"
- FOLDER_ICON "${CODEPOINT_OF_AWESOME_FOLDER_O:+\\u$CODEPOINT_OF_AWESOME_FOLDER_O }"
+ HOME_ICON "${CODEPOINT_OF_AWESOME_HOME:+\\u$CODEPOINT_OF_AWESOME_HOME$s}"
+ HOME_SUB_ICON "${CODEPOINT_OF_AWESOME_FOLDER_OPEN:+\\u$CODEPOINT_OF_AWESOME_FOLDER_OPEN$s}"
+ FOLDER_ICON "${CODEPOINT_OF_AWESOME_FOLDER_O:+\\u$CODEPOINT_OF_AWESOME_FOLDER_O$s}"
ETC_ICON "${CODEPOINT_OF_AWESOME_COG:+\\u$CODEPOINT_OF_AWESOME_COG }"
- NETWORK_ICON "${CODEPOINT_OF_AWESOME_RSS:+\\u$CODEPOINT_OF_AWESOME_RSS }"
+ NETWORK_ICON "${CODEPOINT_OF_AWESOME_RSS:+\\u$CODEPOINT_OF_AWESOME_RSS$s}"
LOAD_ICON "${CODEPOINT_OF_AWESOME_BAR_CHART:+\\u$CODEPOINT_OF_AWESOME_BAR_CHART }"
- SWAP_ICON "${CODEPOINT_OF_AWESOME_DASHBOARD:+\\u$CODEPOINT_OF_AWESOME_DASHBOARD }"
- RAM_ICON "${CODEPOINT_OF_AWESOME_DASHBOARD:+\\u$CODEPOINT_OF_AWESOME_DASHBOARD }"
- SERVER_ICON "${CODEPOINT_OF_AWESOME_SERVER:+\\u$CODEPOINT_OF_AWESOME_SERVER }"
- VCS_UNTRACKED_ICON "${CODEPOINT_OF_AWESOME_QUESTION_CIRCLE:+\\u$CODEPOINT_OF_AWESOME_QUESTION_CIRCLE }"
- VCS_UNSTAGED_ICON "${CODEPOINT_OF_AWESOME_EXCLAMATION_CIRCLE:+\\u$CODEPOINT_OF_AWESOME_EXCLAMATION_CIRCLE }"
- VCS_STAGED_ICON "${CODEPOINT_OF_AWESOME_PLUS_CIRCLE:+\\u$CODEPOINT_OF_AWESOME_PLUS_CIRCLE }"
+ SWAP_ICON "${CODEPOINT_OF_AWESOME_DASHBOARD:+\\u$CODEPOINT_OF_AWESOME_DASHBOARD$s}"
+ RAM_ICON "${CODEPOINT_OF_AWESOME_DASHBOARD:+\\u$CODEPOINT_OF_AWESOME_DASHBOARD$s}"
+ SERVER_ICON "${CODEPOINT_OF_AWESOME_SERVER:+\\u$CODEPOINT_OF_AWESOME_SERVER$s}"
+ VCS_UNTRACKED_ICON "${CODEPOINT_OF_AWESOME_QUESTION_CIRCLE:+\\u$CODEPOINT_OF_AWESOME_QUESTION_CIRCLE$s}"
+ VCS_UNSTAGED_ICON "${CODEPOINT_OF_AWESOME_EXCLAMATION_CIRCLE:+\\u$CODEPOINT_OF_AWESOME_EXCLAMATION_CIRCLE$s}"
+ VCS_STAGED_ICON "${CODEPOINT_OF_AWESOME_PLUS_CIRCLE:+\\u$CODEPOINT_OF_AWESOME_PLUS_CIRCLE$s}"
VCS_STASH_ICON "${CODEPOINT_OF_AWESOME_INBOX:+\\u$CODEPOINT_OF_AWESOME_INBOX }"
VCS_INCOMING_CHANGES_ICON "${CODEPOINT_OF_AWESOME_ARROW_CIRCLE_DOWN:+\\u$CODEPOINT_OF_AWESOME_ARROW_CIRCLE_DOWN }"
VCS_OUTGOING_CHANGES_ICON "${CODEPOINT_OF_AWESOME_ARROW_CIRCLE_UP:+\\u$CODEPOINT_OF_AWESOME_ARROW_CIRCLE_UP }"
@@ -316,24 +324,24 @@ function _p9k_init_icons() {
VCS_BOOKMARK_ICON "${CODEPOINT_OF_OCTICONS_BOOKMARK:+\\u$CODEPOINT_OF_OCTICONS_BOOKMARK}"
VCS_COMMIT_ICON "${CODEPOINT_OF_OCTICONS_GIT_COMMIT:+\\u$CODEPOINT_OF_OCTICONS_GIT_COMMIT }"
VCS_BRANCH_ICON "${CODEPOINT_OF_OCTICONS_GIT_BRANCH:+\\u$CODEPOINT_OF_OCTICONS_GIT_BRANCH }"
- VCS_REMOTE_BRANCH_ICON "${CODEPOINT_OF_OCTICONS_REPO_PUSH:+\\u$CODEPOINT_OF_OCTICONS_REPO_PUSH }"
+ VCS_REMOTE_BRANCH_ICON "${CODEPOINT_OF_OCTICONS_REPO_PUSH:+\\u$CODEPOINT_OF_OCTICONS_REPO_PUSH$s}"
VCS_LOADING_ICON ''
VCS_GIT_ICON "${CODEPOINT_OF_AWESOME_GIT:+\\u$CODEPOINT_OF_AWESOME_GIT }"
VCS_GIT_GITHUB_ICON "${CODEPOINT_OF_AWESOME_GITHUB_ALT:+\\u$CODEPOINT_OF_AWESOME_GITHUB_ALT }"
VCS_GIT_BITBUCKET_ICON "${CODEPOINT_OF_AWESOME_BITBUCKET:+\\u$CODEPOINT_OF_AWESOME_BITBUCKET }"
VCS_GIT_GITLAB_ICON "${CODEPOINT_OF_AWESOME_GITLAB:+\\u$CODEPOINT_OF_AWESOME_GITLAB }"
VCS_HG_ICON "${CODEPOINT_OF_AWESOME_FLASK:+\\u$CODEPOINT_OF_AWESOME_FLASK }"
- VCS_SVN_ICON 'svn'
+ VCS_SVN_ICON 'svn'$q
RUST_ICON '\uE6A8' # 
PYTHON_ICON '\U1F40D' # 🐍
- SWIFT_ICON '\uE655 ' # 
- PUBLIC_IP_ICON "${CODEPOINT_OF_AWESOME_GLOBE:+\\u$CODEPOINT_OF_AWESOME_GLOBE }"
+ SWIFT_ICON '\uE655'$s # 
+ PUBLIC_IP_ICON "${CODEPOINT_OF_AWESOME_GLOBE:+\\u$CODEPOINT_OF_AWESOME_GLOBE$s}"
LOCK_ICON "${CODEPOINT_OF_AWESOME_LOCK:+\\u$CODEPOINT_OF_AWESOME_LOCK}"
- EXECUTION_TIME_ICON "${CODEPOINT_OF_AWESOME_HOURGLASS_END:+\\u$CODEPOINT_OF_AWESOME_HOURGLASS_END }"
+ EXECUTION_TIME_ICON "${CODEPOINT_OF_AWESOME_HOURGLASS_END:+\\u$CODEPOINT_OF_AWESOME_HOURGLASS_END$s}"
SSH_ICON 'ssh'
VPN_ICON "${CODEPOINT_OF_AWESOME_LOCK:+\\u$CODEPOINT_OF_AWESOME_LOCK}"
KUBERNETES_ICON '\U2388' # ⎈
- DROPBOX_ICON "${CODEPOINT_OF_AWESOME_DROPBOX:+\\u$CODEPOINT_OF_AWESOME_DROPBOX }"
+ DROPBOX_ICON "${CODEPOINT_OF_AWESOME_DROPBOX:+\\u$CODEPOINT_OF_AWESOME_DROPBOX$s}"
DATE_ICON '\uF073 ' # 
TIME_ICON '\uF017 ' # 
JAVA_ICON '\U2615' # ☕︎
@@ -367,17 +375,17 @@ function _p9k_init_icons() {
LEFT_SUBSEGMENT_SEPARATOR '\uE0B1' # 
RIGHT_SUBSEGMENT_SEPARATOR '\uE0B3' # 
CARRIAGE_RETURN_ICON '\u21B5' # ↵
- ROOT_ICON '\uE614' # 
- SUDO_ICON '\uF09C ' # 
+ ROOT_ICON '\uE614'$q # 
+ SUDO_ICON '\uF09C'$s # 
RUBY_ICON '\uF219 ' # 
- AWS_ICON '\uF270 ' # 
- AWS_EB_ICON '\UF1BD' # 
+ AWS_ICON '\uF270'$s # 
+ AWS_EB_ICON '\UF1BD'$q$q # 
BACKGROUND_JOBS_ICON '\uF013 ' # 
- TEST_ICON '\uF188 ' # 
+ TEST_ICON '\uF188'$s # 
TODO_ICON '\u2611' # ☑
BATTERY_ICON '\UF240 ' # 
- DISK_ICON '\uF0A0 ' # 
- OK_ICON '\uF00C ' # 
+ DISK_ICON '\uF0A0'$s # 
+ OK_ICON '\uF00C'$s # 
FAIL_ICON '\uF00D' # 
SYMFONY_ICON '\uE757' # 
NODE_ICON '\uE617 ' # 
@@ -385,42 +393,42 @@ function _p9k_init_icons() {
MULTILINE_NEWLINE_PROMPT_PREFIX '\u251C\U2500' # ├─
MULTILINE_LAST_PROMPT_PREFIX '\u2570\U2500 ' # ╰─
APPLE_ICON '\uF179' # 
- WINDOWS_ICON '\uF17A ' # 
+ WINDOWS_ICON '\uF17A'$s # 
FREEBSD_ICON '\UF30C ' # 
ANDROID_ICON '\uF17B' # 
LINUX_ARCH_ICON '\uF303' # 
- LINUX_CENTOS_ICON '\uF304 ' # 
- LINUX_COREOS_ICON '\uF305 ' # 
+ LINUX_CENTOS_ICON '\uF304'$s # 
+ LINUX_COREOS_ICON '\uF305'$s # 
LINUX_DEBIAN_ICON '\uF306' # 
LINUX_RASPBIAN_ICON '\uF315' # 
- LINUX_ELEMENTARY_ICON '\uF309 ' # 
- LINUX_FEDORA_ICON '\uF30a ' # 
- LINUX_GENTOO_ICON '\uF30d ' # 
+ LINUX_ELEMENTARY_ICON '\uF309'$s # 
+ LINUX_FEDORA_ICON '\uF30a'$s # 
+ LINUX_GENTOO_ICON '\uF30d'$s # 
LINUX_MAGEIA_ICON '\uF310' # 
- LINUX_MINT_ICON '\uF30e ' # 
- LINUX_NIXOS_ICON '\uF313 ' # 
- LINUX_MANJARO_ICON '\uF312 ' # 
- LINUX_DEVUAN_ICON '\uF307 ' # 
- LINUX_ALPINE_ICON '\uF300 ' # 
- LINUX_AOSC_ICON '\uF301 ' # 
- LINUX_OPENSUSE_ICON '\uF314 ' # 
- LINUX_SABAYON_ICON '\uF317 ' # 
- LINUX_SLACKWARE_ICON '\uF319 ' # 
- LINUX_UBUNTU_ICON '\uF31b ' # 
+ 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_UBUNTU_ICON '\uF31b'$s # 
LINUX_ICON '\uF17C' # 
SUNOS_ICON '\uF185 ' # 
- HOME_ICON '\uF015 ' # 
- HOME_SUB_ICON '\uF07C ' # 
- FOLDER_ICON '\uF115 ' # 
- ETC_ICON '\uF013 ' # 
- NETWORK_ICON '\uF1EB ' # 
+ HOME_ICON '\uF015'$s # 
+ HOME_SUB_ICON '\uF07C'$s # 
+ FOLDER_ICON '\uF115'$s # 
+ ETC_ICON '\uF013'$s # 
+ NETWORK_ICON '\uF1EB'$s # 
LOAD_ICON '\uF080 ' # 
- SWAP_ICON '\uF464 ' # 
- RAM_ICON '\uF0E4 ' # 
- SERVER_ICON '\uF0AE ' # 
- VCS_UNTRACKED_ICON '\uF059 ' # 
- VCS_UNSTAGED_ICON '\uF06A ' # 
- VCS_STAGED_ICON '\uF055 ' # 
+ 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 ' # 
@@ -435,22 +443,22 @@ function _p9k_init_icons() {
VCS_GIT_BITBUCKET_ICON '\uE703 ' # 
VCS_GIT_GITLAB_ICON '\uF296 ' # 
VCS_HG_ICON '\uF0C3 ' # 
- VCS_SVN_ICON '\uE72D' # 
- RUST_ICON '\uE7A8' # 
+ VCS_SVN_ICON '\uE72D'$q # 
+ RUST_ICON '\uE7A8'$q # 
PYTHON_ICON '\UE73C ' # 
SWIFT_ICON '\uE755' # 
GO_ICON '\uE626' # 
- PUBLIC_IP_ICON '\UF0AC ' # 
+ PUBLIC_IP_ICON '\UF0AC'$s # 
LOCK_ICON '\UF023' # 
- EXECUTION_TIME_ICON '\uF252 ' # 
- SSH_ICON '\uF489 ' # 
+ EXECUTION_TIME_ICON '\uF252'$s # 
+ SSH_ICON '\uF489'$s # 
VPN_ICON '\UF023'
KUBERNETES_ICON '\U2388' # ⎈
- DROPBOX_ICON '\UF16B ' # 
+ DROPBOX_ICON '\UF16B'$s # 
DATE_ICON '\uF073 ' # 
TIME_ICON '\uF017 ' # 
JAVA_ICON '\U2615' # ☕︎
- LARAVEL_ICON '\ue73f' # 
+ LARAVEL_ICON '\ue73f'$q # 
RANGER_ICON '\u2B50' # ⭐
MIDNIGHT_COMMANDER_ICON 'mc'
VIM_ICON '\uE62B' # 
@@ -483,7 +491,7 @@ function _p9k_init_icons() {
SUDO_ICON ''
RUBY_ICON 'Ruby'
AWS_ICON 'AWS'
- AWS_EB_ICON '\U1F331' # 🌱
+ AWS_EB_ICON '\U1F331'$q # 🌱
BACKGROUND_JOBS_ICON '\u2699' # ⚙
TEST_ICON ''
TODO_ICON '\u2206' # ∆