diff options
-rw-r--r-- | README.md | 915 | ||||
-rw-r--r-- | config/p10k-classic.zsh | 2 | ||||
-rw-r--r-- | config/p10k-lean-8colors.zsh | 2 | ||||
-rw-r--r-- | config/p10k-lean.zsh | 2 | ||||
-rw-r--r-- | config/p10k-pure.zsh | 11 | ||||
-rw-r--r-- | config/p10k-rainbow.zsh | 2 | ||||
-rw-r--r-- | internal/icons.zsh | 368 |
7 files changed, 874 insertions, 428 deletions
@@ -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' # ∆ |