Merge branch 'master' into screenshot
commit
bd304edb47
|
@ -0,0 +1 @@
|
|||
*.zwc
|
|
@ -1,82 +0,0 @@
|
|||
# Powerlevel10k Extended Configuration
|
||||
|
||||
Powerlevel10k has configuration options that Powerlevel9k doesn't. These options have `POWERLEVEL9K`
|
||||
prefix just like the rest.
|
||||
|
||||
`POWERLEVEL9K_VCS_MAX_SYNC_LATENCY_SECONDS (FLOAT) [default=0.05]`
|
||||
|
||||
If it takes longer than this to fetch git repo status, display the prompt with a greyed out
|
||||
vcs segment and fix it asynchronously when the results come it.
|
||||
|
||||
`POWERLEVEL9K_VCS_BACKENDS (ARRAY) [default=(git)]`
|
||||
|
||||
The list of VCS backends to use. Supported values are `git`, `svn` and `hg`. Note that adding
|
||||
anything other than git will make prompt slower even when your current directory isn't a repo.
|
||||
|
||||
`POWERLEVEL9K_GITSTATUS_DIR (STRING) [default=$POWERLEVEL9K_INSTALLATION_DIR/gitstatus]`
|
||||
|
||||
Directory with gitstatus plugin. By default uses a copy bundled with Powerlevel10k.
|
||||
|
||||
`POWERLEVEL9K_DISABLE_GITSTATUS (STRING) [default="false"]`
|
||||
|
||||
If set to `"true"`, Powerlevel10k won't use its fast git backend and will fall back to
|
||||
`vcs_info` like Powerlevel9k.
|
||||
|
||||
`POWERLEVEL9K_MAX_CACHE_SIZE (INT) [default=10000]`
|
||||
|
||||
The maximum number of elements that can be stored in the cache. When the cache grows over this
|
||||
limit, it gets cleared.
|
||||
|
||||
`POWERLEVEL9K_VCS_MAX_INDEX_SIZE_DIRTY (INT) [default=-1]`
|
||||
|
||||
Don't scan for dirty files in git repos with more files in the index than this. Instead, show
|
||||
them with the "dirty" color (yellow by default) whether they are dirty or not. This makes git
|
||||
prompt much faster on huge repositories.
|
||||
|
||||
`POWERLEVEL9K_EXPERIMENTAL_TIME_REALTIME (STRING) [default="false"]`
|
||||
|
||||
If set to `"true"`, `time` segment will update every second, turning into a realtime clock.
|
||||
This option triggers a
|
||||
[bug in completion menu](https://www.zsh.org/mla/workers//2019/msg00161.html) in zsh, and
|
||||
another
|
||||
[bug in history](https://github.com/bhilburn/powerlevel9k/commit/fb1ef540228ec7b4394cf2f6860137074c5838a6#commitcomment-32779672).
|
||||
You can pick up a fix for the latter from
|
||||
[a fork of zsh](https://github.com/romkatv/zsh/tree/gentle-reset-prompt).
|
||||
|
||||
When using gitstatus, there is an extra state called `LOADING` that is used by `vcs` prompt
|
||||
segment when it's waiting for git status in the background. You can define styling for this
|
||||
state the same way as for the other states -- `CLEAN`, `UNTRACKED` and `MODIFIED`. You can
|
||||
also define the icon and the text that will be used when `LOADING` state is triggered for a
|
||||
git repository for which no prior status is known. If both `POWERLEVEL9K_VCS_LOADING_ICON`
|
||||
and `POWERLEVEL9K_VCS_LOADING_TEXT` are empty, `vcs` segment in such cases won't be shown.
|
||||
|
||||
* `POWERLEVEL9K_VCS_LOADING_ICON (STRING) [default=""]`
|
||||
|
||||
Icon shown while waiting for git status for a repo for the first time.
|
||||
* `POWERLEVEL9K_VCS_LOADING_TEXT (STRING) [default="loading"]`
|
||||
|
||||
Text shown while waiting for git status for a repo for the first time.
|
||||
* `POWERLEVEL9K_VCS_LOADING_BACKGROUND (STRING) [default="grey"]`
|
||||
|
||||
Background color for `LOADING` state.
|
||||
* `POWERLEVEL9K_VCS_LOADING_FOREGROUND (STRING) [default="$DEFAULT_COLOR"]`
|
||||
|
||||
Foreground color for `LOADING` state.
|
||||
* `POWERLEVEL9K_VCS_LOADING_VISUAL_IDENTIFIER_COLOR (STRING) [default=$POWERLEVEL9K_VCS_LOADING_FOREGROUND]`
|
||||
|
||||
Foreground color for `POWERLEVEL9K_VCS_LOADING_ICON`.
|
||||
|
||||
When using gitstatus, components of `vcs` segment can be colored individually by setting
|
||||
`POWERLEVEL9K_VCS_${STATE}_${COMPONENT}FORMAT_FOREGROUND`. `${STATE}` should be one of `CLEAN`,
|
||||
`UNTRACKED`, `MODIFIED` or `LOADING`. `${COMPONENT}` should be one of `REMOTE_URL`, `COMMIT`,
|
||||
`BRANCH`, `TAG`, `REMOTE_BRANCH`, `STAGED`, `UNSTAGED`, `UNTRACKED`, `OUTGOING_CHANGES`,
|
||||
`INCOMING_CHANGES`, `STASH` or `ACTION`. If
|
||||
`POWERLEVEL9K_VCS_${STATE}_${COMPONENT}FORMAT_FOREGROUND` isn't set for some combination of
|
||||
`${STATE}` and `${COMPONENT}`, the component is colored with
|
||||
`POWERLEVEL9K_VCS_${COMPONENT}FORMAT_FOREGROUND`. If that one isn't set either, the component is
|
||||
colored with `POWERLEVEL9K_VCS_${STATE}_FOREGROUND`. The fallback logic is consistent with
|
||||
Powerlevel9k, meaning that your `vcs` prompt will look the same in Powerlevel10k and
|
||||
Powerlevel9k if you don't define any `POWERLEVEL9K_VCS_${STATE}_${COMPONENT}_FOREGROUND`
|
||||
parameters. Note that both the icon and the text in each component always have the same color.
|
||||
There is currently no `POWERLEVEL9K_VCS_${STATE}_${COMPONENT}FORMAT_VISUAL_IDENTIFIER_COLOR`,
|
||||
although it's easy to implement if desired.
|
182
README.md
182
README.md
|
@ -1,15 +1,12 @@
|
|||
# Powerlevel10k
|
||||
|
||||
Powerlevel10k is a theme for ZSH. It's a backward-compatible modern reimplementation of
|
||||
[Powerlevel9k](https://github.com/bhilburn/powerlevel9k) with lower latency, better
|
||||
prompt responsiveness and scores of extra features.
|
||||
Powerlevel10k is a theme for ZSH. It's fast, flexible and easy to install and configure.
|
||||
|
||||
Powerlevel10k can be used as a drop-in replacement for Powerlevel9k. When given the same
|
||||
configuration options it will generate
|
||||
[the same](#does-powerlevel10k-always-render-exactly-the-same-prompt-as-powerlevel9k-given-the-same-config)
|
||||
prompt. It will be [much faster](#is-it-really-fast) though.
|
||||
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.
|
||||
|
||||
![p10k-lean](https://raw.githubusercontent.com/romkatv/powerlevel10k/master/config/p10k-lean.png)
|
||||
![Powerlevel10k](https://raw.githubusercontent.com/romkatv/powerlevel10k/master/powerlevel10k.png)
|
||||
|
||||
## Table of Contents
|
||||
|
||||
|
@ -21,14 +18,21 @@ prompt. It will be [much faster](#is-it-really-fast) though.
|
|||
1. [Zplug](#zplug)
|
||||
1. [Zgen](#zgen)
|
||||
1. [Antibody](#antibody)
|
||||
1. [Zplugin](#zplugin)
|
||||
1. [Configuration](#configuration)
|
||||
1. [For new users](#for-new-users)
|
||||
1. [For existing users](#for-existing-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 faster?](#is-it-really-fast)
|
||||
1. [Is it really fast?](#is-it-really-fast)
|
||||
1. [License](#license)
|
||||
1. [FAQ](#faq)
|
||||
1. [Why my icons and/or powerline symbols look bad?](#why-my-icons-andor-powerline-symbols-look-bad)
|
||||
1. [Why is my cursor in the wrong place?](#why-is-my-cursor-in-the-wrong-place)
|
||||
1. [Why is my right prompt wrapping around in a weird way?](#why-is-my-right-prompt-wrapping-around-in-a-weird-way)
|
||||
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. [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)
|
||||
|
@ -42,7 +46,7 @@ prompt. It will be [much faster](#is-it-really-fast) though.
|
|||
### Manual
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
|
@ -69,7 +73,7 @@ somewhere after it.
|
|||
|
||||
### Zplug
|
||||
|
||||
Add `zplug romkatv/powerlevel10k, use:powerlevel10k.zsh-theme` to your `~/.zshrc`.
|
||||
Add `zplug romkatv/powerlevel10k, as:theme, depth:1` to your `~/.zshrc`.
|
||||
|
||||
### Zgen
|
||||
|
||||
|
@ -79,50 +83,72 @@ Add `zgen load romkatv/powerlevel10k powerlevel10k` to your `~/.zshrc`.
|
|||
|
||||
Add `antibody bundle romkatv/powerlevel10k` to your `~/.zshrc`.
|
||||
|
||||
### Zplugin
|
||||
|
||||
Add `zplugin ice depth=1; zplugin light romkatv/powerlevel10k` to your `~/.zshrc`.
|
||||
|
||||
The use of `depth` ice is optional. Other types of ice are neither recommended nor officially
|
||||
supported by Powerlevel10k.
|
||||
|
||||
## Configuration
|
||||
|
||||
### 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 `p9k_configure`.
|
||||
your prompt. If it doesn't trigger automatically, type `p10k configure`.
|
||||
|
||||
### For existing users
|
||||
### 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/bhilburn/powerlevel9k#prompt-customization).
|
||||
[configuration guide](https://github.com/Powerlevel9k/powerlevel9k/blob/master/README.md#prompt-customization).
|
||||
|
||||
To go beyond the functionality of Powerlevel9k, type `p9k_configure` and explore unique styles and
|
||||
features Powerlevel10k has to offer.
|
||||
To go beyond the functionality of Powerlevel9k, type `p10k configure` and explore the unique styles
|
||||
and features Powerlevel10k has to offer.
|
||||
|
||||
## Fonts
|
||||
|
||||
Powerlevel10k doesn't require custom fonts but it can take advantage of them if they are available.
|
||||
Powerlevel10k doesn't require custom fonts but can take advantage of them if they are available.
|
||||
It works well with [Nerd Fonts](https://github.com/ryanoasis/nerd-fonts),
|
||||
[Source Code Pro](https://github.com/adobe-fonts/source-code-pro),
|
||||
[Font Awesome](https://fontawesome.com/), [Powerline](https://github.com/powerline/fonts), and even
|
||||
the default system fonts. The full choice of style options is available only when using
|
||||
[Nerd Fonts](https://github.com/ryanoasis/nerd-fonts).
|
||||
|
||||
Overwhelmed? Try the beautiful and powerful Meslo from Nerd Fonts. Download these
|
||||
[four ttf files](https://github.com/romkatv/dotfiles-public/tree/master/.local/share/fonts/NerdFonts),
|
||||
double-click on each and press "Install". This will make `MesloLGS NF` font available to all
|
||||
applications on your system. Configure your terminal to use `MesloLGS NF`:
|
||||
### Recommended: Meslo Nerd Font patched for Powerlevel10k
|
||||
|
||||
- **iTerm2**: Open *iTerm2 → Preferences → Profiles → Text → Change Font* and set *Family* to `MesloLGS NF`.
|
||||
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)
|
||||
- [MesloLGS NF Bold.ttf](https://github.com/romkatv/dotfiles-public/raw/master/.local/share/fonts/NerdFonts/MesloLGS%20NF%20Bold.ttf)
|
||||
- [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
|
||||
applications on your system. Configure your terminal to use this font:
|
||||
|
||||
- **iTerm2**: Open *iTerm2 → Preferences → Profiles → Text* and set *Font* to `MesloLGS NF`.
|
||||
- **Hyper**: Open *Hyper → Edit → Preferences* and change the value of `fontFamily` under
|
||||
`module.exports.config` to `MesloLGS NF`.
|
||||
- **Visual Studio Code**: Open *File → Preferences → Settings*, enter
|
||||
`terminal.integrated.fontFamily` in the search box and set value to `MesloLGS NF`.
|
||||
- **Windows Command Prompt**: Use
|
||||
[this script](https://gist.github.com/romkatv/aa7a70fe656d8b655e3c324eb10f6a8b).
|
||||
- **Linux/GNOME** (all terminals): Type this command:
|
||||
```zsh
|
||||
sudo apt install libglib2.0-bin
|
||||
gsettings set org.gnome.desktop.interface monospace-font-name 'MesloLGS NF 11'
|
||||
```
|
||||
`terminal.integrated.fontFamily` in the search box and set the value to `MesloLGS NF`.
|
||||
- **GNOME Terminal** (the default Ubuntu terminal): Open *Terminal → Preferences* and click on the
|
||||
selected profile under *Profiles*. Check *Custom font* under *Text Appearance* and select
|
||||
`MesloLGS NF Regular`.
|
||||
- **Konsole**: Open *Settings → Edit Current Profile → Appearance*, click *Select Font* and select
|
||||
`MesloLGS NF Regular`.
|
||||
- **Tilix**: Open *Tilix → Preferences* and click on the selected profile under *Profiles*. Check
|
||||
*Custom font* under *Text Appearance* and select `MesloLGS NF Regular`.
|
||||
- **Windows Console Host** (the old thing): Click the icon in the top left corner, then
|
||||
*Properties → Font* and set *Font* to `MesloLGS NF`.
|
||||
- **Windows Terminal** (the new thing): Open *Settings* (`Ctrl+,`), search for `fontFace` and set
|
||||
value to `MesloLGS NF` for every profile.
|
||||
- **Termux**: Type `p10k configure` and answer `Yes` when asked whether to install *Meslo Nerd Font*.
|
||||
|
||||
(Using a different terminal and know how to set font for it? Share your knowledge by sending a PR
|
||||
to expand the list!)
|
||||
Run `p10k configure` to pick the best style for your new font.
|
||||
|
||||
_Using a different terminal and know how to set font for it? Share your knowledge by sending a PR
|
||||
to expand the list!_
|
||||
|
||||
## Try it in Docker
|
||||
|
||||
|
@ -130,9 +156,9 @@ Try Powerlevel10k in Docker. You can safely make any changes to the file system
|
|||
the theme. Once you exit zsh, the image is deleted.
|
||||
|
||||
```zsh
|
||||
docker run -e LANG=C.UTF-8 -e LC_ALL=C.UTF-8 -e TERM -it --rm ubuntu bash -uexc '
|
||||
cd && apt update && apt install -y zsh git
|
||||
git clone https://github.com/romkatv/powerlevel10k.git
|
||||
docker run -e LANG=en_US.utf8 -e TERM -it --rm archlinux/base bash -uexc '
|
||||
pacman -Sy --noconfirm zsh git
|
||||
git clone https://github.com/romkatv/powerlevel10k.git ~/powerlevel10k
|
||||
echo "source ~/powerlevel10k/powerlevel10k.zsh-theme" >>~/.zshrc
|
||||
cd ~/powerlevel10k
|
||||
exec zsh'
|
||||
|
@ -173,6 +199,54 @@ covered by the same license.
|
|||
|
||||
## FAQ
|
||||
|
||||
### Why 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`.
|
||||
|
||||
### Why is my cursor in the wrong place?
|
||||
|
||||
It's likely your font's fault.
|
||||
[Install the recommended font](#recommended-meslo-nerd-font-patched-for-powerlevel10k) and run
|
||||
`p10k configure`.
|
||||
|
||||
If this doesn't help, type `unset ZLE_RPROMPT_INDENT`. If it fixes the issue, make the change
|
||||
permanent:
|
||||
|
||||
```zsh
|
||||
echo 'unset ZLE_RPROMPT_INDENT' >>! ~/.zshrc
|
||||
```
|
||||
|
||||
### Why is my right prompt wrapping around in a weird way?
|
||||
|
||||
It's likely your font's fault.
|
||||
[Install the recommended font](#recommended-meslo-nerd-font-patched-for-powerlevel10k) and run
|
||||
`p10k configure`.
|
||||
|
||||
If this doesn't help, type `unset ZLE_RPROMPT_INDENT`. If it fixes the issue, make the change
|
||||
permanent:
|
||||
|
||||
```zsh
|
||||
echo 'unset ZLE_RPROMPT_INDENT' >>! ~/.zshrc
|
||||
```
|
||||
|
||||
### 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
|
||||
repository. Type `git status` to see these files. You can change this symbol or disable the display
|
||||
of untracked files altogether. Search for `untracked files` in `~/.p10k.zsh`.
|
||||
|
||||
You can also get a weird-looking question mark in your prompt if your terminal's font is missing
|
||||
some glyphs. To fix this problem,
|
||||
[install the recommended font](#recommended-meslo-nerd-font-patched-for-powerlevel10k) and run
|
||||
`p10k configure`.
|
||||
|
||||
### Why does Powerlevel10k spawn extra processes?
|
||||
|
||||
Powerlevel10k uses [gitstatus](https://github.com/romkatv/gitstatus) as the backend behind `vcs`
|
||||
|
@ -189,22 +263,17 @@ prompt latency when using Powerlevel10k, please
|
|||
|
||||
### Is Powerlevel10k fast to load?
|
||||
|
||||
The short answer is no. The amount of time it takes for Powerlevel10k to render the first prompt
|
||||
is in the same ballpark as for Powerlevel9k.
|
||||
Yes, provided that you are using ZSH >= 5.4.
|
||||
|
||||
Time to first prompt can be measured with the following benchmark:
|
||||
Loading time, or time to first prompt, can be measured with the following benchmark:
|
||||
|
||||
```zsh
|
||||
time (repeat 100 zsh -dfis <<< 'source ~/powerlevel10k/powerlevel10k.zsh-theme')
|
||||
time (repeat 1000 zsh -dfis <<< 'source ~/powerlevel10k/powerlevel10k.zsh-theme')
|
||||
```
|
||||
|
||||
On the same machine as in the [prompt benchmark](#is-it-really-fast) this results in 147 ms per
|
||||
invocation when executed in a small git repository (I used the `powerlevel10k` repo itself). For
|
||||
comparison, the same benchmark gives 170 ms for powerlevel9k/master and 505 ms for
|
||||
powerlevel9k/next.
|
||||
|
||||
If your workflow requires that you open a terminal tab, type a command or two and close the tab,
|
||||
Powerlevel10k isn't the best choice. Powerlevel10k is optimized for long-lived ZSH sessions.
|
||||
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
|
||||
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?
|
||||
|
||||
|
@ -212,17 +281,18 @@ This is the goal. You should be able to switch from Powerlevel9k to Powerlevel10
|
|||
visible changes except for performance. There are, however, several differences.
|
||||
|
||||
- By default only `git` vcs backend is enabled in Powerlevel10k. If you need `svn` and `hg`, you'll
|
||||
need to set `POWERLEVEL9K_VCS_BACKENDS`.
|
||||
- Powerlevel10k is bug-compatible with Powerlevel9k except for egregious bugs. If you accidentally
|
||||
rely on these bugs, your prompt will differ between Powerlevel9k and Powerlevel10k. Some examples:
|
||||
need to add them to `POWERLEVEL9K_VCS_BACKENDS`.
|
||||
- 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 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 sources while 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 not Powerlevel10k. If you want your prompt to look in Powerlevel10k the same
|
||||
as in Powerlevel9k, remove `POWERLEVEL9K_MODE`.
|
||||
by Powerlevel9k but honored by Powerlevel10k. If you want your prompt to look in Powerlevel10k
|
||||
the same as in Powerlevel9k, remove `POWERLEVEL9K_MODE`.
|
||||
- There are
|
||||
[dozens more bugs](https://github.com/Powerlevel9k/powerlevel9k/issues/created_by/romkatv) in
|
||||
Powerlevel9k that don't exist in Powerlevel10k.
|
||||
|
@ -250,7 +320,7 @@ theme (so that you end up with no theme) and then installing Powerlevel10k manua
|
|||
- **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 bhilburn/powerlevel9k powerlevel9k`.
|
||||
`antigen theme powerlevel9k/powerlevel9k`.
|
||||
|
||||
2. Install Powerlevel10k manually.
|
||||
|
||||
|
|
|
@ -1,36 +1,33 @@
|
|||
# Config for Powerlevel10k with classic powerline prompt style. Requires a powerline font.
|
||||
# The color scheme is suitable for dark terminal background.
|
||||
#
|
||||
# Once you've installed Powerlevel10k, run these commands to apply classic style.
|
||||
#
|
||||
# curl -fsSL -o ~/p10k-classic.zsh https://raw.githubusercontent.com/romkatv/powerlevel10k/master/config/p10k-classic.zsh
|
||||
# echo 'source ~/p10k-classic.zsh' >>! ~/.zshrc
|
||||
#
|
||||
# To customize your prompt, open ~/p10k-classic.zsh in your favorite text editor, change it and
|
||||
# restart ZSH. The file is well-documented.
|
||||
# Config for Powerlevel10k with classic powerline prompt style. Type `p10k configure` to generate
|
||||
# your own config based on it.
|
||||
#
|
||||
# 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
|
||||
|
||||
if [[ -o 'aliases' ]]; then
|
||||
'builtin' 'unsetopt' 'aliases'
|
||||
local p9k_classic_restore_aliases=1
|
||||
else
|
||||
local p9k_classic_restore_aliases=0
|
||||
fi
|
||||
# Temporarily change options.
|
||||
'builtin' 'local' '-a' 'p10k_config_opts'
|
||||
[[ ! -o 'aliases' ]] || p10k_config_opts+=('aliases')
|
||||
[[ ! -o 'sh_glob' ]] || p10k_config_opts+=('sh_glob')
|
||||
[[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand')
|
||||
'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand'
|
||||
|
||||
() {
|
||||
emulate -L zsh
|
||||
setopt no_unset
|
||||
setopt no_unset extended_glob
|
||||
zmodload zsh/langinfo
|
||||
if [[ ${langinfo[CODESET]:-} != (utf|UTF)(-|)8 ]]; then
|
||||
local LC_ALL=${${(@M)$(locale -a):#*.(utf|UTF)(-|)8}[1]:-en_US.UTF-8}
|
||||
fi
|
||||
|
||||
# Unset all configuration options. This allows you to apply configiguration changes without
|
||||
# restarting zsh. Edit ~/.p10k.zsh and type `source ~/.p10k.zsh`.
|
||||
unset -m 'POWERLEVEL9K_*'
|
||||
|
||||
# The list of segments shown on the left. Fill it with the most important segments.
|
||||
typeset -ga POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
|
||||
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
|
||||
# =========================[ Line #1 ]=========================
|
||||
# os_icon # os identifier
|
||||
dir # current directory
|
||||
vcs # git status
|
||||
# =========================[ Line #2 ]=========================
|
||||
|
@ -54,15 +51,28 @@ fi
|
|||
nvm # node.js version from nvm (https://github.com/nvm-sh/nvm)
|
||||
nodeenv # node.js environment (https://github.com/ekalinin/nodeenv)
|
||||
# node_version # node.js version
|
||||
# go_version # golang version
|
||||
# go_version # go version (https://golang.org)
|
||||
# rust_version # rustc version (https://www.rust-lang.org)
|
||||
# dotnet_version # .NET version (https://dotnet.microsoft.com)
|
||||
rbenv # ruby version from rbenv (https://github.com/rbenv/rbenv)
|
||||
rvm # ruby version from rvm (https://rvm.io)
|
||||
kubecontext # current kubernetes context (https://kubernetes.io/)
|
||||
context # user@host
|
||||
terraform # terraform workspace (https://www.terraform.io)
|
||||
aws # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)
|
||||
# aws_eb_env # aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/)
|
||||
# azure # azure account name (https://docs.microsoft.com/en-us/cli/azure)
|
||||
context # user@hostname
|
||||
nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
|
||||
ranger # ranger shell (https://github.com/ranger/ranger)
|
||||
# vpn_ip # virtual private network indicator
|
||||
# ram # free RAM
|
||||
# load # CPU load
|
||||
# time # current time
|
||||
# =========================[ Line #2 ]=========================
|
||||
newline
|
||||
# nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
|
||||
# public_ip # public IP address
|
||||
# proxy # system-wide http/https/ftp proxy
|
||||
# battery # internal battery
|
||||
# time # current time
|
||||
# example # example user-defined segment (see prompt_example function below)
|
||||
)
|
||||
|
||||
|
@ -105,11 +115,12 @@ fi
|
|||
# Awesome-Terminal Fonts (regular) | awesome-fontconfig
|
||||
# Awesome-Terminal Fonts (patched) | awesome-patched
|
||||
# Nerd Fonts | nerdfont-complete
|
||||
# Other | compatible
|
||||
#
|
||||
# If this looks overwhelming, install a font from https://github.com/ryanoasis/nerd-fonts
|
||||
# and set POWERLEVEL9K_MODE=nerdfont-complete. "Meslo LG S Regular Nerd Font Complete Mono" from
|
||||
# https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts/Meslo/S/Regular/complete is
|
||||
# very good.
|
||||
# If this looks overwhelming, either stick with a preinstalled system font and set
|
||||
# POWERLEVEL9K_MODE=compatible, or install the recommended Powerlevel10k font from
|
||||
# https://github.com/romkatv/powerlevel10k/#recommended-meslo-nerd-font-patched-for-powerlevel10k
|
||||
# and set POWERLEVEL9K_MODE=nerdfont-complete.
|
||||
typeset -g POWERLEVEL9K_MODE=nerdfont-complete
|
||||
|
||||
# When set to true, icons appear before content on both sides of the prompt. When set
|
||||
|
@ -158,9 +169,9 @@ fi
|
|||
typeset -g POWERLEVEL9K_BACKGROUND=238
|
||||
|
||||
# Separator between same-color segments on the left.
|
||||
typeset -g POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR='%244F\uE0B1'
|
||||
typeset -g POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR='%246F\uE0B1'
|
||||
# Separator between same-color segments on the right.
|
||||
typeset -g POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR='%244F\uE0B3'
|
||||
typeset -g POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR='%246F\uE0B3'
|
||||
# Separator between different-color segments on the left.
|
||||
typeset -g POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='\uE0B0'
|
||||
# Separator between different-color segments on the right.
|
||||
|
@ -177,10 +188,10 @@ fi
|
|||
typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=
|
||||
|
||||
#################################[ os_icon: os identifier ]##################################
|
||||
# Foreground color.
|
||||
typeset -g POWERLEVEL9K_OS_ICON_FOREGROUND=7
|
||||
# Display this icon instead of the default.
|
||||
# typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='⭐'
|
||||
# OS identifier color.
|
||||
typeset -g POWERLEVEL9K_OS_ICON_FOREGROUND=255
|
||||
# Make the icon bold.
|
||||
typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='%B${P9K_CONTENT}'
|
||||
|
||||
################################[ prompt_char: prompt symbol ]################################
|
||||
# Transparent background.
|
||||
|
@ -195,6 +206,9 @@ fi
|
|||
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION='❮'
|
||||
# Prompt symbol in visual vi mode.
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION='Ⅴ'
|
||||
# Prompt symbol in overwrite vi mode.
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIOWR_CONTENT_EXPANSION='▶'
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=true
|
||||
# No line terminator if prompt_char is the last segment.
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=
|
||||
# No line introducer if prompt_char is the first segment.
|
||||
|
@ -217,14 +231,38 @@ fi
|
|||
typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND=39
|
||||
# Display anchor directory segments in bold.
|
||||
typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=true
|
||||
# Don't shorten directories that contain files matching this pattern. They are anchors.
|
||||
typeset -g POWERLEVEL9K_SHORTEN_FOLDER_MARKER='(.shorten_folder_marker|.bzr|CVS|.git|.hg|.svn|.terraform|.citc)'
|
||||
# Don't shorten directories that contain any of these files. They are anchors.
|
||||
local anchor_files=(
|
||||
.bzr
|
||||
.citc
|
||||
.git
|
||||
.hg
|
||||
.node-version
|
||||
.python-version
|
||||
.ruby-version
|
||||
.shorten_folder_marker
|
||||
.svn
|
||||
.terraform
|
||||
CVS
|
||||
Cargo.toml
|
||||
composer.json
|
||||
go.mod
|
||||
package.json
|
||||
)
|
||||
typeset -g POWERLEVEL9K_SHORTEN_FOLDER_MARKER="(${(j:|:)anchor_files})"
|
||||
# Don't shorten this many last directory segments. They are anchors.
|
||||
typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1
|
||||
# Shorten directory if it's longer than this even if there is space for it. The value can
|
||||
# be either absolute (e.g., '80') or a percentage of terminal width (e.g, '50%'). If empty,
|
||||
# directory will be shortened only when prompt doesn't fit.
|
||||
# directory will be shortened only when prompt doesn't fit or when other parameters demand it
|
||||
# (see POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS and POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT below).
|
||||
typeset -g POWERLEVEL9K_DIR_MAX_LENGTH=80
|
||||
# When `dir` segment is on the last prompt line, try to shorten it enough to leave at least this
|
||||
# many columns for typing commands.
|
||||
typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS=40
|
||||
# When `dir` segment is on the last prompt line, try to shorten it enough to leave at least
|
||||
# COLUMNS * POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT * 0.01 columns for typing commands.
|
||||
typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT=50
|
||||
# If set to true, embed a hyperlink into the directory. Useful for quickly
|
||||
# opening a directory in the file manager simply by clicking the link.
|
||||
# Can also be handy when the directory is shortened, as it allows you to see
|
||||
|
@ -233,7 +271,8 @@ fi
|
|||
|
||||
# Enable special styling for non-writable directories.
|
||||
typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=true
|
||||
# Show this icon when the current directory is not writable. Empty for no icon.
|
||||
# Show this icon when the current directory is not writable. POWERLEVEL9K_DIR_SHOW_WRITABLE
|
||||
# above must be set to true for this parameter to have effect.
|
||||
# typeset -g POWERLEVEL9K_DIR_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
# Custom prefix.
|
||||
|
@ -269,57 +308,114 @@ fi
|
|||
# FOREGROUND, SHORTENED_FOREGROUND and ANCHOR_FOREGROUND for every directory class that you wish
|
||||
# to have its own color.
|
||||
#
|
||||
# typeset -g POWERLEVEL9K_DIR_WORK_FOREGROUND=12
|
||||
# typeset -g POWERLEVEL9K_DIR_WORK_SHORTENED_FOREGROUND=4
|
||||
# typeset -g POWERLEVEL9K_DIR_WORK_FOREGROUND=31
|
||||
# typeset -g POWERLEVEL9K_DIR_WORK_SHORTENED_FOREGROUND=103
|
||||
# typeset -g POWERLEVEL9K_DIR_WORK_ANCHOR_FOREGROUND=39
|
||||
#
|
||||
# typeset -g POWERLEVEL9K_DIR_CLASSES=()
|
||||
|
||||
#####################################[ vcs: git status ]######################################
|
||||
# Git status: feature:master#tag ⇣42⇡42 *42 merge ~42 +42 !42 ?42.
|
||||
# We are using parameters defined by the gitstatus plugin. See reference:
|
||||
# https://github.com/romkatv/gitstatus/blob/master/gitstatus.plugin.zsh.
|
||||
local vcs=''
|
||||
# 'feature' or '@72f5c8a' if not on a branch.
|
||||
vcs+='${${VCS_STATUS_LOCAL_BRANCH:+%76F${(g::)POWERLEVEL9K_VCS_BRANCH_ICON}${VCS_STATUS_LOCAL_BRANCH//\%/%%}}'
|
||||
vcs+=':-%f@%76F${VCS_STATUS_COMMIT[1,8]}}'
|
||||
# ':master' if the tracking branch name differs from local branch.
|
||||
vcs+='${${VCS_STATUS_REMOTE_BRANCH:#$VCS_STATUS_LOCAL_BRANCH}:+%f:%76F${VCS_STATUS_REMOTE_BRANCH//\%/%%}}'
|
||||
# '#tag' if on a tag.
|
||||
vcs+='${VCS_STATUS_TAG:+%f#%76F${VCS_STATUS_TAG//\%/%%}}'
|
||||
# ⇣42 if behind the remote.
|
||||
vcs+='${${VCS_STATUS_COMMITS_BEHIND:#0}:+ %76F⇣${VCS_STATUS_COMMITS_BEHIND}}'
|
||||
# ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42.
|
||||
# If you want '⇣42 ⇡42' instead, replace '${${(M)VCS_STATUS_COMMITS_BEHIND:#0}:+ }' with ' '.
|
||||
vcs+='${${VCS_STATUS_COMMITS_AHEAD:#0}:+${${(M)VCS_STATUS_COMMITS_BEHIND:#0}:+ }%76F⇡${VCS_STATUS_COMMITS_AHEAD}}'
|
||||
# *42 if have stashes.
|
||||
vcs+='${${VCS_STATUS_STASHES:#0}:+ %76F*${VCS_STATUS_STASHES}}'
|
||||
# 'merge' if the repo is in an unusual state.
|
||||
vcs+='${VCS_STATUS_ACTION:+ %196F${VCS_STATUS_ACTION//\%/%%}}'
|
||||
# ~42 if have merge conflicts.
|
||||
vcs+='${${VCS_STATUS_NUM_CONFLICTED:#0}:+ %196F~${VCS_STATUS_NUM_CONFLICTED}}'
|
||||
# +42 if have staged changes.
|
||||
vcs+='${${VCS_STATUS_NUM_STAGED:#0}:+ %227F+${VCS_STATUS_NUM_STAGED}}'
|
||||
# !42 if have unstaged changes.
|
||||
vcs+='${${VCS_STATUS_NUM_UNSTAGED:#0}:+ %227F!${VCS_STATUS_NUM_UNSTAGED}}'
|
||||
# ?42 if have untracked files.
|
||||
vcs+='${${VCS_STATUS_NUM_UNTRACKED:#0}:+ %39F?${VCS_STATUS_NUM_UNTRACKED}}'
|
||||
# If P9K_CONTENT is not empty, leave it unchanged. It's either "loading" or from vcs_info.
|
||||
vcs="\${P9K_CONTENT:-$vcs}"
|
||||
|
||||
# Branch icon. Set this parameter to $'\uF126' for the popular Powerline branch icon.
|
||||
# Branch icon. Set this parameter to '\uF126 ' for the popular Powerline branch icon.
|
||||
typeset -g POWERLEVEL9K_VCS_BRANCH_ICON=
|
||||
POWERLEVEL9K_VCS_BRANCH_ICON=${(g::)POWERLEVEL9K_VCS_BRANCH_ICON}
|
||||
|
||||
# Untracked files icon. It's really a question mark, your font isn't broken.
|
||||
# Change the value of this parameter to show a different icon.
|
||||
typeset -g POWERLEVEL9K_VCS_UNTRACKED_ICON='?'
|
||||
POWERLEVEL9K_VCS_UNTRACKED_ICON=${(g::)POWERLEVEL9K_VCS_UNTRACKED_ICON}
|
||||
|
||||
# Formatter for Git status.
|
||||
#
|
||||
# Example output: master ⇣42⇡42 *42 merge ~42 +42 !42 ?42.
|
||||
#
|
||||
# You can edit the function to customize how Git status looks.
|
||||
#
|
||||
# VCS_STATUS_* parameters are set by gitstatus plugin. See reference:
|
||||
# https://github.com/romkatv/gitstatus/blob/master/gitstatus.plugin.zsh.
|
||||
function my_git_formatter() {
|
||||
emulate -L zsh
|
||||
|
||||
if [[ -n $P9K_CONTENT ]]; then
|
||||
# If P9K_CONTENT is not empty, use it. It's either "loading" or from vcs_info (not from
|
||||
# gitstatus plugin). VCS_STATUS_* parameters are not available in this case.
|
||||
typeset -g my_git_format=$P9K_CONTENT
|
||||
return
|
||||
fi
|
||||
|
||||
if (( $1 )); then
|
||||
# Styling for up-to-date Git status.
|
||||
local meta='%248F' # grey foreground
|
||||
local clean='%76F' # green foreground
|
||||
local modified='%178F' # yellow foreground
|
||||
local untracked='%39F' # blue foreground
|
||||
local conflicted='%196F' # red foreground
|
||||
else
|
||||
# Styling for incomplete and stale Git status.
|
||||
local meta='%244F' # grey foreground
|
||||
local clean='%244F' # grey foreground
|
||||
local modified='%244F' # grey foreground
|
||||
local untracked='%244F' # grey foreground
|
||||
local conflicted='%244F' # grey foreground
|
||||
fi
|
||||
|
||||
local res
|
||||
local where # branch name, tag or commit
|
||||
if [[ -n $VCS_STATUS_LOCAL_BRANCH ]]; then
|
||||
res+="${clean}${POWERLEVEL9K_VCS_BRANCH_ICON}"
|
||||
where=${(V)VCS_STATUS_LOCAL_BRANCH}
|
||||
elif [[ -n $VCS_STATUS_TAG ]]; then
|
||||
res+="${meta}#"
|
||||
where=${(V)VCS_STATUS_TAG}
|
||||
else
|
||||
res+="${meta}@"
|
||||
where=${VCS_STATUS_COMMIT[1,8]}
|
||||
fi
|
||||
|
||||
# If local branch name or tag is at most 32 characters long, show it in full.
|
||||
# Otherwise show the first 12 … the last 12.
|
||||
(( $#where > 32 )) && where[13,-13]="…"
|
||||
res+="${clean}${where//\%/%%}" # escape %
|
||||
|
||||
# Show tracking branch name if it differs from local branch.
|
||||
if [[ -n ${VCS_STATUS_REMOTE_BRANCH:#$VCS_STATUS_LOCAL_BRANCH} ]]; then
|
||||
res+="${meta}:${clean}${(V)VCS_STATUS_REMOTE_BRANCH//\%/%%}" # escape %
|
||||
fi
|
||||
|
||||
# ⇣42 if behind the remote.
|
||||
(( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}⇣${VCS_STATUS_COMMITS_BEHIND}"
|
||||
# ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42.
|
||||
(( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=" "
|
||||
(( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}⇡${VCS_STATUS_COMMITS_AHEAD}"
|
||||
# *42 if have stashes.
|
||||
(( VCS_STATUS_STASHES )) && res+=" ${clean}*${VCS_STATUS_STASHES}"
|
||||
# 'merge' if the repo is in an unusual state.
|
||||
[[ -n $VCS_STATUS_ACTION ]] && res+=" ${conflicted}${VCS_STATUS_ACTION}"
|
||||
# ~42 if have merge conflicts.
|
||||
(( VCS_STATUS_NUM_CONFLICTED )) && res+=" ${conflicted}~${VCS_STATUS_NUM_CONFLICTED}"
|
||||
# +42 if have staged changes.
|
||||
(( VCS_STATUS_NUM_STAGED )) && res+=" ${modified}+${VCS_STATUS_NUM_STAGED}"
|
||||
# !42 if have unstaged changes.
|
||||
(( VCS_STATUS_NUM_UNSTAGED )) && res+=" ${modified}!${VCS_STATUS_NUM_UNSTAGED}"
|
||||
# ?42 if have untracked files. It's really a question mark, your font isn't broken.
|
||||
# See POWERLEVEL9K_VCS_UNTRACKED_ICON above if you want to use a different icon.
|
||||
# Remove the next line if you don't want to see untracked files at all.
|
||||
(( VCS_STATUS_NUM_UNTRACKED )) && res+=" ${untracked}${POWERLEVEL9K_VCS_UNTRACKED_ICON}${VCS_STATUS_NUM_UNTRACKED}"
|
||||
|
||||
typeset -g my_git_format=$res
|
||||
}
|
||||
functions -M my_git_formatter 2>/dev/null
|
||||
|
||||
# Disable the default Git status formatting.
|
||||
typeset -g POWERLEVEL9K_VCS_DISABLE_GITSTATUS_FORMATTING=true
|
||||
# Install our own Git status formatter.
|
||||
typeset -g POWERLEVEL9K_VCS_{CLEAN,UNTRACKED,MODIFIED}_CONTENT_EXPANSION=$vcs
|
||||
# When Git status is being refreshed asynchronously, display the last known repo status in grey.
|
||||
typeset -g POWERLEVEL9K_VCS_LOADING_CONTENT_EXPANSION=${${vcs//\%f}//\%<->F}
|
||||
typeset -g POWERLEVEL9K_VCS_LOADING_FOREGROUND=244
|
||||
typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${$((my_git_formatter(1)))+${my_git_format}}'
|
||||
typeset -g POWERLEVEL9K_VCS_LOADING_CONTENT_EXPANSION='${$((my_git_formatter(0)))+${my_git_format}}'
|
||||
# Enable counters for staged, unstaged, etc.
|
||||
typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED,COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=-1
|
||||
typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED,CONFLICTED,COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=-1
|
||||
|
||||
# Icon color.
|
||||
typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_COLOR=76
|
||||
typeset -g POWERLEVEL9K_VCS_LOADING_VISUAL_IDENTIFIER_COLOR=244
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
# Custom prefix.
|
||||
|
@ -332,16 +428,9 @@ fi
|
|||
|
||||
# These settings are used for respositories other than Git or when gitstatusd fails and
|
||||
# Powerlevel10k has to fall back to using vcs_info.
|
||||
typeset -g POWERLEVEL9K_VCS_{CLEAN,MODIFIED,UNTRACKED}_FOREGROUND=76
|
||||
typeset -g POWERLEVEL9K_VCS_REMOTE_BRANCH_ICON=':'
|
||||
typeset -g POWERLEVEL9K_VCS_COMMIT_ICON='@'
|
||||
typeset -g POWERLEVEL9K_VCS_INCOMING_CHANGES_ICON='⇣'
|
||||
typeset -g POWERLEVEL9K_VCS_OUTGOING_CHANGES_ICON='⇡'
|
||||
typeset -g POWERLEVEL9K_VCS_STASH_ICON='*'
|
||||
typeset -g POWERLEVEL9K_VCS_TAG_ICON=$'%{\b#%}'
|
||||
typeset -g POWERLEVEL9K_VCS_UNTRACKED_ICON=$'%{\b?%}'
|
||||
typeset -g POWERLEVEL9K_VCS_UNSTAGED_ICON=$'%{\b!%}'
|
||||
typeset -g POWERLEVEL9K_VCS_STAGED_ICON=$'%{\b+%}'
|
||||
typeset -g POWERLEVEL9K_VCS_CLEAN_FOREGROUND=76
|
||||
typeset -g POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND=76
|
||||
typeset -g POWERLEVEL9K_VCS_MODIFIED_FOREGROUND=178
|
||||
|
||||
##########################[ status: exit code of the last command ]###########################
|
||||
# Enable OK_PIPE, ERROR_PIPE and ERROR_SIGNAL status states to allow us to enable, disable and
|
||||
|
@ -380,7 +469,6 @@ fi
|
|||
typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_VISUAL_IDENTIFIER_EXPANSION='↵'
|
||||
|
||||
###################[ command_execution_time: duration of the last command ]###################
|
||||
# Background color.
|
||||
# Show duration of the last command if takes longer than this many seconds.
|
||||
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3
|
||||
# Show this many fractional digits. Zero means round to seconds.
|
||||
|
@ -411,20 +499,44 @@ fi
|
|||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_NORDVPN_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
####################################[ context: user@host ]####################################
|
||||
#################[ ranger: ranger shell (https://github.com/ranger/ranger) ]##################
|
||||
# Ranger shell color.
|
||||
typeset -g POWERLEVEL9K_RANGER_FOREGROUND=178
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
######################################[ ram: free RAM ]#######################################
|
||||
# RAM color.
|
||||
typeset -g POWERLEVEL9K_RAM_FOREGROUND=66
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_RAM_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
######################################[ load: CPU load ]######################################
|
||||
# Show average CPU load over this many last minutes. Valid values are 1, 5 and 15.
|
||||
typeset -g POWERLEVEL9K_LOAD_WHICH=5
|
||||
# Load color when load is under 50%.
|
||||
typeset -g POWERLEVEL9K_LOAD_NORMAL_FOREGROUND=66
|
||||
# Load color when load is between 50% and 70%.
|
||||
typeset -g POWERLEVEL9K_LOAD_WARNING_FOREGROUND=178
|
||||
# Load color when load is over 70%.
|
||||
typeset -g POWERLEVEL9K_LOAD_CRITICAL_FOREGROUND=166
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_LOAD_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
##################################[ context: user@hostname ]##################################
|
||||
# Default context color.
|
||||
typeset -g POWERLEVEL9K_CONTEXT_FOREGROUND=180
|
||||
# Default context format: %n is username, %m is hostname.
|
||||
typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE='%n@%m'
|
||||
|
||||
# Context color when running with privileges.
|
||||
typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=227
|
||||
# Context format when running with privileges: %n is username, %m is hostname.
|
||||
typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE='%n@%m'
|
||||
typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=178
|
||||
# Context format when running with privileges: %n is username, %m is hostname, %B for bold.
|
||||
typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE='%B%n@%m'
|
||||
|
||||
# Don't show context unless running with privileges on in SSH.
|
||||
# Don't show context unless running with privileges or in SSH.
|
||||
# Tip: Remove the next line to always show context.
|
||||
typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION=
|
||||
typeset -g POWERLEVEL9K_ALWAYS_SHOW_CONTEXT=true
|
||||
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_CONTEXT_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
@ -491,12 +603,72 @@ fi
|
|||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_NODE_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
################################[ go_version: golang version ]################################
|
||||
# Golang version color.
|
||||
#######################[ go_version: go version (https://golang.org) ]########################
|
||||
# Go version color.
|
||||
typeset -g POWERLEVEL9K_GO_VERSION_FOREGROUND=37
|
||||
# Show go version only when in a go project subdirectory.
|
||||
typeset -g POWERLEVEL9K_GO_VERSION_PROJECT_ONLY=true
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_GO_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
#################[ rust_version: rustc version (https://www.rust-lang.org) ]##################
|
||||
# Rust version color.
|
||||
typeset -g POWERLEVEL9K_RUST_VERSION_FOREGROUND=37
|
||||
# Show rust version only when in a rust project subdirectory.
|
||||
typeset -g POWERLEVEL9K_RUST_VERSION_PROJECT_ONLY=true
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_RUST_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
###############[ dotnet_version: .NET version (https://dotnet.microsoft.com) ]################
|
||||
# .NET version color.
|
||||
typeset -g POWERLEVEL9K_DOTNET_VERSION_FOREGROUND=134
|
||||
# Show .NET version only when in a .NET project subdirectory.
|
||||
typeset -g POWERLEVEL9K_DOTNET_VERSION_PROJECT_ONLY=true
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_DOTNET_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
#############[ rbenv: ruby version from rbenv (https://github.com/rbenv/rbenv) ]##############
|
||||
# Rbenv color.
|
||||
typeset -g POWERLEVEL9K_RBENV_FOREGROUND=168
|
||||
# Don't show ruby version if it's the same as global: $(rbenv version-name) == $(rbenv global).
|
||||
typeset -g POWERLEVEL9K_RBENV_PROMPT_ALWAYS_SHOW=false
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_RBENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
#######################[ rvm: ruby version from rvm (https://rvm.io) ]########################
|
||||
# Rvm color.
|
||||
typeset -g POWERLEVEL9K_RVM_FOREGROUND=168
|
||||
# Don't show @gemset at the end.
|
||||
typeset -g POWERLEVEL9K_RVM_SHOW_GEMSET=false
|
||||
# Don't show ruby- at the front.
|
||||
typeset -g POWERLEVEL9K_RVM_SHOW_PREFIX=false
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_RVM_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
################[ terraform: terraform workspace (https://www.terraform.io) ]#################
|
||||
# Terraform color.
|
||||
typeset -g POWERLEVEL9K_TERRAFORM_FOREGROUND=38
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_TERRAFORM_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
#[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]#
|
||||
# AWS profile color.
|
||||
typeset -g POWERLEVEL9K_AWS_FOREGROUND=208
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_AWS_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
#[ aws_eb_env: aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) ]#
|
||||
# AWS Elastic Beanstalk environment color.
|
||||
typeset -g POWERLEVEL9K_AWS_EB_ENV_FOREGROUND=70
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_AWS_EB_ENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
##########[ azure: azure account name (https://docs.microsoft.com/en-us/cli/azure) ]##########
|
||||
# Azure account name color.
|
||||
typeset -g POWERLEVEL9K_AZURE_FOREGROUND=32
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_AZURE_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
#############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]#############
|
||||
# Kubernetes context classes for the purpose of using different colors, icons and expansions with
|
||||
# different contexts.
|
||||
|
@ -509,12 +681,19 @@ fi
|
|||
# POWERLEVEL9K_KUBECONTEXT_CLASSES defines the context class. Patterns are tried in order. The
|
||||
# first match wins.
|
||||
#
|
||||
# For example, if your current kubernetes context is "deathray-testing/default", its class is TEST
|
||||
# For example, given these settings:
|
||||
#
|
||||
# typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=(
|
||||
# '*prod*' PROD
|
||||
# '*test*' TEST
|
||||
# '*' DEFAULT)
|
||||
#
|
||||
# If your current kubernetes context is "deathray-testing/default", its class is TEST
|
||||
# because "deathray-testing/default" doesn't match the pattern '*prod*' but does match '*test*'.
|
||||
#
|
||||
# You can define different colors, icons and content expansions for different classes:
|
||||
#
|
||||
# typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_FOREGROUND=2
|
||||
# typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_FOREGROUND=28
|
||||
# typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
# typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'
|
||||
typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=(
|
||||
|
@ -525,7 +704,8 @@ fi
|
|||
# typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
# Use POWERLEVEL9K_KUBECONTEXT_CONTENT_EXPANSION to specify the content displayed by kubecontext
|
||||
# segment.
|
||||
# segment. Parameter expansions are very flexible and fast, too. See reference:
|
||||
# http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion.
|
||||
#
|
||||
# Within the expansion the following parameters are always available:
|
||||
#
|
||||
|
@ -539,7 +719,8 @@ fi
|
|||
# in the output of `kubectl config get-contexts`. If there is no
|
||||
# namespace, the parameter is set to "default".
|
||||
#
|
||||
# If the context points to GKE or EKS, the following extra parameters are available:
|
||||
# If the context points to Google Kubernetes Engine (GKE) or Elastic Kubernetes Service (EKS),
|
||||
# the following extra parameters are available:
|
||||
#
|
||||
# - P9K_KUBECONTEXT_CLOUD_NAME Either "gke" or "eks".
|
||||
# - P9K_KUBECONTEXT_CLOUD_ACCOUNT Account/project ID.
|
||||
|
@ -560,11 +741,11 @@ fi
|
|||
# - P9K_KUBECONTEXT_CLOUD_ACCOUNT=123456789012
|
||||
# - P9K_KUBECONTEXT_CLOUD_ZONE=us-east-1
|
||||
# - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01
|
||||
#
|
||||
# The expansion below will show P9K_KUBECONTEXT_CLOUD_CLUSTER if it's not empty and fall back
|
||||
# to P9K_KUBECONTEXT_NAME. Parameter expansions are very flexible and fast, too. See reference:
|
||||
# http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion.
|
||||
typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION='${P9K_KUBECONTEXT_CLOUD_CLUSTER:-${P9K_KUBECONTEXT_NAME}}'
|
||||
typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION=
|
||||
# Show P9K_KUBECONTEXT_CLOUD_CLUSTER if it's not empty and fall back to P9K_KUBECONTEXT_NAME.
|
||||
POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${P9K_KUBECONTEXT_CLOUD_CLUSTER:-${P9K_KUBECONTEXT_NAME}}'
|
||||
# Append the current context's namespace if it's not "default".
|
||||
POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${${:-/$P9K_KUBECONTEXT_NAMESPACE}:#/default}'
|
||||
|
||||
# Custom prefix.
|
||||
# typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX='%248Fat '
|
||||
|
@ -575,20 +756,33 @@ fi
|
|||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_PUBLIC_IP_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
########################[ vpn_ip: virtual private network indicator ]#########################
|
||||
# VPN IP color.
|
||||
typeset -g POWERLEVEL9K_VPN_IP_FOREGROUND=81
|
||||
# When on VPN, show just an icon without the IP address.
|
||||
typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION=
|
||||
# Regular expression for the VPN network interface. Run ifconfig while on VPN to see the
|
||||
# name of the interface.
|
||||
typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(wg|(.*tun))[0-9]*'
|
||||
# Icon to show when on VPN.
|
||||
typeset -g POWERLEVEL9K_VPN_IP_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER}'
|
||||
|
||||
#########################[ proxy: system-wide http/https/ftp proxy ]##########################
|
||||
# Proxy color.
|
||||
typeset -g POWERLEVEL9K_PROXY_FOREGROUND=68
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_PROXY_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
################################[ battery: internal battery ]#################################
|
||||
# Show battery in red when it's below this level and not connected to power supply.
|
||||
typeset -g POWERLEVEL9K_BATTERY_LOW_THRESHOLD=20
|
||||
typeset -g POWERLEVEL9K_BATTERY_LOW_FOREGROUND=1
|
||||
# Show battery in green when it's charging.
|
||||
typeset -g POWERLEVEL9K_BATTERY_CHARGING_FOREGROUND=2
|
||||
# Show battery in yellow when not connected to power supply.
|
||||
typeset -g POWERLEVEL9K_BATTERY_LOW_FOREGROUND=160
|
||||
# Show battery in green when it's charging or fully charged.
|
||||
typeset -g POWERLEVEL9K_BATTERY_{CHARGING,CHARGED}_FOREGROUND=70
|
||||
# Show battery in yellow when it's discharging.
|
||||
typeset -g POWERLEVEL9K_BATTERY_DISCONNECTED_FOREGROUND=178
|
||||
# Battery pictograms going from low to high level of charge.
|
||||
typeset -g POWERLEVEL9K_BATTERY_STAGES='▁▂▃▄▅▆▇'
|
||||
# Display battery pictogram without background.
|
||||
typeset -g POWERLEVEL9K_BATTERY_VISUAL_IDENTIFIER_EXPANSION='%k${P9K_VISUAL_IDENTIFIER}'
|
||||
# Don't show battery when it's fully charged and connected to power supply.
|
||||
typeset -g POWERLEVEL9K_BATTERY_CHARGED_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION=
|
||||
typeset -g POWERLEVEL9K_BATTERY_STAGES=('%K{232}▁' '%K{232}▂' '%K{232}▃' '%K{232}▄' '%K{232}▅' '%K{232}▆' '%K{232}▇' '%K{232}█')
|
||||
# Don't show the remaining time to charge/discharge.
|
||||
typeset -g POWERLEVEL9K_BATTERY_VERBOSE=false
|
||||
|
||||
|
@ -610,9 +804,9 @@ fi
|
|||
# prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or
|
||||
# POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and orange text greeting the user.
|
||||
#
|
||||
# Type `p9k_prompt_segment -h` for documentation and a more sophisticated example.
|
||||
# Type `p10k help segment` for documentation and a more sophisticated example.
|
||||
function prompt_example() {
|
||||
p9k_prompt_segment -f 208 -i '⭐' -t 'hello, %n'
|
||||
p10k segment -f 208 -i '⭐' -t 'hello, %n'
|
||||
}
|
||||
|
||||
# User-defined prompt segments can be customized the same way as built-in segments.
|
||||
|
@ -620,5 +814,5 @@ fi
|
|||
typeset -g POWERLEVEL9K_EXAMPLE_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER}'
|
||||
}
|
||||
|
||||
(( ! p9k_classic_restore_aliases )) || setopt aliases
|
||||
'builtin' 'unset' 'p9k_classic_restore_aliases'
|
||||
(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]}
|
||||
'builtin' 'unset' 'p10k_config_opts'
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 67 KiB |
|
@ -1,29 +1,24 @@
|
|||
# Config for Powerlevel10k with lean prompt style. Doesn't require a custom font but can take
|
||||
# advantage of it if available. The color scheme is suitable for dark terminal background.
|
||||
#
|
||||
# Once you've installed Powerlevel10k, run these commands to apply lean style.
|
||||
#
|
||||
# curl -fsSL -o ~/p10k-lean.zsh https://raw.githubusercontent.com/romkatv/powerlevel10k/master/config/p10k-lean.zsh
|
||||
# echo 'source ~/p10k-lean.zsh' >>! ~/.zshrc
|
||||
#
|
||||
# To customize your prompt, open ~/p10k-lean.zsh in your favorite text editor, change it and
|
||||
# restart ZSH. The file is well-documented.
|
||||
# Config for Powerlevel10k with lean prompt style. Type `p10k configure` to generate
|
||||
# your own config based on it.
|
||||
#
|
||||
# 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
|
||||
|
||||
if [[ -o 'aliases' ]]; then
|
||||
# Temporarily disable aliases.
|
||||
'builtin' 'unsetopt' 'aliases'
|
||||
local p10k_lean_restore_aliases=1
|
||||
else
|
||||
local p10k_lean_restore_aliases=0
|
||||
fi
|
||||
# Temporarily change options.
|
||||
'builtin' 'local' '-a' 'p10k_config_opts'
|
||||
[[ ! -o 'aliases' ]] || p10k_config_opts+=('aliases')
|
||||
[[ ! -o 'sh_glob' ]] || p10k_config_opts+=('sh_glob')
|
||||
[[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand')
|
||||
'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand'
|
||||
|
||||
() {
|
||||
emulate -L zsh
|
||||
setopt no_unset
|
||||
setopt no_unset extended_glob
|
||||
zmodload zsh/langinfo
|
||||
if [[ ${langinfo[CODESET]:-} != (utf|UTF)(-|)8 ]]; then
|
||||
local LC_ALL=${${(@M)$(locale -a):#*.(utf|UTF)(-|)8}[1]:-en_US.UTF-8}
|
||||
fi
|
||||
|
||||
# Unset all configuration options. This allows you to apply configiguration changes without
|
||||
# restarting zsh. Edit ~/.p10k.zsh and type `source ~/.p10k.zsh`.
|
||||
|
@ -56,15 +51,28 @@ fi
|
|||
nvm # node.js version from nvm (https://github.com/nvm-sh/nvm)
|
||||
nodeenv # node.js environment (https://github.com/ekalinin/nodeenv)
|
||||
# node_version # node.js version
|
||||
# go_version # golang version
|
||||
# go_version # go version (https://golang.org)
|
||||
# rust_version # rustc version (https://www.rust-lang.org)
|
||||
# dotnet_version # .NET version (https://dotnet.microsoft.com)
|
||||
rbenv # ruby version from rbenv (https://github.com/rbenv/rbenv)
|
||||
rvm # ruby version from rvm (https://rvm.io)
|
||||
kubecontext # current kubernetes context (https://kubernetes.io/)
|
||||
context # user@host
|
||||
terraform # terraform workspace (https://www.terraform.io)
|
||||
aws # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)
|
||||
# aws_eb_env # aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/)
|
||||
# azure # azure account name (https://docs.microsoft.com/en-us/cli/azure)
|
||||
context # user@hostname
|
||||
nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
|
||||
ranger # ranger shell (https://github.com/ranger/ranger)
|
||||
# vpn_ip # virtual private network indicator
|
||||
# ram # free RAM
|
||||
# load # CPU load
|
||||
# time # current time
|
||||
# =========================[ Line #2 ]=========================
|
||||
newline
|
||||
# nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
|
||||
# public_ip # public IP address
|
||||
# proxy # system-wide http/https/ftp proxy
|
||||
# battery # internal battery
|
||||
# time # current time
|
||||
# example # example user-defined segment (see prompt_example function below)
|
||||
)
|
||||
|
||||
|
@ -118,10 +126,9 @@ fi
|
|||
# Other | compatible
|
||||
#
|
||||
# If this looks overwhelming, either stick with a preinstalled system font and set
|
||||
# POWERLEVEL9K_MODE=compatible, or install a font from https://github.com/ryanoasis/nerd-fonts
|
||||
# and set POWERLEVEL9K_MODE=nerdfont-complete. "Meslo LG S Regular Nerd Font Complete Mono" from
|
||||
# https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts/Meslo/S/Regular/complete is
|
||||
# very good.
|
||||
# POWERLEVEL9K_MODE=compatible, or install the recommended Powerlevel10k font from
|
||||
# https://github.com/romkatv/powerlevel10k/#recommended-meslo-nerd-font-patched-for-powerlevel10k
|
||||
# and set POWERLEVEL9K_MODE=nerdfont-complete.
|
||||
typeset -g POWERLEVEL9K_MODE=nerdfont-complete
|
||||
|
||||
# When set to true, icons appear before content on both sides of the prompt. When set
|
||||
|
@ -169,9 +176,9 @@ fi
|
|||
|
||||
#################################[ os_icon: os identifier ]##################################
|
||||
# OS identifier color.
|
||||
typeset -g POWERLEVEL9K_OS_ICON_FOREGROUND=212
|
||||
# Display this icon instead of the default.
|
||||
# typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='⭐'
|
||||
typeset -g POWERLEVEL9K_OS_ICON_FOREGROUND=
|
||||
# Make the icon bold.
|
||||
typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='%B${P9K_CONTENT}'
|
||||
|
||||
################################[ prompt_char: prompt symbol ]################################
|
||||
# Green prompt symbol if the last command succeeded.
|
||||
|
@ -184,6 +191,9 @@ fi
|
|||
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION='❮'
|
||||
# Prompt symbol in visual vi mode.
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION='Ⅴ'
|
||||
# Prompt symbol in overwrite vi mode.
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIOWR_CONTENT_EXPANSION='▶'
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=true
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=''
|
||||
|
||||
##################################[ dir: current directory ]##################################
|
||||
|
@ -201,14 +211,38 @@ fi
|
|||
typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND=39
|
||||
# Display anchor directory segments in bold.
|
||||
typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=true
|
||||
# Don't shorten directories that contain files matching this pattern. They are anchors.
|
||||
typeset -g POWERLEVEL9K_SHORTEN_FOLDER_MARKER='(.shorten_folder_marker|.bzr|CVS|.git|.hg|.svn|.terraform|.citc)'
|
||||
# Don't shorten directories that contain any of these files. They are anchors.
|
||||
local anchor_files=(
|
||||
.bzr
|
||||
.citc
|
||||
.git
|
||||
.hg
|
||||
.node-version
|
||||
.python-version
|
||||
.ruby-version
|
||||
.shorten_folder_marker
|
||||
.svn
|
||||
.terraform
|
||||
CVS
|
||||
Cargo.toml
|
||||
composer.json
|
||||
go.mod
|
||||
package.json
|
||||
)
|
||||
typeset -g POWERLEVEL9K_SHORTEN_FOLDER_MARKER="(${(j:|:)anchor_files})"
|
||||
# Don't shorten this many last directory segments. They are anchors.
|
||||
typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1
|
||||
# Shorten directory if it's longer than this even if there is space for it. The value can
|
||||
# be either absolute (e.g., '80') or a percentage of terminal width (e.g, '50%'). If empty,
|
||||
# directory will be shortened only when prompt doesn't fit.
|
||||
# directory will be shortened only when prompt doesn't fit or when other parameters demand it
|
||||
# (see POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS and POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT below).
|
||||
typeset -g POWERLEVEL9K_DIR_MAX_LENGTH=80
|
||||
# When `dir` segment is on the last prompt line, try to shorten it enough to leave at least this
|
||||
# many columns for typing commands.
|
||||
typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS=40
|
||||
# When `dir` segment is on the last prompt line, try to shorten it enough to leave at least
|
||||
# COLUMNS * POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT * 0.01 columns for typing commands.
|
||||
typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT=50
|
||||
# If set to true, embed a hyperlink into the directory. Useful for quickly
|
||||
# opening a directory in the file manager simply by clicking the link.
|
||||
# Can also be handy when the directory is shortened, as it allows you to see
|
||||
|
@ -219,7 +253,7 @@ fi
|
|||
typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=true
|
||||
# Show this icon when the current directory is not writable. POWERLEVEL9K_DIR_SHOW_WRITABLE
|
||||
# above must be set to true for this parameter to have effect.
|
||||
# POWERLEVEL9K_DIR_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
# typeset -g POWERLEVEL9K_DIR_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
# Custom prefix.
|
||||
# typeset -g POWERLEVEL9K_DIR_PREFIX='%fin '
|
||||
|
@ -254,57 +288,114 @@ fi
|
|||
# FOREGROUND, SHORTENED_FOREGROUND and ANCHOR_FOREGROUND for every directory class that you wish
|
||||
# to have its own color.
|
||||
#
|
||||
# typeset -g POWERLEVEL9K_DIR_WORK_FOREGROUND=12
|
||||
# typeset -g POWERLEVEL9K_DIR_WORK_SHORTENED_FOREGROUND=4
|
||||
# typeset -g POWERLEVEL9K_DIR_WORK_FOREGROUND=31
|
||||
# typeset -g POWERLEVEL9K_DIR_WORK_SHORTENED_FOREGROUND=103
|
||||
# typeset -g POWERLEVEL9K_DIR_WORK_ANCHOR_FOREGROUND=39
|
||||
#
|
||||
# typeset -g POWERLEVEL9K_DIR_CLASSES=()
|
||||
|
||||
#####################################[ vcs: git status ]######################################
|
||||
# Git status: feature:master#tag ⇣42⇡42 *42 merge ~42 +42 !42 ?42.
|
||||
# We are using parameters defined by the gitstatus plugin. See reference:
|
||||
# https://github.com/romkatv/gitstatus/blob/master/gitstatus.plugin.zsh.
|
||||
local vcs=''
|
||||
# 'feature' or '@72f5c8a' if not on a branch.
|
||||
vcs+='${${VCS_STATUS_LOCAL_BRANCH:+%76F${(g::)POWERLEVEL9K_VCS_BRANCH_ICON}${VCS_STATUS_LOCAL_BRANCH//\%/%%}}'
|
||||
vcs+=':-%f@%76F${VCS_STATUS_COMMIT[1,8]}}'
|
||||
# ':master' if the tracking branch name differs from local branch.
|
||||
vcs+='${${VCS_STATUS_REMOTE_BRANCH:#$VCS_STATUS_LOCAL_BRANCH}:+%f:%76F${VCS_STATUS_REMOTE_BRANCH//\%/%%}}'
|
||||
# '#tag' if on a tag.
|
||||
vcs+='${VCS_STATUS_TAG:+%f#%76F${VCS_STATUS_TAG//\%/%%}}'
|
||||
# ⇣42 if behind the remote.
|
||||
vcs+='${${VCS_STATUS_COMMITS_BEHIND:#0}:+ %76F⇣${VCS_STATUS_COMMITS_BEHIND}}'
|
||||
# ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42.
|
||||
# If you want '⇣42 ⇡42' instead, replace '${${(M)VCS_STATUS_COMMITS_BEHIND:#0}:+ }' with ' '.
|
||||
vcs+='${${VCS_STATUS_COMMITS_AHEAD:#0}:+${${(M)VCS_STATUS_COMMITS_BEHIND:#0}:+ }%76F⇡${VCS_STATUS_COMMITS_AHEAD}}'
|
||||
# *42 if have stashes.
|
||||
vcs+='${${VCS_STATUS_STASHES:#0}:+ %76F*${VCS_STATUS_STASHES}}'
|
||||
# 'merge' if the repo is in an unusual state.
|
||||
vcs+='${VCS_STATUS_ACTION:+ %196F${VCS_STATUS_ACTION//\%/%%}}'
|
||||
# ~42 if have merge conflicts.
|
||||
vcs+='${${VCS_STATUS_NUM_CONFLICTED:#0}:+ %196F~${VCS_STATUS_NUM_CONFLICTED}}'
|
||||
# +42 if have staged changes.
|
||||
vcs+='${${VCS_STATUS_NUM_STAGED:#0}:+ %227F+${VCS_STATUS_NUM_STAGED}}'
|
||||
# !42 if have unstaged changes.
|
||||
vcs+='${${VCS_STATUS_NUM_UNSTAGED:#0}:+ %227F!${VCS_STATUS_NUM_UNSTAGED}}'
|
||||
# ?42 if have untracked files.
|
||||
vcs+='${${VCS_STATUS_NUM_UNTRACKED:#0}:+ %39F?${VCS_STATUS_NUM_UNTRACKED}}'
|
||||
# If P9K_CONTENT is not empty, leave it unchanged. It's either "loading" or from vcs_info.
|
||||
vcs="\${P9K_CONTENT:-$vcs}"
|
||||
|
||||
# Branch icon. Set this parameter to $'\uF126' for the popular Powerline branch icon.
|
||||
# Branch icon. Set this parameter to '\uF126 ' for the popular Powerline branch icon.
|
||||
typeset -g POWERLEVEL9K_VCS_BRANCH_ICON=
|
||||
POWERLEVEL9K_VCS_BRANCH_ICON=${(g::)POWERLEVEL9K_VCS_BRANCH_ICON}
|
||||
|
||||
# Untracked files icon. It's really a question mark, your font isn't broken.
|
||||
# Change the value of this parameter to show a different icon.
|
||||
typeset -g POWERLEVEL9K_VCS_UNTRACKED_ICON='?'
|
||||
POWERLEVEL9K_VCS_UNTRACKED_ICON=${(g::)POWERLEVEL9K_VCS_UNTRACKED_ICON}
|
||||
|
||||
# Formatter for Git status.
|
||||
#
|
||||
# Example output: master ⇣42⇡42 *42 merge ~42 +42 !42 ?42.
|
||||
#
|
||||
# You can edit the function to customize how Git status looks.
|
||||
#
|
||||
# VCS_STATUS_* parameters are set by gitstatus plugin. See reference:
|
||||
# https://github.com/romkatv/gitstatus/blob/master/gitstatus.plugin.zsh.
|
||||
function my_git_formatter() {
|
||||
emulate -L zsh
|
||||
|
||||
if [[ -n $P9K_CONTENT ]]; then
|
||||
# If P9K_CONTENT is not empty, use it. It's either "loading" or from vcs_info (not from
|
||||
# gitstatus plugin). VCS_STATUS_* parameters are not available in this case.
|
||||
typeset -g my_git_format=$P9K_CONTENT
|
||||
return
|
||||
fi
|
||||
|
||||
if (( $1 )); then
|
||||
# Styling for up-to-date Git status.
|
||||
local meta='%f' # default foreground
|
||||
local clean='%76F' # green foreground
|
||||
local modified='%178F' # yellow foreground
|
||||
local untracked='%39F' # blue foreground
|
||||
local conflicted='%196F' # red foreground
|
||||
else
|
||||
# Styling for incomplete and stale Git status.
|
||||
local meta='%244F' # grey foreground
|
||||
local clean='%244F' # grey foreground
|
||||
local modified='%244F' # grey foreground
|
||||
local untracked='%244F' # grey foreground
|
||||
local conflicted='%244F' # grey foreground
|
||||
fi
|
||||
|
||||
local res
|
||||
local where # branch name, tag or commit
|
||||
if [[ -n $VCS_STATUS_LOCAL_BRANCH ]]; then
|
||||
res+="${clean}${POWERLEVEL9K_VCS_BRANCH_ICON}"
|
||||
where=${(V)VCS_STATUS_LOCAL_BRANCH}
|
||||
elif [[ -n $VCS_STATUS_TAG ]]; then
|
||||
res+="${meta}#"
|
||||
where=${(V)VCS_STATUS_TAG}
|
||||
else
|
||||
res+="${meta}@"
|
||||
where=${VCS_STATUS_COMMIT[1,8]}
|
||||
fi
|
||||
|
||||
# If local branch name or tag is at most 32 characters long, show it in full.
|
||||
# Otherwise show the first 12 … the last 12.
|
||||
(( $#where > 32 )) && where[13,-13]="…"
|
||||
res+="${clean}${where//\%/%%}" # escape %
|
||||
|
||||
# Show tracking branch name if it differs from local branch.
|
||||
if [[ -n ${VCS_STATUS_REMOTE_BRANCH:#$VCS_STATUS_LOCAL_BRANCH} ]]; then
|
||||
res+="${meta}:${clean}${(V)VCS_STATUS_REMOTE_BRANCH//\%/%%}" # escape %
|
||||
fi
|
||||
|
||||
# ⇣42 if behind the remote.
|
||||
(( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}⇣${VCS_STATUS_COMMITS_BEHIND}"
|
||||
# ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42.
|
||||
(( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=" "
|
||||
(( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}⇡${VCS_STATUS_COMMITS_AHEAD}"
|
||||
# *42 if have stashes.
|
||||
(( VCS_STATUS_STASHES )) && res+=" ${clean}*${VCS_STATUS_STASHES}"
|
||||
# 'merge' if the repo is in an unusual state.
|
||||
[[ -n $VCS_STATUS_ACTION ]] && res+=" ${conflicted}${VCS_STATUS_ACTION}"
|
||||
# ~42 if have merge conflicts.
|
||||
(( VCS_STATUS_NUM_CONFLICTED )) && res+=" ${conflicted}~${VCS_STATUS_NUM_CONFLICTED}"
|
||||
# +42 if have staged changes.
|
||||
(( VCS_STATUS_NUM_STAGED )) && res+=" ${modified}+${VCS_STATUS_NUM_STAGED}"
|
||||
# !42 if have unstaged changes.
|
||||
(( VCS_STATUS_NUM_UNSTAGED )) && res+=" ${modified}!${VCS_STATUS_NUM_UNSTAGED}"
|
||||
# ?42 if have untracked files. It's really a question mark, your font isn't broken.
|
||||
# See POWERLEVEL9K_VCS_UNTRACKED_ICON above if you want to use a different icon.
|
||||
# Remove the next line if you don't want to see untracked files at all.
|
||||
(( VCS_STATUS_NUM_UNTRACKED )) && res+=" ${untracked}${POWERLEVEL9K_VCS_UNTRACKED_ICON}${VCS_STATUS_NUM_UNTRACKED}"
|
||||
|
||||
typeset -g my_git_format=$res
|
||||
}
|
||||
functions -M my_git_formatter 2>/dev/null
|
||||
|
||||
# Disable the default Git status formatting.
|
||||
typeset -g POWERLEVEL9K_VCS_DISABLE_GITSTATUS_FORMATTING=true
|
||||
# Install our own Git status formatter.
|
||||
typeset -g POWERLEVEL9K_VCS_{CLEAN,UNTRACKED,MODIFIED}_CONTENT_EXPANSION=$vcs
|
||||
# When Git status is being refreshed asynchronously, display the last known repo status in grey.
|
||||
typeset -g POWERLEVEL9K_VCS_LOADING_CONTENT_EXPANSION=${${vcs//\%f}//\%<->F}
|
||||
typeset -g POWERLEVEL9K_VCS_LOADING_FOREGROUND=244
|
||||
typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${$((my_git_formatter(1)))+${my_git_format}}'
|
||||
typeset -g POWERLEVEL9K_VCS_LOADING_CONTENT_EXPANSION='${$((my_git_formatter(0)))+${my_git_format}}'
|
||||
# Enable counters for staged, unstaged, etc.
|
||||
typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED,COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=-1
|
||||
typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED,CONFLICTED,COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=-1
|
||||
|
||||
# Icon color.
|
||||
typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_COLOR=76
|
||||
typeset -g POWERLEVEL9K_VCS_LOADING_VISUAL_IDENTIFIER_COLOR=244
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
# Custom prefix.
|
||||
|
@ -317,19 +408,11 @@ fi
|
|||
|
||||
# These settings are used for respositories other than Git or when gitstatusd fails and
|
||||
# Powerlevel10k has to fall back to using vcs_info.
|
||||
typeset -g POWERLEVEL9K_VCS_{CLEAN,MODIFIED,UNTRACKED}_FOREGROUND=76
|
||||
typeset -g POWERLEVEL9K_VCS_REMOTE_BRANCH_ICON=':'
|
||||
typeset -g POWERLEVEL9K_VCS_COMMIT_ICON='@'
|
||||
typeset -g POWERLEVEL9K_VCS_INCOMING_CHANGES_ICON='⇣'
|
||||
typeset -g POWERLEVEL9K_VCS_OUTGOING_CHANGES_ICON='⇡'
|
||||
typeset -g POWERLEVEL9K_VCS_STASH_ICON='*'
|
||||
typeset -g POWERLEVEL9K_VCS_TAG_ICON=$'%{\b#%}'
|
||||
typeset -g POWERLEVEL9K_VCS_UNTRACKED_ICON=$'%{\b?%}'
|
||||
typeset -g POWERLEVEL9K_VCS_UNSTAGED_ICON=$'%{\b!%}'
|
||||
typeset -g POWERLEVEL9K_VCS_STAGED_ICON=$'%{\b+%}'
|
||||
typeset -g POWERLEVEL9K_VCS_CLEAN_FOREGROUND=76
|
||||
typeset -g POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND=76
|
||||
typeset -g POWERLEVEL9K_VCS_MODIFIED_FOREGROUND=178
|
||||
|
||||
##########################[ status: exit code of the last command ]###########################
|
||||
# Status on success. No content, just an icon.
|
||||
# Enable OK_PIPE, ERROR_PIPE and ERROR_SIGNAL status states to allow us to enable, disable and
|
||||
# style them independently from the regular OK and ERROR state.
|
||||
typeset -g POWERLEVEL9K_STATUS_EXTENDED_STATES=true
|
||||
|
@ -396,20 +479,44 @@ fi
|
|||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_NORDVPN_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
####################################[ context: user@host ]####################################
|
||||
#################[ ranger: ranger shell (https://github.com/ranger/ranger) ]##################
|
||||
# Ranger shell color.
|
||||
typeset -g POWERLEVEL9K_RANGER_FOREGROUND=178
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
######################################[ ram: free RAM ]#######################################
|
||||
# RAM color.
|
||||
typeset -g POWERLEVEL9K_RAM_FOREGROUND=66
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_RAM_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
######################################[ load: CPU load ]######################################
|
||||
# Show average CPU load over this many last minutes. Valid values are 1, 5 and 15.
|
||||
typeset -g POWERLEVEL9K_LOAD_WHICH=5
|
||||
# Load color when load is under 50%.
|
||||
typeset -g POWERLEVEL9K_LOAD_NORMAL_FOREGROUND=66
|
||||
# Load color when load is between 50% and 70%.
|
||||
typeset -g POWERLEVEL9K_LOAD_WARNING_FOREGROUND=178
|
||||
# Load color when load is over 70%.
|
||||
typeset -g POWERLEVEL9K_LOAD_CRITICAL_FOREGROUND=166
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_LOAD_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
##################################[ context: user@hostname ]##################################
|
||||
# Default context color.
|
||||
typeset -g POWERLEVEL9K_CONTEXT_FOREGROUND=180
|
||||
# Default context format: %n is username, %m is hostname.
|
||||
typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE='%n@%m'
|
||||
|
||||
# Context color when running with privileges.
|
||||
typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=227
|
||||
# Context format when running with privileges: %n is username, %m is hostname.
|
||||
typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE='%n@%m'
|
||||
typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=178
|
||||
# Context format when running with privileges: bold user@hostname.
|
||||
typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE='%B%n@%m'
|
||||
|
||||
# Don't show context unless running with privileges on in SSH.
|
||||
# Don't show context unless running with privileges or in SSH.
|
||||
# Tip: Remove the next line to always show context.
|
||||
typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION=
|
||||
typeset -g POWERLEVEL9K_ALWAYS_SHOW_CONTEXT=true
|
||||
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_CONTEXT_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
@ -476,12 +583,48 @@ fi
|
|||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_NODE_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
################################[ go_version: golang version ]################################
|
||||
# Golang version color.
|
||||
#######################[ go_version: go version (https://golang.org) ]########################
|
||||
# Go version color.
|
||||
typeset -g POWERLEVEL9K_GO_VERSION_FOREGROUND=37
|
||||
# Show go version only when in a go project subdirectory.
|
||||
typeset -g POWERLEVEL9K_GO_VERSION_PROJECT_ONLY=true
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_GO_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
#################[ rust_version: rustc version (https://www.rust-lang.org) ]##################
|
||||
# Rust version color.
|
||||
typeset -g POWERLEVEL9K_RUST_VERSION_FOREGROUND=37
|
||||
# Show rust version only when in a rust project subdirectory.
|
||||
typeset -g POWERLEVEL9K_RUST_VERSION_PROJECT_ONLY=true
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_RUST_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
###############[ dotnet_version: .NET version (https://dotnet.microsoft.com) ]################
|
||||
# .NET version color.
|
||||
typeset -g POWERLEVEL9K_DOTNET_VERSION_FOREGROUND=134
|
||||
# Show .NET version only when in a .NET project subdirectory.
|
||||
typeset -g POWERLEVEL9K_DOTNET_VERSION_PROJECT_ONLY=true
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_DOTNET_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
#############[ rbenv: ruby version from rbenv (https://github.com/rbenv/rbenv) ]##############
|
||||
# Rbenv color.
|
||||
typeset -g POWERLEVEL9K_RBENV_FOREGROUND=168
|
||||
# Don't show ruby version if it's the same as global: $(rbenv version-name) == $(rbenv global).
|
||||
typeset -g POWERLEVEL9K_RBENV_PROMPT_ALWAYS_SHOW=false
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_RBENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
#######################[ rvm: ruby version from rvm (https://rvm.io) ]########################
|
||||
# Rvm color.
|
||||
typeset -g POWERLEVEL9K_RVM_FOREGROUND=168
|
||||
# Don't show @gemset at the end.
|
||||
typeset -g POWERLEVEL9K_RVM_SHOW_GEMSET=false
|
||||
# Don't show ruby- at the front.
|
||||
typeset -g POWERLEVEL9K_RVM_SHOW_PREFIX=false
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_RVM_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
#############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]#############
|
||||
# Kubernetes context classes for the purpose of using different colors, icons and expansions with
|
||||
# different contexts.
|
||||
|
@ -494,12 +637,19 @@ fi
|
|||
# POWERLEVEL9K_KUBECONTEXT_CLASSES defines the context class. Patterns are tried in order. The
|
||||
# first match wins.
|
||||
#
|
||||
# For example, if your current kubernetes context is "deathray-testing/default", its class is TEST
|
||||
# For example, given these settings:
|
||||
#
|
||||
# typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=(
|
||||
# '*prod*' PROD
|
||||
# '*test*' TEST
|
||||
# '*' DEFAULT)
|
||||
#
|
||||
# If your current kubernetes context is "deathray-testing/default", its class is TEST
|
||||
# because "deathray-testing/default" doesn't match the pattern '*prod*' but does match '*test*'.
|
||||
#
|
||||
# You can define different colors, icons and content expansions for different classes:
|
||||
#
|
||||
# typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_FOREGROUND=2
|
||||
# typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_FOREGROUND=28
|
||||
# typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
# typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'
|
||||
typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=(
|
||||
|
@ -510,7 +660,8 @@ fi
|
|||
# typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
# Use POWERLEVEL9K_KUBECONTEXT_CONTENT_EXPANSION to specify the content displayed by kubecontext
|
||||
# segment.
|
||||
# segment. Parameter expansions are very flexible and fast, too. See reference:
|
||||
# http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion.
|
||||
#
|
||||
# Within the expansion the following parameters are always available:
|
||||
#
|
||||
|
@ -524,7 +675,8 @@ fi
|
|||
# in the output of `kubectl config get-contexts`. If there is no
|
||||
# namespace, the parameter is set to "default".
|
||||
#
|
||||
# If the context points to GKE or EKS, the following extra parameters are available:
|
||||
# If the context points to Google Kubernetes Engine (GKE) or Elastic Kubernetes Service (EKS),
|
||||
# the following extra parameters are available:
|
||||
#
|
||||
# - P9K_KUBECONTEXT_CLOUD_NAME Either "gke" or "eks".
|
||||
# - P9K_KUBECONTEXT_CLOUD_ACCOUNT Account/project ID.
|
||||
|
@ -545,35 +697,72 @@ fi
|
|||
# - P9K_KUBECONTEXT_CLOUD_ACCOUNT=123456789012
|
||||
# - P9K_KUBECONTEXT_CLOUD_ZONE=us-east-1
|
||||
# - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01
|
||||
#
|
||||
# The expansion below will show P9K_KUBECONTEXT_CLOUD_CLUSTER if it's not empty and fall back
|
||||
# to P9K_KUBECONTEXT_NAME. Parameter expansions are very flexible and fast, too. See reference:
|
||||
# http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion.
|
||||
typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION='${P9K_KUBECONTEXT_CLOUD_CLUSTER:-${P9K_KUBECONTEXT_NAME}}'
|
||||
typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION=
|
||||
# Show P9K_KUBECONTEXT_CLOUD_CLUSTER if it's not empty and fall back to P9K_KUBECONTEXT_NAME.
|
||||
POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${P9K_KUBECONTEXT_CLOUD_CLUSTER:-${P9K_KUBECONTEXT_NAME}}'
|
||||
# Append the current context's namespace if it's not "default".
|
||||
POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${${:-/$P9K_KUBECONTEXT_NAMESPACE}:#/default}'
|
||||
|
||||
# Custom prefix.
|
||||
# typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX='%fat '
|
||||
|
||||
################[ terraform: terraform workspace (https://www.terraform.io) ]#################
|
||||
# Terraform color.
|
||||
typeset -g POWERLEVEL9K_TERRAFORM_FOREGROUND=38
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_TERRAFORM_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
#[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]#
|
||||
# AWS profile color.
|
||||
typeset -g POWERLEVEL9K_AWS_FOREGROUND=208
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_AWS_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
#[ aws_eb_env: aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) ]#
|
||||
# AWS Elastic Beanstalk environment color.
|
||||
typeset -g POWERLEVEL9K_AWS_EB_ENV_FOREGROUND=70
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_AWS_EB_ENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
##########[ azure: azure account name (https://docs.microsoft.com/en-us/cli/azure) ]##########
|
||||
# Azure account name color.
|
||||
typeset -g POWERLEVEL9K_AZURE_FOREGROUND=32
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_AZURE_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
###############################[ public_ip: public IP address ]###############################
|
||||
# Public IP color.
|
||||
typeset -g POWERLEVEL9K_PUBLIC_IP_FOREGROUND=94
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_PUBLIC_IP_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
########################[ vpn_ip: virtual private network indicator ]#########################
|
||||
# VPN IP color.
|
||||
typeset -g POWERLEVEL9K_VPN_IP_FOREGROUND=81
|
||||
# When on VPN, show just an icon without the IP address.
|
||||
typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION=
|
||||
# Regular expression for the VPN network interface. Run ifconfig while on VPN to see the
|
||||
# name of the interface.
|
||||
typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(wg|(.*tun))[0-9]*'
|
||||
# Icon to show when on VPN.
|
||||
typeset -g POWERLEVEL9K_VPN_IP_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER}'
|
||||
|
||||
#########################[ proxy: system-wide http/https/ftp proxy ]##########################
|
||||
# Proxy color.
|
||||
typeset -g POWERLEVEL9K_PROXY_FOREGROUND=68
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_PROXY_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
################################[ battery: internal battery ]#################################
|
||||
# Show battery in red when it's below this level and not connected to power supply.
|
||||
typeset -g POWERLEVEL9K_BATTERY_LOW_THRESHOLD=20
|
||||
typeset -g POWERLEVEL9K_BATTERY_LOW_FOREGROUND=1
|
||||
# Show battery in green when it's charging.
|
||||
typeset -g POWERLEVEL9K_BATTERY_CHARGING_FOREGROUND=70
|
||||
# Show battery in yellow when not connected to power supply.
|
||||
typeset -g POWERLEVEL9K_BATTERY_LOW_FOREGROUND=160
|
||||
# Show battery in green when it's charging or fully charged.
|
||||
typeset -g POWERLEVEL9K_BATTERY_{CHARGING,CHARGED}_FOREGROUND=70
|
||||
# Show battery in yellow when it's discharging.
|
||||
typeset -g POWERLEVEL9K_BATTERY_DISCONNECTED_FOREGROUND=178
|
||||
# Battery pictograms going from low to high level of charge.
|
||||
typeset -g POWERLEVEL9K_BATTERY_STAGES='▁▂▃▄▅▆▇'
|
||||
# Display battery pictogram on black background.
|
||||
typeset -g POWERLEVEL9K_BATTERY_VISUAL_IDENTIFIER_EXPANSION='%K{232}${P9K_VISUAL_IDENTIFIER}%k'
|
||||
# Don't show battery when it's fully charged and connected to power supply.
|
||||
typeset -g POWERLEVEL9K_BATTERY_CHARGED_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION=
|
||||
typeset -g POWERLEVEL9K_BATTERY_STAGES=('%K{232}▁' '%K{232}▂' '%K{232}▃' '%K{232}▄' '%K{232}▅' '%K{232}▆' '%K{232}▇' '%K{232}█')
|
||||
# Don't show the remaining time to charge/discharge.
|
||||
typeset -g POWERLEVEL9K_BATTERY_VERBOSE=false
|
||||
|
||||
|
@ -595,9 +784,9 @@ fi
|
|||
# prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or
|
||||
# POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and orange text greeting the user.
|
||||
#
|
||||
# Type `p9k_prompt_segment -h` for documentation and a more sophisticated example.
|
||||
# Type `p10k help segment` for documentation and a more sophisticated example.
|
||||
function prompt_example() {
|
||||
p9k_prompt_segment -f 208 -i '⭐' -t 'hello, %n'
|
||||
p10k segment -f 208 -i '⭐' -t 'hello, %n'
|
||||
}
|
||||
|
||||
# User-defined prompt segments can be customized the same way as built-in segments.
|
||||
|
@ -605,5 +794,5 @@ fi
|
|||
typeset -g POWERLEVEL9K_EXAMPLE_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER}'
|
||||
}
|
||||
|
||||
(( ! p10k_lean_restore_aliases )) || setopt aliases
|
||||
'builtin' 'unset' 'p10k_lean_restore_aliases'
|
||||
(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]}
|
||||
'builtin' 'unset' 'p10k_config_opts'
|
||||
|
|
|
@ -6,25 +6,29 @@
|
|||
# - `@c4d3ec2c` instead of something like `v1.4.0~11` when in detached HEAD state.
|
||||
# - No automatic `git fetch` (the same as in Pure with `PURE_GIT_PULL=0`).
|
||||
#
|
||||
# The replication of Pure prompt achieved with this config is almost exact. Apart from the
|
||||
# differences listed above, prompt is identical to Pure. This includes even the bad parts.
|
||||
# For example, just like in Pure, prompt will provide no indication of Git status being stale.
|
||||
# This is likely to make user experience worse than with any other Powerlevel10k config. If
|
||||
# you like the general style of Pure but not particularly attached to all its quirks, type
|
||||
# `p9k_configure` while having Powerlevel10k theme active and pick lean style.
|
||||
# Apart from the differences listed above, the replication of Pure prompt is exact. This includes
|
||||
# even the questionable parts. For example, just like in Pure, there is no indication of Git status
|
||||
# being stale; prompt symbol is the same in command, visual and overwrite vi modes; when prompt
|
||||
# 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.
|
||||
|
||||
# Temporarily disable aliases.
|
||||
if [[ -o 'aliases' ]]; then
|
||||
'builtin' 'unsetopt' 'aliases'
|
||||
local p10k_pure_restore_aliases=1
|
||||
else
|
||||
local p10k_pure_restore_aliases=0
|
||||
fi
|
||||
# Temporarily change options.
|
||||
'builtin' 'local' '-a' 'p10k_config_opts'
|
||||
[[ ! -o 'aliases' ]] || p10k_config_opts+=('aliases')
|
||||
[[ ! -o 'sh_glob' ]] || p10k_config_opts+=('sh_glob')
|
||||
[[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand')
|
||||
'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand'
|
||||
|
||||
() {
|
||||
emulate -L zsh
|
||||
setopt no_unset
|
||||
|
||||
# Unset all configuration options.
|
||||
unset -m 'POWERLEVEL9K_*'
|
||||
|
||||
# Left prompt segments.
|
||||
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
|
||||
dir # current directory
|
||||
vcs # git status
|
||||
|
@ -34,16 +38,19 @@ fi
|
|||
virtualenv # python virtual environment
|
||||
prompt_char # prompt symbol
|
||||
)
|
||||
|
||||
# Right prompt segments.
|
||||
typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=()
|
||||
|
||||
# Basic style options that define the overall look of your prompt.
|
||||
# Basic style options that define the overall prompt look.
|
||||
typeset -g POWERLEVEL9K_BACKGROUND= # transparent background
|
||||
typeset -g POWERLEVEL9K_{LEFT,RIGHT}_{LEFT,RIGHT}_WHITESPACE= # no surrounding whitespace
|
||||
typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SUBSEGMENT_SEPARATOR=' ' # separate segments with a space
|
||||
typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SEGMENT_SEPARATOR= # no end-of-line symbol
|
||||
typeset -g POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION= # disable segment icons
|
||||
typeset -g POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION= # no segment icons
|
||||
|
||||
# Add an empty line before each prompt.
|
||||
# Add an empty line before each prompt except the first. This doesn't emulate the bug
|
||||
# in Pure that makes prompt drift down whenever you use the ALT-C binding from fzf or similar.
|
||||
typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=true
|
||||
|
||||
# Magenta prompt symbol if the last command succeeded.
|
||||
|
@ -57,38 +64,25 @@ fi
|
|||
# Prompt symbol in visual vi mode is the same as in command mode. This is unlikely
|
||||
# to be desired by anyone but that's how Pure does it.
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION='❮'
|
||||
# Prompt symbol in overwrite vi mode is the same as in command mode. This is unlikely
|
||||
# to be desired by anyone but that's how Pure does it.
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=false
|
||||
|
||||
# Grey Python Virtual Environment.
|
||||
typeset -g POWERLEVEL9K_VIRTUALENV_FOREGROUND=242
|
||||
# Don't show Python version.
|
||||
typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION=false
|
||||
typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER=
|
||||
|
||||
# Blue current directory.
|
||||
typeset -g POWERLEVEL9K_DIR_FOREGROUND=blue
|
||||
|
||||
# Make Git prompt grey in all states. Also make stale prompts appear indistinguishable from
|
||||
# fresh ones. This is unlikely to be desired by anyone but that's how Pure does it.
|
||||
typeset -g POWERLEVEL9K_VCS_FOREGROUND=242
|
||||
|
||||
# Disable async loading indicator to make directories that aren't Git repositories
|
||||
# indistinguishable from large Git repositories without known state. This is unlikely
|
||||
# to be desired by anyone but that's how Pure does it.
|
||||
local vcs='${${P9K_CONTENT:#loading}:+'
|
||||
# 'feature' or '@72f5c8a' if not on a branch.
|
||||
vcs+='${${VCS_STATUS_LOCAL_BRANCH//\%/%%}:-%f@${VCS_STATUS_COMMIT[1,8]}}'
|
||||
# '*' if dirty.
|
||||
vcs+='${${${:-$VCS_STATUS_HAS_STAGED$VCS_STATUS_HAS_UNSTAGED$VCS_STATUS_HAS_UNTRACKED}:#000}:+*}'
|
||||
# ⇣ if behind the remote.
|
||||
vcs+='${${VCS_STATUS_COMMITS_BEHIND:#0}:+ %6F⇣}'
|
||||
# ⇡ if ahead of the remote; no leading space if also behind the remote: ⇣⇡.
|
||||
vcs+='${${VCS_STATUS_COMMITS_AHEAD:#0}:+${${(M)VCS_STATUS_COMMITS_BEHIND:#0}:+ }%6F⇡}}'
|
||||
typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION=$vcs
|
||||
|
||||
# Context format when root: user@host. The first part white, the rest grey.
|
||||
typeset -g POWERLEVEL9K_CONTEXT_ROOT_CONTENT_EXPANSION='%7F%n%f%242F@%m%f'
|
||||
# Context format when connected over SSH: user@host. The whole thing grey.
|
||||
typeset -g POWERLEVEL9K_CONTEXT_{REMOTE,REMOTE_SUDO}_CONTENT_EXPANSION='%242F%n@%m%f'
|
||||
# Don't show context when not rood and not connected over SSH.
|
||||
typeset -g POWERLEVEL9K_CONTEXT_CONTENT_EXPANSION=
|
||||
typeset -g POWERLEVEL9K_ALWAYS_SHOW_CONTEXT=true
|
||||
typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE='%7F%n%f%242F@%m%f'
|
||||
# Context format when not root: user@host. The whole thing grey.
|
||||
typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE='%242F%n@%m%f'
|
||||
# Don't show context unless root or in SSH.
|
||||
typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_CONTENT_EXPANSION=
|
||||
|
||||
# Show previous command duration only if it's >= 5s.
|
||||
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=5
|
||||
|
@ -98,7 +92,39 @@ fi
|
|||
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s'
|
||||
# Yellow previous command duration.
|
||||
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=yellow
|
||||
|
||||
# Grey Git prompt. This makes stale prompts indistinguishable from up-to-date ones.
|
||||
typeset -g POWERLEVEL9K_VCS_FOREGROUND=242
|
||||
|
||||
# Disable async loading indicator to make directories that aren't Git repositories
|
||||
# indistinguishable from large Git repositories without known state.
|
||||
typeset -g POWERLEVEL9K_VCS_LOADING_TEXT=
|
||||
|
||||
# Don't wait for Git status even for a millisecond, so that prompt always updates
|
||||
# asynchronously when Git state changes.
|
||||
typeset -g POWERLEVEL9K_VCS_MAX_SYNC_LATENCY_SECONDS=0
|
||||
|
||||
# Cyan ahead/behind arrows.
|
||||
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.
|
||||
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'
|
||||
# Show '*' when there are staged, unstaged or untracked files.
|
||||
typeset -g POWERLEVEL9K_VCS_DIRTY_ICON='*'
|
||||
# Show '⇣' if local branch is behind remote.
|
||||
typeset -g POWERLEVEL9K_VCS_INCOMING_CHANGES_ICON='⇣'
|
||||
# Show '⇡' if local branch is ahead of remote.
|
||||
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 '⇡', and get rid of $' \b'.
|
||||
typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION=$'${${P9K_CONTENT/⇣* ⇡/⇣⇡}// \b}'
|
||||
}
|
||||
|
||||
(( ! p10k_pure_restore_aliases )) || setopt aliases
|
||||
'builtin' 'unset' 'p10k_pure_restore_aliases'
|
||||
(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]}
|
||||
'builtin' 'unset' 'p10k_config_opts'
|
||||
|
|
|
@ -0,0 +1,844 @@
|
|||
# Config for Powerlevel10k with powerline prompt style with colorful background.
|
||||
# Type `p10k configure` to generate your own config based on it.
|
||||
#
|
||||
# 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
|
||||
|
||||
# Temporarily change options.
|
||||
'builtin' 'local' '-a' 'p10k_config_opts'
|
||||
[[ ! -o 'aliases' ]] || p10k_config_opts+=('aliases')
|
||||
[[ ! -o 'sh_glob' ]] || p10k_config_opts+=('sh_glob')
|
||||
[[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand')
|
||||
'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand'
|
||||
|
||||
() {
|
||||
emulate -L zsh
|
||||
setopt no_unset extended_glob
|
||||
zmodload zsh/langinfo
|
||||
if [[ ${langinfo[CODESET]:-} != (utf|UTF)(-|)8 ]]; then
|
||||
local LC_ALL=${${(@M)$(locale -a):#*.(utf|UTF)(-|)8}[1]:-en_US.UTF-8}
|
||||
fi
|
||||
|
||||
# Unset all configuration options. This allows you to apply configiguration changes without
|
||||
# restarting zsh. Edit ~/.p10k.zsh and type `source ~/.p10k.zsh`.
|
||||
unset -m 'POWERLEVEL9K_*'
|
||||
|
||||
# The list of segments shown on the left. Fill it with the most important segments.
|
||||
typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(
|
||||
# =========================[ Line #1 ]=========================
|
||||
# os_icon # os identifier
|
||||
dir # current directory
|
||||
vcs # git status
|
||||
# =========================[ Line #2 ]=========================
|
||||
newline
|
||||
# prompt_char # prompt symbol
|
||||
)
|
||||
|
||||
# The list of segments shown on the right. Fill it with less important segments.
|
||||
# Right prompt on the last prompt line (where you are typing your commands) gets
|
||||
# automatically hidden when the input line reaches it. Right prompt above the
|
||||
# last prompt line gets hidden if it would overlap with left prompt.
|
||||
typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(
|
||||
# =========================[ Line #1 ]=========================
|
||||
status # exit code of the last command
|
||||
command_execution_time # duration of the last command
|
||||
background_jobs # presence of background jobs
|
||||
virtualenv # python virtual environment (https://docs.python.org/3/library/venv.html)
|
||||
anaconda # conda environment (https://conda.io/)
|
||||
pyenv # python environment (https://github.com/pyenv/pyenv)
|
||||
nodenv # node.js version from nodenv (https://github.com/nodenv/nodenv)
|
||||
nvm # node.js version from nvm (https://github.com/nvm-sh/nvm)
|
||||
nodeenv # node.js environment (https://github.com/ekalinin/nodeenv)
|
||||
# node_version # node.js version
|
||||
# go_version # go version (https://golang.org)
|
||||
# rust_version # rustc version (https://www.rust-lang.org)
|
||||
# dotnet_version # .NET version (https://dotnet.microsoft.com)
|
||||
rbenv # ruby version from rbenv (https://github.com/rbenv/rbenv)
|
||||
rvm # ruby version from rvm (https://rvm.io)
|
||||
kubecontext # current kubernetes context (https://kubernetes.io/)
|
||||
terraform # terraform workspace (https://www.terraform.io)
|
||||
aws # aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html)
|
||||
# aws_eb_env # aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/)
|
||||
# azure # azure account name (https://docs.microsoft.com/en-us/cli/azure)
|
||||
context # user@hostname
|
||||
nordvpn # nordvpn connection status, linux only (https://nordvpn.com/)
|
||||
ranger # ranger shell (https://github.com/ranger/ranger)
|
||||
# vpn_ip # virtual private network indicator
|
||||
# ram # free RAM
|
||||
# load # CPU load
|
||||
# time # current time
|
||||
# =========================[ Line #2 ]=========================
|
||||
newline
|
||||
# public_ip # public IP address
|
||||
# proxy # system-wide http/https/ftp proxy
|
||||
# battery # internal battery
|
||||
# example # example user-defined segment (see prompt_example function below)
|
||||
)
|
||||
|
||||
# To disable default icons for all segments, set POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION=''.
|
||||
#
|
||||
# To enable default icons for all segments, don't define POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION
|
||||
# or set it to '${P9K_VISUAL_IDENTIFIER}'.
|
||||
#
|
||||
# To remove trailing space from all default icons, set POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION
|
||||
# to '${P9K_VISUAL_IDENTIFIER% }'.
|
||||
#
|
||||
# To enable default icons for one segment (e.g., dir), set
|
||||
# POWERLEVEL9K_DIR_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER}'.
|
||||
#
|
||||
# To assign a specific icon to one segment (e.g., dir), set
|
||||
# POWERLEVEL9K_DIR_VISUAL_IDENTIFIER_EXPANSION='⭐'.
|
||||
#
|
||||
# To assign a specific icon to a segment in a given state (e.g., dir in state NOT_WRITABLE),
|
||||
# set POWERLEVEL9K_DIR_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='⭐'.
|
||||
#
|
||||
# Note: You can use $'\u2B50' instead of '⭐'. It's especially convenient when specifying
|
||||
# icons that your text editor cannot render. Don't forget to put $ and use single quotes when
|
||||
# defining icons via Unicode codepoints.
|
||||
#
|
||||
# Note: Many default icons cannot be displayed with system fonts. You'll need to install a
|
||||
# capable font to use them. See POWERLEVEL9K_MODE below.
|
||||
typeset -g POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER}'
|
||||
|
||||
# This option makes a difference only when default icons are enabled for all or some prompt
|
||||
# segments (see POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION above). LOCK_ICON can be printed as
|
||||
# $'\uE0A2', $'\uE138' or $'\uF023' depending on POWERLEVEL9K_MODE. The correct value of this
|
||||
# parameter depends on the provider of the font your terminal is using.
|
||||
#
|
||||
# Font Provider | POWERLEVEL9K_MODE
|
||||
# ---------------------------------+-------------------
|
||||
# Powerline | powerline
|
||||
# Font Awesome | awesome-fontconfig
|
||||
# Adobe Source Code Pro | awesome-fontconfig
|
||||
# Source Code Pro | awesome-fontconfig
|
||||
# Awesome-Terminal Fonts (regular) | awesome-fontconfig
|
||||
# Awesome-Terminal Fonts (patched) | awesome-patched
|
||||
# Nerd Fonts | nerdfont-complete
|
||||
# Other | compatible
|
||||
#
|
||||
# If this looks overwhelming, either stick with a preinstalled system font and set
|
||||
# POWERLEVEL9K_MODE=compatible, or install the recommended Powerlevel10k font from
|
||||
# https://github.com/romkatv/powerlevel10k/#recommended-meslo-nerd-font-patched-for-powerlevel10k
|
||||
# and set POWERLEVEL9K_MODE=nerdfont-complete.
|
||||
typeset -g POWERLEVEL9K_MODE=nerdfont-complete
|
||||
|
||||
# When set to true, icons appear before content on both sides of the prompt. When set
|
||||
# to false, icons go after content. If empty or not set, icons go before content in the left
|
||||
# prompt and after content in the right prompt.
|
||||
#
|
||||
# You can also override it for a specific segment:
|
||||
#
|
||||
# POWERLEVEL9K_STATUS_ICON_BEFORE_CONTENT=false
|
||||
#
|
||||
# Or for a specific segment in specific state:
|
||||
#
|
||||
# POWERLEVEL9K_DIR_NOT_WRITABLE_ICON_BEFORE_CONTENT=false
|
||||
typeset -g POWERLEVEL9K_ICON_BEFORE_CONTENT=
|
||||
|
||||
# Add an empty line before each prompt.
|
||||
typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=true
|
||||
|
||||
# Connect left prompt lines with these symbols. You'll probably want to use the same color
|
||||
# as POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND below.
|
||||
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX='%242F╭─'
|
||||
typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_PREFIX='%242F├─'
|
||||
typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX='%242F╰─'
|
||||
# Connect right prompt lines with these symbols.
|
||||
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_SUFFIX='%242F─╮'
|
||||
typeset -g POWERLEVEL9K_MULTILINE_NEWLINE_PROMPT_SUFFIX='%242F─┤'
|
||||
typeset -g POWERLEVEL9K_MULTILINE_LAST_PROMPT_SUFFIX='%242F─╯'
|
||||
|
||||
# Filler between left and right prompt on the first prompt line. You can set it to ' ', '·' or
|
||||
# '─'. The last two make it easier to see the alignment between left and right prompt and to
|
||||
# separate prompt from command output. You might want to set POWERLEVEL9K_PROMPT_ADD_NEWLINE=false
|
||||
# for more compact prompt if using using this option.
|
||||
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR=' '
|
||||
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_BACKGROUND=
|
||||
if [[ $POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_CHAR != ' ' ]]; then
|
||||
# The color of the filler. You'll probably want to match the color of POWERLEVEL9K_MULTILINE
|
||||
# ornaments defined above.
|
||||
typeset -g POWERLEVEL9K_MULTILINE_FIRST_PROMPT_GAP_FOREGROUND=242
|
||||
# Start filler from the edge of the screen if there are no left segments on the first line.
|
||||
typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_FIRST_SEGMENT_END_SYMBOL='%{%}'
|
||||
# End filler on the edge of the screen if there are no right segments on the first line.
|
||||
typeset -g POWERLEVEL9K_EMPTY_LINE_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='%{%}'
|
||||
fi
|
||||
|
||||
# Separator between same-color segments on the left.
|
||||
typeset -g POWERLEVEL9K_LEFT_SUBSEGMENT_SEPARATOR='\uE0B1'
|
||||
# Separator between same-color segments on the right.
|
||||
typeset -g POWERLEVEL9K_RIGHT_SUBSEGMENT_SEPARATOR='\uE0B3'
|
||||
# Separator between different-color segments on the left.
|
||||
typeset -g POWERLEVEL9K_LEFT_SEGMENT_SEPARATOR='\uE0B0'
|
||||
# Separator between different-color segments on the right.
|
||||
typeset -g POWERLEVEL9K_RIGHT_SEGMENT_SEPARATOR='\uE0B2'
|
||||
# The right end of left prompt.
|
||||
typeset -g POWERLEVEL9K_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL='\uE0B0'
|
||||
# The left end of right prompt.
|
||||
typeset -g POWERLEVEL9K_RIGHT_PROMPT_FIRST_SEGMENT_START_SYMBOL='\uE0B2'
|
||||
# The left end of left prompt.
|
||||
typeset -g POWERLEVEL9K_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL=
|
||||
# The right end of right prompt.
|
||||
typeset -g POWERLEVEL9K_RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL=
|
||||
# Left prompt terminator for lines without any segments.
|
||||
typeset -g POWERLEVEL9K_EMPTY_LINE_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=
|
||||
|
||||
#################################[ os_icon: os identifier ]##################################
|
||||
# OS identifier color.
|
||||
typeset -g POWERLEVEL9K_OS_ICON_FOREGROUND=255
|
||||
# typeset -g POWERLEVEL9K_OS_ICON_BACKGROUND=0
|
||||
# Make the icon bold.
|
||||
typeset -g POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='%B${P9K_CONTENT}'
|
||||
|
||||
################################[ prompt_char: prompt symbol ]################################
|
||||
# Transparent background.
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_BACKGROUND=
|
||||
# Green prompt symbol if the last command succeeded.
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS}_FOREGROUND=76
|
||||
# Red prompt symbol if the last command failed.
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS}_FOREGROUND=196
|
||||
# Default prompt symbol.
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION='❯'
|
||||
# Prompt symbol in command vi mode.
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION='❮'
|
||||
# Prompt symbol in visual vi mode.
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION='Ⅴ'
|
||||
# Prompt symbol in overwrite vi mode.
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIOWR_CONTENT_EXPANSION='▶'
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=true
|
||||
# No line terminator if prompt_char is the last segment.
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_LAST_SEGMENT_END_SYMBOL=
|
||||
# No line introducer if prompt_char is the first segment.
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL=
|
||||
# No surrounding whitespace.
|
||||
typeset -g POWERLEVEL9K_PROMPT_CHAR_LEFT_{LEFT,RIGHT}_WHITESPACE=
|
||||
|
||||
##################################[ dir: current directory ]##################################
|
||||
# Current directory background color.
|
||||
# typeset -g POWERLEVEL9K_DIR_BACKGROUND=4
|
||||
# Default current directory foreground color.
|
||||
typeset -g POWERLEVEL9K_DIR_FOREGROUND=254
|
||||
# If directory is too long, shorten some of its segments to the shortest possible unique
|
||||
# prefix. The shortened directory can be tab-completed to the original.
|
||||
typeset -g POWERLEVEL9K_SHORTEN_STRATEGY=truncate_to_unique
|
||||
# Replace removed segment suffixes with this symbol.
|
||||
typeset -g POWERLEVEL9K_SHORTEN_DELIMITER=
|
||||
# Color of the shortened directory segments.
|
||||
typeset -g POWERLEVEL9K_DIR_SHORTENED_FOREGROUND=250
|
||||
# Color of the anchor directory segments. Anchor segments are never shortened. The first
|
||||
# segment is always an anchor.
|
||||
typeset -g POWERLEVEL9K_DIR_ANCHOR_FOREGROUND=255
|
||||
# Display anchor directory segments in bold.
|
||||
typeset -g POWERLEVEL9K_DIR_ANCHOR_BOLD=true
|
||||
# Don't shorten directories that contain any of these files. They are anchors.
|
||||
local anchor_files=(
|
||||
.bzr
|
||||
.citc
|
||||
.git
|
||||
.hg
|
||||
.node-version
|
||||
.python-version
|
||||
.ruby-version
|
||||
.shorten_folder_marker
|
||||
.svn
|
||||
.terraform
|
||||
CVS
|
||||
Cargo.toml
|
||||
composer.json
|
||||
go.mod
|
||||
package.json
|
||||
)
|
||||
typeset -g POWERLEVEL9K_SHORTEN_FOLDER_MARKER="(${(j:|:)anchor_files})"
|
||||
# Don't shorten this many last directory segments. They are anchors.
|
||||
typeset -g POWERLEVEL9K_SHORTEN_DIR_LENGTH=1
|
||||
# Shorten directory if it's longer than this even if there is space for it. The value can
|
||||
# be either absolute (e.g., '80') or a percentage of terminal width (e.g, '50%'). If empty,
|
||||
# directory will be shortened only when prompt doesn't fit or when other parameters demand it
|
||||
# (see POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS and POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT below).
|
||||
typeset -g POWERLEVEL9K_DIR_MAX_LENGTH=80
|
||||
# When `dir` segment is on the last prompt line, try to shorten it enough to leave at least this
|
||||
# many columns for typing commands.
|
||||
typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS=40
|
||||
# When `dir` segment is on the last prompt line, try to shorten it enough to leave at least
|
||||
# COLUMNS * POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT * 0.01 columns for typing commands.
|
||||
typeset -g POWERLEVEL9K_DIR_MIN_COMMAND_COLUMNS_PCT=50
|
||||
# If set to true, embed a hyperlink into the directory. Useful for quickly
|
||||
# opening a directory in the file manager simply by clicking the link.
|
||||
# Can also be handy when the directory is shortened, as it allows you to see
|
||||
# the full directory that was used in previous commands.
|
||||
typeset -g POWERLEVEL9K_DIR_HYPERLINK=false
|
||||
|
||||
# Enable special styling for non-writable directories.
|
||||
typeset -g POWERLEVEL9K_DIR_SHOW_WRITABLE=true
|
||||
# Show this icon when the current directory is not writable. POWERLEVEL9K_DIR_SHOW_WRITABLE
|
||||
# above must be set to true for this parameter to have effect.
|
||||
# typeset -g POWERLEVEL9K_DIR_NOT_WRITABLE_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
# Custom prefix.
|
||||
# typeset -g POWERLEVEL9K_DIR_PREFIX='in '
|
||||
|
||||
# POWERLEVEL9K_DIR_CLASSES allows you to specify custom icons for different directories.
|
||||
# It must be an array with 3 * N elements. Each triplet consists of:
|
||||
#
|
||||
# 1. A pattern against which the current directory is matched. Matching is done with
|
||||
# extended_glob option enabled.
|
||||
# 2. Directory class for the purpose of styling.
|
||||
# 3. Icon.
|
||||
#
|
||||
# Triplets are tried in order. The first triplet whose pattern matches $PWD wins. If there
|
||||
# are no matches, the directory will have no icon.
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# typeset -g POWERLEVEL9K_DIR_CLASSES=(
|
||||
# '~/work(/*)#' WORK '(╯°□°)╯︵ ┻━┻'
|
||||
# '~(/*)#' HOME '⌂'
|
||||
# '*' DEFAULT '')
|
||||
#
|
||||
# With these settings, the current directory in the prompt may look like this:
|
||||
#
|
||||
# (╯°□°)╯︵ ┻━┻ ~/work/projects/important/urgent
|
||||
#
|
||||
# Or like this:
|
||||
#
|
||||
# ⌂ ~/best/powerlevel10k
|
||||
#
|
||||
# You can also set different colors for directories of different classes. Remember to override
|
||||
# FOREGROUND, SHORTENED_FOREGROUND and ANCHOR_FOREGROUND for every directory class that you wish
|
||||
# to have its own color.
|
||||
#
|
||||
# typeset -g POWERLEVEL9K_DIR_WORK_BACKGROUND=4
|
||||
# typeset -g POWERLEVEL9K_DIR_WORK_FOREGROUND=254
|
||||
# typeset -g POWERLEVEL9K_DIR_WORK_SHORTENED_FOREGROUND=250
|
||||
# typeset -g POWERLEVEL9K_DIR_WORK_ANCHOR_FOREGROUND=255
|
||||
#
|
||||
# typeset -g POWERLEVEL9K_DIR_CLASSES=()
|
||||
|
||||
#####################################[ vcs: git status ]######################################
|
||||
# Versio control system colors.
|
||||
# typeset -g POWERLEVEL9K_VCS_CLEAN_BACKGROUND=2
|
||||
# typeset -g POWERLEVEL9K_VCS_MODIFIED_BACKGROUND=3
|
||||
# typeset -g POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND=2
|
||||
# typeset -g POWERLEVEL9K_VCS_CONFLICTED_BACKGROUND=3
|
||||
# typeset -g POWERLEVEL9K_VCS_LOADING_BACKGROUND=8
|
||||
|
||||
# Branch icon. Set this parameter to '\uF126 ' for the popular Powerline branch icon.
|
||||
typeset -g POWERLEVEL9K_VCS_BRANCH_ICON=
|
||||
POWERLEVEL9K_VCS_BRANCH_ICON=${(g::)POWERLEVEL9K_VCS_BRANCH_ICON}
|
||||
|
||||
# Untracked files icon. It's really a question mark, your font isn't broken.
|
||||
# Change the value of this parameter to show a different icon.
|
||||
typeset -g POWERLEVEL9K_VCS_UNTRACKED_ICON='?'
|
||||
POWERLEVEL9K_VCS_UNTRACKED_ICON=${(g::)POWERLEVEL9K_VCS_UNTRACKED_ICON}
|
||||
|
||||
# Formatter for Git status.
|
||||
#
|
||||
# Example output: master ⇣42⇡42 *42 merge ~42 +42 !42 ?42.
|
||||
#
|
||||
# You can edit the function to customize how Git status looks.
|
||||
#
|
||||
# VCS_STATUS_* parameters are set by gitstatus plugin. See reference:
|
||||
# https://github.com/romkatv/gitstatus/blob/master/gitstatus.plugin.zsh.
|
||||
function my_git_formatter() {
|
||||
emulate -L zsh
|
||||
|
||||
if [[ -n $P9K_CONTENT ]]; then
|
||||
# If P9K_CONTENT is not empty, use it. It's either "loading" or from vcs_info (not from
|
||||
# gitstatus plugin). VCS_STATUS_* parameters are not available in this case.
|
||||
typeset -g my_git_format=$P9K_CONTENT
|
||||
return
|
||||
fi
|
||||
|
||||
# Styling for different parts of Git status.
|
||||
local meta='%7F' # white foreground
|
||||
local clean='%0F' # black foreground
|
||||
local modified='%0F' # black foreground
|
||||
local untracked='%0F' # black foreground
|
||||
local conflicted='%1F' # red foreground
|
||||
|
||||
local res
|
||||
local where # branch name, tag or commit
|
||||
if [[ -n $VCS_STATUS_LOCAL_BRANCH ]]; then
|
||||
res+="${clean}${POWERLEVEL9K_VCS_BRANCH_ICON}"
|
||||
where=${(V)VCS_STATUS_LOCAL_BRANCH}
|
||||
elif [[ -n $VCS_STATUS_TAG ]]; then
|
||||
res+="${meta}#"
|
||||
where=${(V)VCS_STATUS_TAG}
|
||||
else
|
||||
res+="${meta}@"
|
||||
where=${VCS_STATUS_COMMIT[1,8]}
|
||||
fi
|
||||
|
||||
# If local branch name or tag is at most 32 characters long, show it in full.
|
||||
# Otherwise show the first 12 … the last 12.
|
||||
(( $#where > 32 )) && where[13,-13]="…"
|
||||
res+="${clean}${where//\%/%%}" # escape %
|
||||
|
||||
# Show tracking branch name if it differs from local branch.
|
||||
if [[ -n ${VCS_STATUS_REMOTE_BRANCH:#$VCS_STATUS_LOCAL_BRANCH} ]]; then
|
||||
res+="${meta}:${clean}${(V)VCS_STATUS_REMOTE_BRANCH//\%/%%}" # escape %
|
||||
fi
|
||||
|
||||
# ⇣42 if behind the remote.
|
||||
(( VCS_STATUS_COMMITS_BEHIND )) && res+=" ${clean}⇣${VCS_STATUS_COMMITS_BEHIND}"
|
||||
# ⇡42 if ahead of the remote; no leading space if also behind the remote: ⇣42⇡42.
|
||||
(( VCS_STATUS_COMMITS_AHEAD && !VCS_STATUS_COMMITS_BEHIND )) && res+=" "
|
||||
(( VCS_STATUS_COMMITS_AHEAD )) && res+="${clean}⇡${VCS_STATUS_COMMITS_AHEAD}"
|
||||
# *42 if have stashes.
|
||||
(( VCS_STATUS_STASHES )) && res+=" ${clean}*${VCS_STATUS_STASHES}"
|
||||
# 'merge' if the repo is in an unusual state.
|
||||
[[ -n $VCS_STATUS_ACTION ]] && res+=" ${conflicted}${VCS_STATUS_ACTION}"
|
||||
# ~42 if have merge conflicts.
|
||||
(( VCS_STATUS_NUM_CONFLICTED )) && res+=" ${conflicted}~${VCS_STATUS_NUM_CONFLICTED}"
|
||||
# +42 if have staged changes.
|
||||
(( VCS_STATUS_NUM_STAGED )) && res+=" ${modified}+${VCS_STATUS_NUM_STAGED}"
|
||||
# !42 if have unstaged changes.
|
||||
(( VCS_STATUS_NUM_UNSTAGED )) && res+=" ${modified}!${VCS_STATUS_NUM_UNSTAGED}"
|
||||
# ?42 if have untracked files. It's really a question mark, your font isn't broken.
|
||||
# See POWERLEVEL9K_VCS_UNTRACKED_ICON above if you want to use a different icon.
|
||||
# Remove the next line if you don't want to see untracked files at all.
|
||||
(( VCS_STATUS_NUM_UNTRACKED )) && res+=" ${untracked}${POWERLEVEL9K_VCS_UNTRACKED_ICON}${VCS_STATUS_NUM_UNTRACKED}"
|
||||
|
||||
typeset -g my_git_format=$res
|
||||
}
|
||||
functions -M my_git_formatter 2>/dev/null
|
||||
|
||||
# Disable the default Git status formatting.
|
||||
typeset -g POWERLEVEL9K_VCS_DISABLE_GITSTATUS_FORMATTING=true
|
||||
# Install our own Git status formatter.
|
||||
typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${$((my_git_formatter(1)))+${my_git_format}}'
|
||||
# Enable counters for staged, unstaged, etc.
|
||||
typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED,CONFLICTED,COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=-1
|
||||
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_VCS_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
# Custom prefix.
|
||||
# typeset -g POWERLEVEL9K_VCS_PREFIX='on '
|
||||
|
||||
# Show status of repositories of these types. You can add svn and/or hg if you are
|
||||
# using them. If you do, your prompt may become slow even when your current directory
|
||||
# isn't in an svn or hg reposotiry.
|
||||
typeset -g POWERLEVEL9K_VCS_BACKENDS=(git)
|
||||
|
||||
##########################[ status: exit code of the last command ]###########################
|
||||
# Enable OK_PIPE, ERROR_PIPE and ERROR_SIGNAL status states to allow us to enable, disable and
|
||||
# style them independently from the regular OK and ERROR state.
|
||||
typeset -g POWERLEVEL9K_STATUS_EXTENDED_STATES=true
|
||||
|
||||
# Status on success. No content, just an icon. No need to show it if prompt_char is enabled as
|
||||
# it will signify success by turning green.
|
||||
typeset -g POWERLEVEL9K_STATUS_OK=true
|
||||
typeset -g POWERLEVEL9K_STATUS_OK_VISUAL_IDENTIFIER_EXPANSION='✔'
|
||||
# typeset -g POWERLEVEL9K_STATUS_OK_FOREGROUND=2
|
||||
# typeset -g POWERLEVEL9K_STATUS_OK_BACKGROUND=0
|
||||
|
||||
# Status when some part of a pipe command fails but the overall exit status is zero. It may look
|
||||
# like this: 1|0.
|
||||
typeset -g POWERLEVEL9K_STATUS_OK_PIPE=true
|
||||
typeset -g POWERLEVEL9K_STATUS_OK_PIPE_VISUAL_IDENTIFIER_EXPANSION='✔'
|
||||
# typeset -g POWERLEVEL9K_STATUS_OK_PIPE_FOREGROUND=2
|
||||
# typeset -g POWERLEVEL9K_STATUS_OK_PIPE_BACKGROUND=0
|
||||
|
||||
# Status when it's just an error code (e.g., '1'). No need to show it if prompt_char is enabled as
|
||||
# it will signify error by turning red.
|
||||
typeset -g POWERLEVEL9K_STATUS_ERROR=true
|
||||
typeset -g POWERLEVEL9K_STATUS_ERROR_VISUAL_IDENTIFIER_EXPANSION='↵'
|
||||
# typeset -g POWERLEVEL9K_STATUS_ERROR_FOREGROUND=3
|
||||
# typeset -g POWERLEVEL9K_STATUS_ERROR_BACKGROUND=1
|
||||
|
||||
# Status when the last command was terminated by a signal.
|
||||
typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL=true
|
||||
# Use terse signal names: "INT" instead of "SIGINT(2)".
|
||||
typeset -g POWERLEVEL9K_STATUS_VERBOSE_SIGNAME=false
|
||||
typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_VISUAL_IDENTIFIER_EXPANSION='↵'
|
||||
# typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_FOREGROUND=3
|
||||
# typeset -g POWERLEVEL9K_STATUS_ERROR_SIGNAL_BACKGROUND=1
|
||||
|
||||
# Status when some part of a pipe command fails and the overall exit status is also non-zero.
|
||||
# It may look like this: 1|0.
|
||||
typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE=true
|
||||
typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_VISUAL_IDENTIFIER_EXPANSION='↵'
|
||||
# typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_FOREGROUND=3
|
||||
# typeset -g POWERLEVEL9K_STATUS_ERROR_PIPE_BACKGROUND=1
|
||||
|
||||
###################[ command_execution_time: duration of the last command ]###################
|
||||
# Execution time color.
|
||||
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=0
|
||||
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_BACKGROUND=3
|
||||
# Show duration of the last command if takes longer than this many seconds.
|
||||
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=3
|
||||
# Show this many fractional digits. Zero means round to seconds.
|
||||
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0
|
||||
# Duration format: 1d 2h 3m 4s.
|
||||
typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s'
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
# Custom prefix.
|
||||
# typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PREFIX='took '
|
||||
|
||||
#######################[ background_jobs: presence of background jobs ]#######################
|
||||
# Background jobs color.
|
||||
# typeset -g POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=6
|
||||
# typeset -g POWERLEVEL9K_BACKGROUND_JOBS_BACKGROUND=0
|
||||
# Don't show the number of background jobs.
|
||||
typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VERBOSE=false
|
||||
# Icon to show when there are background jobs.
|
||||
typeset -g POWERLEVEL9K_BACKGROUND_JOBS_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER}'
|
||||
|
||||
##########[ nordvpn: nordvpn connection status, linux only (https://nordvpn.com/) ]###########
|
||||
# NordVPN connection indicator color.
|
||||
# typeset -g POWERLEVEL9K_NORDVPN_FOREGROUND=7
|
||||
# typeset -g POWERLEVEL9K_NORDVPN_BACKGROUND=4
|
||||
# Hide NordVPN connection indicator when not connected.
|
||||
typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_CONTENT_EXPANSION=
|
||||
typeset -g POWERLEVEL9K_NORDVPN_{DISCONNECTED,CONNECTING,DISCONNECTING}_VISUAL_IDENTIFIER_EXPANSION=
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_NORDVPN_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
#################[ ranger: ranger shell (https://github.com/ranger/ranger) ]##################
|
||||
# Ranger shell color.
|
||||
# typeset -g POWERLEVEL9K_RANGER_FOREGROUND=3
|
||||
# typeset -g POWERLEVEL9K_RANGER_BACKGROUND=0
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_RANGER_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
######################################[ ram: free RAM ]#######################################
|
||||
# RAM color.
|
||||
# typeset -g POWERLEVEL9K_RAM_FOREGROUND=0
|
||||
# typeset -g POWERLEVEL9K_RAM_BACKGROUND=3
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_RAM_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
######################################[ load: CPU load ]######################################
|
||||
# Show average CPU load over this many last minutes. Valid values are 1, 5 and 15.
|
||||
typeset -g POWERLEVEL9K_LOAD_WHICH=5
|
||||
# Load color when load is under 50%.
|
||||
# typeset -g POWERLEVEL9K_LOAD_NORMAL_FOREGROUND=0
|
||||
# typeset -g POWERLEVEL9K_LOAD_NORMAL_BACKGROUND=2
|
||||
# Load color when load is between 50% and 70%.
|
||||
# typeset -g POWERLEVEL9K_LOAD_WARNING_FOREGROUND=0
|
||||
# typeset -g POWERLEVEL9K_LOAD_WARNING_BACKGROUND=3
|
||||
# Load color when load is over 70%.
|
||||
# typeset -g POWERLEVEL9K_LOAD_CRITICAL_FOREGROUND=0
|
||||
# typeset -g POWERLEVEL9K_LOAD_CRITICAL_BACKGROUND=1
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_LOAD_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
##################################[ context: user@hostname ]##################################
|
||||
# Default context color.
|
||||
typeset -g POWERLEVEL9K_CONTEXT_FOREGROUND=3
|
||||
typeset -g POWERLEVEL9K_CONTEXT_BACKGROUND=0
|
||||
# Default context format: %n is username, %m is hostname.
|
||||
typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE='%n@%m'
|
||||
|
||||
# Context color when running with privileges.
|
||||
typeset -g POWERLEVEL9K_CONTEXT_ROOT_FOREGROUND=1
|
||||
typeset -g POWERLEVEL9K_CONTEXT_ROOT_BACKGROUND=0
|
||||
# Context format when running with privileges: %n is username, %m is hostname.
|
||||
typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE='%n@%m'
|
||||
|
||||
# Don't show context unless running with privileges or in SSH.
|
||||
# Tip: Remove the next line to always show context.
|
||||
typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_{CONTENT,VISUAL_IDENTIFIER}_EXPANSION=
|
||||
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_CONTEXT_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
# Custom prefix.
|
||||
# typeset -g POWERLEVEL9K_CONTEXT_PREFIX='with '
|
||||
|
||||
###[ virtualenv: python virtual environment (https://docs.python.org/3/library/venv.html) ]###
|
||||
# Python virtual environment color.
|
||||
# typeset -g POWERLEVEL9K_VIRTUALENV_FOREGROUND=0
|
||||
# typeset -g POWERLEVEL9K_VIRTUALENV_BACKGROUND=4
|
||||
# Don't show Python version next to the virtual environment name.
|
||||
typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION=false
|
||||
# Separate environment name from Python version only with a space.
|
||||
typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER=
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_VIRTUALENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
#####################[ anaconda: conda environment (https://conda.io/) ]######################
|
||||
# Anaconda environment color.
|
||||
# typeset -g POWERLEVEL9K_ANACONDA_FOREGROUND=0
|
||||
# typeset -g POWERLEVEL9K_ANACONDA_BACKGROUND=4
|
||||
# Don't show Python version next to the anaconda environment name.
|
||||
typeset -g POWERLEVEL9K_ANACONDA_SHOW_PYTHON_VERSION=false
|
||||
# Separate environment name from Python version only with a space.
|
||||
typeset -g POWERLEVEL9K_ANACONDA_{LEFT,RIGHT}_DELIMITER=
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_ANACONDA_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
################[ pyenv: python environment (https://github.com/pyenv/pyenv) ]################
|
||||
# Pyenv color.
|
||||
# typeset -g POWERLEVEL9K_PYENV_FOREGROUND=0
|
||||
# typeset -g POWERLEVEL9K_PYENV_BACKGROUND=4
|
||||
# Don't show the current Python version if it's the same as global.
|
||||
typeset -g POWERLEVEL9K_PYENV_PROMPT_ALWAYS_SHOW=false
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_PYENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
##########[ nodenv: node.js version from nodenv (https://github.com/nodenv/nodenv) ]##########
|
||||
# Nodenv color.
|
||||
# typeset -g POWERLEVEL9K_NODENV_FOREGROUND=2
|
||||
# typeset -g POWERLEVEL9K_NODENV_BACKGROUND=0
|
||||
# Don't show node version if it's the same as global: $(nodenv version-name) == $(nodenv global).
|
||||
typeset -g POWERLEVEL9K_NODENV_PROMPT_ALWAYS_SHOW=false
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_NODENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
##############[ nvm: node.js version from nvm (https://github.com/nvm-sh/nvm) ]###############
|
||||
# Nvm color.
|
||||
# typeset -g POWERLEVEL9K_NVM_FOREGROUND=70
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_NVM_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
############[ nodeenv: node.js environment (https://github.com/ekalinin/nodeenv) ]############
|
||||
# Nodeenv color.
|
||||
# typeset -g POWERLEVEL9K_NODEENV_FOREGROUND=2
|
||||
# typeset -g POWERLEVEL9K_NODEENV_BACKGROUND=0
|
||||
# Don't show Node version next to the environment name.
|
||||
typeset -g POWERLEVEL9K_NODEENV_SHOW_NODE_VERSION=false
|
||||
# Separate environment name from Node version only with a space.
|
||||
typeset -g POWERLEVEL9K_NODEENV_{LEFT,RIGHT}_DELIMITER=
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_NODEENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
##############################[ node_version: node.js version ]###############################
|
||||
# Node version color.
|
||||
# typeset -g POWERLEVEL9K_NODE_VERSION_FOREGROUND=7
|
||||
# typeset -g POWERLEVEL9K_NODE_VERSION_BACKGROUND=2
|
||||
# Show node version only when in a directory tree containing package.json.
|
||||
typeset -g POWERLEVEL9K_NODE_VERSION_PROJECT_ONLY=true
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_NODE_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
#######################[ go_version: go version (https://golang.org) ]########################
|
||||
# Go version color.
|
||||
# typeset -g POWERLEVEL9K_GO_VERSION_FOREGROUND=255
|
||||
# typeset -g POWERLEVEL9K_GO_VERSION_BACKGROUND=2
|
||||
# Show go version only when in a go project subdirectory.
|
||||
typeset -g POWERLEVEL9K_GO_VERSION_PROJECT_ONLY=true
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_GO_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
#################[ rust_version: rustc version (https://www.rust-lang.org) ]##################
|
||||
# Rust version color.
|
||||
# typeset -g POWERLEVEL9K_RUST_VERSION_FOREGROUND=0
|
||||
# typeset -g POWERLEVEL9K_RUST_VERSION_BACKGROUND=208
|
||||
# Show rust version only when in a rust project subdirectory.
|
||||
typeset -g POWERLEVEL9K_RUST_VERSION_PROJECT_ONLY=true
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_RUST_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
###############[ dotnet_version: .NET version (https://dotnet.microsoft.com) ]################
|
||||
# .NET version color.
|
||||
# typeset -g POWERLEVEL9K_DOTNET_VERSION_FOREGROUND=7
|
||||
# typeset -g POWERLEVEL9K_DOTNET_VERSION_BACKGROUND=5
|
||||
# Show .NET version only when in a .NET project subdirectory.
|
||||
typeset -g POWERLEVEL9K_DOTNET_VERSION_PROJECT_ONLY=true
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_DOTNET_VERSION_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
#############[ rbenv: ruby version from rbenv (https://github.com/rbenv/rbenv) ]##############
|
||||
# Rbenv color.
|
||||
# typeset -g POWERLEVEL9K_RBENV_FOREGROUND=0
|
||||
# typeset -g POWERLEVEL9K_RBENV_BACKGROUND=1
|
||||
# Don't show ruby version if it's the same as global: $(rbenv version-name) == $(rbenv global).
|
||||
typeset -g POWERLEVEL9K_RBENV_PROMPT_ALWAYS_SHOW=false
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_RBENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
#######################[ rvm: ruby version from rvm (https://rvm.io) ]########################
|
||||
# Rvm color.
|
||||
# typeset -g POWERLEVEL9K_RVM_FOREGROUND=0
|
||||
# typeset -g POWERLEVEL9K_RVM_BACKGROUND=240
|
||||
# Don't show @gemset at the end.
|
||||
typeset -g POWERLEVEL9K_RVM_SHOW_GEMSET=false
|
||||
# Don't show ruby- at the front.
|
||||
typeset -g POWERLEVEL9K_RVM_SHOW_PREFIX=false
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_RVM_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
################[ terraform: terraform workspace (https://www.terraform.io) ]#################
|
||||
# Terraform color.
|
||||
# typeset -g POWERLEVEL9K_TERRAFORM_FOREGROUND=4
|
||||
# typeset -g POWERLEVEL9K_TERRAFORM_BACKGROUND=0
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_TERRAFORM_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
#[ aws: aws profile (https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html) ]#
|
||||
# AWS profile color.
|
||||
# typeset -g POWERLEVEL9K_AWS_FOREGROUND=7
|
||||
# typeset -g POWERLEVEL9K_AWS_BACKGROUND=1
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_AWS_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
#[ aws_eb_env: aws elastic beanstalk environment (https://aws.amazon.com/elasticbeanstalk/) ]#
|
||||
# AWS Elastic Beanstalk environment color.
|
||||
# typeset -g POWERLEVEL9K_AWS_EB_ENV_FOREGROUND=2
|
||||
# typeset -g POWERLEVEL9K_AWS_EB_ENV_BACKGROUND=0
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_AWS_EB_ENV_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
##########[ azure: azure account name (https://docs.microsoft.com/en-us/cli/azure) ]##########
|
||||
# Azure account name color.
|
||||
# typeset -g POWERLEVEL9K_AZURE_FOREGROUND=7
|
||||
# typeset -g POWERLEVEL9K_AZURE_BACKGROUND=4
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_AZURE_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
#############[ kubecontext: current kubernetes context (https://kubernetes.io/) ]#############
|
||||
# Kubernetes context classes for the purpose of using different colors, icons and expansions with
|
||||
# different contexts.
|
||||
#
|
||||
# POWERLEVEL9K_KUBECONTEXT_CLASSES is an array with even number of elements. The first element
|
||||
# in each pair defines a pattern against which the current kubernetes context gets matched.
|
||||
# More specifically, it's P9K_CONTENT prior to the application of context expansion (see below)
|
||||
# that gets matched. If you unset all POWERLEVEL9K_KUBECONTEXT_*CONTENT_EXPANSION parameters,
|
||||
# you'll see this value in your prompt. The second element of each pair in
|
||||
# POWERLEVEL9K_KUBECONTEXT_CLASSES defines the context class. Patterns are tried in order. The
|
||||
# first match wins.
|
||||
#
|
||||
# For example, given these settings:
|
||||
#
|
||||
# typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=(
|
||||
# '*prod*' PROD
|
||||
# '*test*' TEST
|
||||
# '*' DEFAULT)
|
||||
#
|
||||
# If your current kubernetes context is "deathray-testing/default", its class is TEST
|
||||
# because "deathray-testing/default" doesn't match the pattern '*prod*' but does match '*test*'.
|
||||
#
|
||||
# You can define different colors, icons and content expansions for different classes:
|
||||
#
|
||||
# typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_FOREGROUND=0
|
||||
# typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_BACKGROUND=2
|
||||
# typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
# typeset -g POWERLEVEL9K_KUBECONTEXT_TEST_CONTENT_EXPANSION='> ${P9K_CONTENT} <'
|
||||
typeset -g POWERLEVEL9K_KUBECONTEXT_CLASSES=(
|
||||
# '*prod*' PROD # These values are examples that are unlikely
|
||||
# '*test*' TEST # to match your needs. Customize them as needed.
|
||||
'*' DEFAULT)
|
||||
typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_FOREGROUND=7
|
||||
typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_BACKGROUND=5
|
||||
# typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
# Use POWERLEVEL9K_KUBECONTEXT_CONTENT_EXPANSION to specify the content displayed by kubecontext
|
||||
# segment. Parameter expansions are very flexible and fast, too. See reference:
|
||||
# http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion.
|
||||
#
|
||||
# Within the expansion the following parameters are always available:
|
||||
#
|
||||
# - P9K_CONTENT The content that would've been displayed if there was no content
|
||||
# expansion defined.
|
||||
# - P9K_KUBECONTEXT_NAME The current context's name. Corresponds to column NAME in the
|
||||
# output of `kubectl config get-contexts`.
|
||||
# - P9K_KUBECONTEXT_CLUSTER The current context's cluster. Corresponds to column CLUSTER in the
|
||||
# output of `kubectl config get-contexts`.
|
||||
# - P9K_KUBECONTEXT_NAMESPACE The current context's namespace. Corresponds to column NAMESPACE
|
||||
# in the output of `kubectl config get-contexts`. If there is no
|
||||
# namespace, the parameter is set to "default".
|
||||
#
|
||||
# If the context points to Google Kubernetes Engine (GKE) or Elastic Kubernetes Service (EKS),
|
||||
# the following extra parameters are available:
|
||||
#
|
||||
# - P9K_KUBECONTEXT_CLOUD_NAME Either "gke" or "eks".
|
||||
# - P9K_KUBECONTEXT_CLOUD_ACCOUNT Account/project ID.
|
||||
# - P9K_KUBECONTEXT_CLOUD_ZONE Availability zone.
|
||||
# - P9K_KUBECONTEXT_CLOUD_CLUSTER Cluster.
|
||||
#
|
||||
# P9K_KUBECONTEXT_CLOUD_* parameters are derived from P9K_KUBECONTEXT_CLUSTER. For example,
|
||||
# if P9K_KUBECONTEXT_CLUSTER is "gke_my-account_us-east1-a_my-cluster-01":
|
||||
#
|
||||
# - P9K_KUBECONTEXT_CLOUD_NAME=gke
|
||||
# - P9K_KUBECONTEXT_CLOUD_ACCOUNT=my-account
|
||||
# - P9K_KUBECONTEXT_CLOUD_ZONE=us-east1-a
|
||||
# - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01
|
||||
#
|
||||
# If P9K_KUBECONTEXT_CLUSTER is "arn:aws:eks:us-east-1:123456789012:cluster/my-cluster-01":
|
||||
#
|
||||
# - P9K_KUBECONTEXT_CLOUD_NAME=eks
|
||||
# - P9K_KUBECONTEXT_CLOUD_ACCOUNT=123456789012
|
||||
# - P9K_KUBECONTEXT_CLOUD_ZONE=us-east-1
|
||||
# - P9K_KUBECONTEXT_CLOUD_CLUSTER=my-cluster-01
|
||||
typeset -g POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION=
|
||||
# Show P9K_KUBECONTEXT_CLOUD_CLUSTER if it's not empty and fall back to P9K_KUBECONTEXT_NAME.
|
||||
POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${P9K_KUBECONTEXT_CLOUD_CLUSTER:-${P9K_KUBECONTEXT_NAME}}'
|
||||
# Append the current context's namespace if it's not "default".
|
||||
POWERLEVEL9K_KUBECONTEXT_DEFAULT_CONTENT_EXPANSION+='${${:-/$P9K_KUBECONTEXT_NAMESPACE}:#/default}'
|
||||
|
||||
# Custom prefix.
|
||||
# typeset -g POWERLEVEL9K_KUBECONTEXT_PREFIX='at '
|
||||
|
||||
###############################[ public_ip: public IP address ]###############################
|
||||
# Public IP color.
|
||||
# typeset -g POWERLEVEL9K_PUBLIC_IP_FOREGROUND=7
|
||||
# typeset -g POWERLEVEL9K_PUBLIC_IP_BACKGROUND=0
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_PUBLIC_IP_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
########################[ vpn_ip: virtual private network indicator ]#########################
|
||||
# VPN IP color.
|
||||
# typeset -g POWERLEVEL9K_VPN_IP_FOREGROUND=0
|
||||
# typeset -g POWERLEVEL9K_VPN_IP_BACKGROUND=6
|
||||
# When on VPN, show just an icon without the IP address.
|
||||
typeset -g POWERLEVEL9K_VPN_IP_CONTENT_EXPANSION=
|
||||
# Regular expression for the VPN network interface. Run ifconfig while on VPN to see the
|
||||
# name of the interface.
|
||||
typeset -g POWERLEVEL9K_VPN_IP_INTERFACE='(wg|(.*tun))[0-9]*'
|
||||
# Icon to show when on VPN.
|
||||
typeset -g POWERLEVEL9K_VPN_IP_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER}'
|
||||
|
||||
#########################[ proxy: system-wide http/https/ftp proxy ]##########################
|
||||
# Proxy color.
|
||||
# typeset -g POWERLEVEL9K_PROXY_FOREGROUND=4
|
||||
# typeset -g POWERLEVEL9K_PROXY_BACKGROUND=0
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_PROXY_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
|
||||
################################[ battery: internal battery ]#################################
|
||||
# Show battery in red when it's below this level and not connected to power supply.
|
||||
typeset -g POWERLEVEL9K_BATTERY_LOW_THRESHOLD=20
|
||||
typeset -g POWERLEVEL9K_BATTERY_LOW_FOREGROUND=1
|
||||
# Show battery in green when it's charging or fully charged.
|
||||
typeset -g POWERLEVEL9K_BATTERY_{CHARGING,CHARGED}_FOREGROUND=2
|
||||
# Show battery in yellow when it's discharging.
|
||||
typeset -g POWERLEVEL9K_BATTERY_DISCONNECTED_FOREGROUND=3
|
||||
# Battery pictograms going from low to high level of charge.
|
||||
typeset -g POWERLEVEL9K_BATTERY_STAGES=('%K{232}▁' '%K{232}▂' '%K{232}▃' '%K{232}▄' '%K{232}▅' '%K{232}▆' '%K{232}▇' '%K{232}█')
|
||||
# Don't show the remaining time to charge/discharge.
|
||||
typeset -g POWERLEVEL9K_BATTERY_VERBOSE=false
|
||||
# typeset -g POWERLEVEL9K_BATTERY_BACKGROUND=0
|
||||
|
||||
####################################[ time: current time ]####################################
|
||||
# Current time color.
|
||||
# typeset -g POWERLEVEL9K_TIME_FOREGROUND=0
|
||||
# typeset -g POWERLEVEL9K_TIME_BACKGROUND=7
|
||||
# Format for the current time: 09:51:02. See `man 3 strftime`.
|
||||
typeset -g POWERLEVEL9K_TIME_FORMAT='%D{%H:%M:%S}'
|
||||
# If set to true, time will update when you hit enter. This way prompts for the past
|
||||
# commands will contain the start times of their commands as opposed to the default
|
||||
# behavior where they contain the end times of their preceding commands.
|
||||
typeset -g POWERLEVEL9K_TIME_UPDATE_ON_COMMAND=false
|
||||
# Custom icon.
|
||||
# typeset -g POWERLEVEL9K_TIME_VISUAL_IDENTIFIER_EXPANSION='⭐'
|
||||
# Custom prefix.
|
||||
# typeset -g POWERLEVEL9K_TIME_PREFIX='at '
|
||||
|
||||
# Example of a user-defined prompt segment. Function prompt_example will be called on every
|
||||
# prompt if `example` prompt segment is added to POWERLEVEL9K_LEFT_PROMPT_ELEMENTS or
|
||||
# POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS. It displays an icon and orange text greeting the user.
|
||||
#
|
||||
# Type `p10k help segment` for documentation and a more sophisticated example.
|
||||
function prompt_example() {
|
||||
p10k segment -b red -f yellow -i '⭐' -t 'hello, %n'
|
||||
}
|
||||
|
||||
# User-defined prompt segments can be customized the same way as built-in segments.
|
||||
# typeset -g POWERLEVEL9K_EXAMPLE_FOREGROUND=4
|
||||
typeset -g POWERLEVEL9K_EXAMPLE_VISUAL_IDENTIFIER_EXPANSION='${P9K_VISUAL_IDENTIFIER}'
|
||||
}
|
||||
|
||||
(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]}
|
||||
'builtin' 'unset' 'p10k_config_opts'
|
|
@ -1,2 +1 @@
|
|||
This is a bundled copy of [gitstatus](https://github.com/romkatv/gitstatus) ZSH plugin.
|
||||
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -19,51 +19,56 @@
|
|||
#
|
||||
# Example: Start gitstatusd, send it a request, wait for response and print it.
|
||||
#
|
||||
# source gitstatus.plugin.zsh
|
||||
# source ~/gitstatus/gitstatus.plugin.zsh
|
||||
# gitstatus_start MY
|
||||
# gitstatus_query -d $PWD MY
|
||||
# set | egrep '^VCS_STATUS'
|
||||
# typeset -m 'VCS_STATUS_*'
|
||||
#
|
||||
# Output:
|
||||
#
|
||||
# VCS_STATUS_ACTION=''
|
||||
# VCS_STATUS_COMMIT=6e86ec135bf77875e222463cbac8ef72a7e8d823
|
||||
# VCS_STATUS_COMMIT=c000eddcff0fb38df2d0137efe24d9d2d900f209
|
||||
# VCS_STATUS_COMMITS_AHEAD=0
|
||||
# VCS_STATUS_COMMITS_BEHIND=0
|
||||
# VCS_STATUS_INDEX_SIZE=42
|
||||
# VCS_STATUS_NUM_STAGED=0
|
||||
# VCS_STATUS_NUM_UNSTAGED=2
|
||||
# VCS_STATUS_NUM_UNTRACKED=3
|
||||
# VCS_STATUS_HAS_CONFLICTED=0
|
||||
# VCS_STATUS_HAS_STAGED=0
|
||||
# VCS_STATUS_HAS_UNSTAGED=1
|
||||
# VCS_STATUS_HAS_UNTRACKED=1
|
||||
# VCS_STATUS_INDEX_SIZE=33
|
||||
# VCS_STATUS_LOCAL_BRANCH=master
|
||||
# VCS_STATUS_NUM_CONFLICTED=0
|
||||
# VCS_STATUS_NUM_STAGED=0
|
||||
# VCS_STATUS_NUM_UNSTAGED=1
|
||||
# VCS_STATUS_NUM_UNSTAGED_DELETED=0
|
||||
# VCS_STATUS_NUM_UNTRACKED=1
|
||||
# VCS_STATUS_REMOTE_BRANCH=master
|
||||
# VCS_STATUS_REMOTE_NAME=origin
|
||||
# VCS_STATUS_REMOTE_URL=git@github.com:romkatv/powerlevel10k.git
|
||||
# VCS_STATUS_RESULT=ok-sync
|
||||
# VCS_STATUS_STASHES=0
|
||||
# VCS_STATUS_TAG=''
|
||||
# VCS_STATUS_WORKDIR=/home/romka/.oh-my-zsh/custom/themes/powerlevel10k
|
||||
# VCS_STATUS_WORKDIR=/home/romka/powerlevel10k
|
||||
|
||||
[[ -o 'interactive' ]] || 'return'
|
||||
|
||||
# Temporarily disable aliases.
|
||||
if [[ -o 'aliases' ]]; then
|
||||
'builtin' 'unsetopt' 'aliases'
|
||||
local _gitstatus_restore_aliases=1
|
||||
else
|
||||
local _gitstatus_restore_aliases=0
|
||||
fi
|
||||
# Temporarily change options.
|
||||
'builtin' 'local' '-a' '_gitstatus_opts'
|
||||
[[ ! -o 'aliases' ]] || _gitstatus_opts+=('aliases')
|
||||
[[ ! -o 'sh_glob' ]] || _gitstatus_opts+=('sh_glob')
|
||||
[[ ! -o 'no_brace_expand' ]] || _gitstatus_opts+=('no_brace_expand')
|
||||
'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand'
|
||||
|
||||
autoload -Uz add-zsh-hook
|
||||
zmodload zsh/datetime zsh/system
|
||||
|
||||
typeset -g _gitstatus_plugin_dir=${${(%):-%x}:A:h}
|
||||
|
||||
# Retrives status of a git repo from a directory under its working tree.
|
||||
#
|
||||
## Usage: gitstatus_query [OPTION]... NAME
|
||||
#
|
||||
# -d STR Directory to query. Defaults to ${${GIT_DIR:-$PWD}:a}. Must be absolute.
|
||||
# -d STR Directory to query. Must be absolute. Defaults to $GIT_DIR or the current
|
||||
# directory if GIT_DIR is not set.
|
||||
# -c STR Callback function to call once the results are available. Called only after
|
||||
# gitstatus_query returns 0 with VCS_STATUS_RESULT=tout.
|
||||
# -t FLOAT Timeout in seconds. Will block for at most this long. If no results are
|
||||
|
@ -71,7 +76,7 @@ zmodload zsh/datetime zsh/system
|
|||
# VCS_STATUS_RESULT=tout and return 0.
|
||||
# -p Don't compute anything that requires reading Git index. If this option is used,
|
||||
# the following parameters will be 0: VCS_STATUS_INDEX_SIZE,
|
||||
# VCS_STATUS_{NUM,HAS}_{STAGED,UNSTAGED,UNTRACKED}.
|
||||
# VCS_STATUS_{NUM,HAS}_{STAGED,UNSTAGED,UNTRACKED,CONFLICTED}.
|
||||
#
|
||||
# On success sets VCS_STATUS_RESULT to one of the following values:
|
||||
#
|
||||
|
@ -87,8 +92,8 @@ zmodload zsh/datetime zsh/system
|
|||
# If VCS_STATUS_RESULT is ok-sync or ok-async, additional variables are set:
|
||||
#
|
||||
# VCS_STATUS_WORKDIR Git repo working directory. Not empty.
|
||||
# VCS_STATUS_COMMIT Commit hash that HEAD is pointing to. Either 40 hex digits or empty
|
||||
# if there is no HEAD (empty repo).
|
||||
# VCS_STATUS_COMMIT Commit hash that HEAD is pointing to. Either 40 hex digits or
|
||||
# empty if there is no HEAD (empty repo).
|
||||
# VCS_STATUS_LOCAL_BRANCH Local branch name or empty if not on a branch.
|
||||
# VCS_STATUS_REMOTE_NAME The remote name, e.g. "upstream" or "origin".
|
||||
# VCS_STATUS_REMOTE_BRANCH Upstream branch name. Can be empty.
|
||||
|
@ -96,23 +101,27 @@ zmodload zsh/datetime zsh/system
|
|||
# VCS_STATUS_ACTION Repository state, A.K.A. action. Can be empty.
|
||||
# VCS_STATUS_INDEX_SIZE The number of files in the index.
|
||||
# VCS_STATUS_NUM_STAGED The number of staged changes.
|
||||
# VCS_STATUS_NUM_CONFLICTED The number of unstaged changes.
|
||||
# VCS_STATUS_NUM_CONFLICTED The number of conflicted changes.
|
||||
# VCS_STATUS_NUM_UNSTAGED The number of unstaged changes.
|
||||
# VCS_STATUS_NUM_UNTRACKED The number of untracked files.
|
||||
# VCS_STATUS_HAS_STAGED 1 if there are staged changes, 0 otherwise.
|
||||
# VCS_STATUS_HAS_CONFLICTED 1 if there are conflicted changes, 0 otherwise.
|
||||
# VCS_STATUS_HAS_UNSTAGED 1 if there are unstaged changes, 0 if there aren't, -1 if unknown.
|
||||
# VCS_STATUS_HAS_UNTRACKED 1 if there are untracked files, 0 if there aren't, -1 if unknown.
|
||||
# VCS_STATUS_HAS_UNSTAGED 1 if there are unstaged changes, 0 if there aren't, -1 if
|
||||
# unknown.
|
||||
# VCS_STATUS_NUM_UNSTAGED_DELETED The number of unstaged deleted files. Note that renamed files
|
||||
# are reported as deleted plus added.
|
||||
# VCS_STATUS_HAS_UNTRACKED 1 if there are untracked files, 0 if there aren't, -1 if
|
||||
# unknown.
|
||||
# VCS_STATUS_COMMITS_AHEAD Number of commits the current branch is ahead of upstream.
|
||||
# Non-negative integer.
|
||||
# VCS_STATUS_COMMITS_BEHIND Number of commits the current branch is behind upstream. Non-negative
|
||||
# integer.
|
||||
# VCS_STATUS_COMMITS_BEHIND Number of commits the current branch is behind upstream.
|
||||
# Non-negative integer.
|
||||
# VCS_STATUS_STASHES Number of stashes. Non-negative integer.
|
||||
# VCS_STATUS_TAG The last tag (in lexicographical order) that points to the same
|
||||
# commit as HEAD.
|
||||
#
|
||||
# The point of reporting -1 as unstaged and untracked is to allow the command to skip scanning
|
||||
# files in large repos. See -m flag of gitstatus_start.
|
||||
# The point of reporting -1 via VCS_STATUS_HAS_* is to allow the command to skip scanning files in
|
||||
# large repos. See -m flag of gitstatus_start.
|
||||
#
|
||||
# gitstatus_query returns an error if gitstatus_start hasn't been called in the same shell or
|
||||
# the call had failed.
|
||||
|
@ -126,8 +135,8 @@ function gitstatus_query() {
|
|||
setopt err_return no_unset
|
||||
|
||||
local opt
|
||||
local dir=${${GIT_DIR:-$PWD}:a}
|
||||
local callback=''
|
||||
local dir=${GIT_DIR:-}
|
||||
local callback
|
||||
local -F timeout=-1
|
||||
local no_diff=0
|
||||
while true; do
|
||||
|
@ -144,12 +153,15 @@ function gitstatus_query() {
|
|||
(( OPTIND == ARGC )) || { echo "usage: gitstatus_query [OPTION]... NAME" >&2; return 1 }
|
||||
local name=${*[$OPTIND]}
|
||||
|
||||
[[ -n ${(P)${:-GITSTATUS_DAEMON_PID_${name}}:-} ]]
|
||||
local daemon_pid_var=GITSTATUS_DAEMON_PID_${name}
|
||||
(( ${(P)daemon_pid_var:-0} > 0 ))
|
||||
|
||||
# Verify that gitstatus_query is running in the same process that ran gitstatus_start.
|
||||
local client_pid_var=_GITSTATUS_CLIENT_PID_${name}
|
||||
[[ ${(P)client_pid_var} == $$ ]]
|
||||
|
||||
[[ $dir == /* ]] || dir=${(%):-%/}/$dir
|
||||
|
||||
local req_fd_var=_GITSTATUS_REQ_FD_${name}
|
||||
local -i req_fd=${(P)req_fd_var}
|
||||
local -r req_id="$EPOCHREALTIME"
|
||||
|
@ -203,6 +215,7 @@ function _gitstatus_process_response() {
|
|||
typeset -gi VCS_STATUS_COMMITS_BEHIND="${resp[16]}"
|
||||
typeset -gi VCS_STATUS_STASHES="${resp[17]}"
|
||||
typeset -g VCS_STATUS_TAG="${resp[18]}"
|
||||
typeset -gi VCS_STATUS_NUM_UNSTAGED_DELETED="${resp[19]:-0}"
|
||||
typeset -gi VCS_STATUS_HAS_STAGED=$((VCS_STATUS_NUM_STAGED > 0))
|
||||
(( dirty_max_index_size >= 0 && VCS_STATUS_INDEX_SIZE > dirty_max_index_size )) && {
|
||||
typeset -gi VCS_STATUS_HAS_UNSTAGED=-1
|
||||
|
@ -235,6 +248,7 @@ function _gitstatus_process_response() {
|
|||
unset VCS_STATUS_COMMITS_BEHIND
|
||||
unset VCS_STATUS_STASHES
|
||||
unset VCS_STATUS_TAG
|
||||
unset VCS_STATUS_NUM_UNSTAGED_DELETED
|
||||
}
|
||||
|
||||
(( ! ours )) && (( #header )) && emulate -L zsh && "${header[@]}" || true
|
||||
|
@ -261,6 +275,8 @@ function _gitstatus_process_response() {
|
|||
#
|
||||
# -m INT If a repo has more files in its index than this, override -u and -d (but not -s)
|
||||
# with zeros. Negative value means infinity. Defaults to -1.
|
||||
#
|
||||
# -e Count files within untracked directories like `git status --untracked-files`.
|
||||
function gitstatus_start() {
|
||||
emulate -L zsh
|
||||
setopt err_return no_unset no_bg_nice
|
||||
|
@ -272,15 +288,20 @@ function gitstatus_start() {
|
|||
local -i max_num_conflicted=1
|
||||
local -i max_num_untracked=1
|
||||
local -i dirty_max_index_size=-1
|
||||
local -i async
|
||||
local recurse_untracked_dirs
|
||||
while true; do
|
||||
getopts "t:s:u:d:m:" opt || break
|
||||
getopts "t:s:u:c:d:m:ea" opt || break
|
||||
case $opt in
|
||||
a) async=1;;
|
||||
t) timeout=$OPTARG;;
|
||||
s) max_num_staged=$OPTARG;;
|
||||
u) max_num_unstaged=$OPTARG;;
|
||||
c) max_num_conflicted=$OPTARG;;
|
||||
d) max_num_untracked=$OPTARG;;
|
||||
m) dirty_max_index_size=$OPTARG;;
|
||||
e) recurse_untracked_dirs='--recurse-untracked-dirs';;
|
||||
+e) recurse_untracked_dirs=;;
|
||||
?) return 1;;
|
||||
esac
|
||||
done
|
||||
|
@ -289,47 +310,59 @@ function gitstatus_start() {
|
|||
(( OPTIND == ARGC )) || { echo "usage: gitstatus_start [OPTION]... NAME" >&2; return 1 }
|
||||
local name=${*[$OPTIND]}
|
||||
|
||||
[[ -z ${(P)${:-GITSTATUS_DAEMON_PID_${name}}:-} ]] || return 0
|
||||
|
||||
local dir && dir=${${(%):-%x}:A:h}
|
||||
local xtrace_file lock_file req_fifo resp_fifo log_file
|
||||
local -i stderr_fd=-1 lock_fd=-1 req_fd=-1 resp_fd=-1 daemon_pid=-1
|
||||
local lock_file req_fifo resp_fifo log_level
|
||||
local log_file=/dev/null xtrace_file=/dev/null
|
||||
local -i stderr_fd lock_fd req_fd resp_fd daemon_pid
|
||||
local daemon_pid_var=GITSTATUS_DAEMON_PID_${name}
|
||||
(( $+parameters[$daemon_pid_var] )) && {
|
||||
(( ! async )) || return 0
|
||||
daemon_pid=${(P)daemon_pid_var}
|
||||
(( daemon_pid == -1 )) || return 0
|
||||
local resp_fd_var=_GITSTATUS_RESP_FD_${name}
|
||||
local log_file_var=GITSTATUS_DAEMON_LOG_${name}
|
||||
local xtrace_file_var=GITSTATUS_XTRACE_${name}
|
||||
resp_fd=${(P)resp_fd_var}
|
||||
log_file=${(P)log_file_var}
|
||||
xtrace_file=${(P)xtrace_file_var}
|
||||
} || {
|
||||
log_level=${GITSTATUS_LOG_LEVEL:-}
|
||||
[[ -n $log_level || ${GITSTATUS_ENABLE_LOGGING:-0} != 1 ]] || log_level=INFO
|
||||
[[ -z $log_level ]] || {
|
||||
log_file=${TMPDIR:-/tmp}/gitstatus.$$.daemon-log.$EPOCHREALTIME.$RANDOM
|
||||
xtrace_file=${TMPDIR:-/tmp}/gitstatus.$$.xtrace.$EPOCHREALTIME.$RANDOM
|
||||
}
|
||||
typeset -g GITSTATUS_DAEMON_LOG_${name}=$log_file
|
||||
typeset -g GITSTATUS_XTRACE_${name}=$xtrace_file
|
||||
}
|
||||
|
||||
function gitstatus_start_impl() {
|
||||
local log_level=${GITSTATUS_LOG_LEVEL:-}
|
||||
[[ -n $log_level || ${GITSTATUS_ENABLE_LOGGING:-0} != 1 ]] || log_level=INFO
|
||||
|
||||
[[ -z $log_level ]] || {
|
||||
xtrace_file=$(mktemp "${TMPDIR:-/tmp}"/gitstatus.$$.xtrace.XXXXXXXXXX)
|
||||
typeset -g GITSTATUS_XTRACE_${name}=$xtrace_file
|
||||
exec {stderr_fd}>&2 2>$xtrace_file
|
||||
[[ $xtrace_file == /dev/null ]] || {
|
||||
exec {stderr_fd}>&2 2>>$xtrace_file
|
||||
setopt xtrace
|
||||
}
|
||||
|
||||
local os && os=$(uname -s) && [[ -n $os ]]
|
||||
[[ $os != Linux || $(uname -o) != Android ]] || os=Android
|
||||
local arch && arch=$(uname -m) && [[ -n $arch ]]
|
||||
(( daemon_pid == -1 )) || {
|
||||
local daemon=${GITSTATUS_DAEMON:-} os
|
||||
[[ -n $daemon ]] || {
|
||||
os="$(uname -s)" && [[ -n $os ]]
|
||||
[[ $os != Linux || "$(uname -o)" != Android ]] || os=Android
|
||||
local arch && arch="$(uname -m)" && [[ -n $arch ]]
|
||||
daemon=$_gitstatus_plugin_dir/bin/gitstatusd-${os:l}-${arch:l}
|
||||
}
|
||||
[[ -x $daemon ]]
|
||||
|
||||
local daemon=${GITSTATUS_DAEMON:-$dir/bin/gitstatusd-${os:l}-${arch:l}}
|
||||
[[ -f $daemon ]]
|
||||
|
||||
lock_file=$(mktemp "${TMPDIR:-/tmp}"/gitstatus.$$.lock.XXXXXXXXXX)
|
||||
lock_file=${TMPDIR:-/tmp}/gitstatus.$$.lock.$EPOCHREALTIME.$RANDOM
|
||||
echo -n >$lock_file
|
||||
zsystem flock -f lock_fd $lock_file
|
||||
|
||||
req_fifo=$(mktemp -u "${TMPDIR:-/tmp}"/gitstatus.$$.pipe.req.XXXXXXXXXX)
|
||||
mkfifo $req_fifo
|
||||
|
||||
resp_fifo=$(mktemp -u "${TMPDIR:-/tmp}"/gitstatus.$$.pipe.resp.XXXXXXXXXX)
|
||||
mkfifo $resp_fifo
|
||||
|
||||
[[ -n $log_level ]] &&
|
||||
log_file=$(mktemp "${TMPDIR:-/tmp}"/gitstatus.$$.daemon-log.XXXXXXXXXX) ||
|
||||
log_file=/dev/null
|
||||
typeset -g GITSTATUS_DAEMON_LOG_${name}=$log_file
|
||||
req_fifo=${TMPDIR:-/tmp}/gitstatus.$$.req.$EPOCHREALTIME.$RANDOM
|
||||
resp_fifo=${TMPDIR:-/tmp}/gitstatus.$$.resp.$EPOCHREALTIME.$RANDOM
|
||||
mkfifo $req_fifo $resp_fifo
|
||||
|
||||
local -i threads=${GITSTATUS_NUM_THREADS:-0}
|
||||
(( threads > 0)) || {
|
||||
threads=8
|
||||
[[ -n $os ]] || { os="$(uname -s)" && [[ -n $os ]] }
|
||||
case $os in
|
||||
FreeBSD) (( ! $+commands[sysctl] )) || threads=$(( 2 * $(sysctl -n hw.ncpu) ));;
|
||||
*) (( ! $+commands[getconf] )) || threads=$(( 2 * $(getconf _NPROCESSORS_ONLN) ));;
|
||||
|
@ -346,82 +379,101 @@ function gitstatus_start() {
|
|||
--max-num-conflicted=${(q)max_num_conflicted}
|
||||
--max-num-untracked=${(q)max_num_untracked}
|
||||
--dirty-max-index-size=${(q)dirty_max_index_size}
|
||||
${${log_level:#INFO}:+--log-level=$log_level})
|
||||
--log-level=${(q)log_level:-INFO}
|
||||
$recurse_untracked_dirs)
|
||||
|
||||
local cmd="
|
||||
echo \$\$
|
||||
${(q)daemon} $daemon_args
|
||||
if [[ \$? != (0|10) && \$? -le 128 &&
|
||||
-z ${(q)GITSTATUS_DAEMON:-} &&
|
||||
-f ${(q)daemon}-static ]]; then
|
||||
if [[ \$? != (0|10) && \$? -le 128 && -f ${(q)daemon}-static ]]; then
|
||||
${(q)daemon}-static $daemon_args
|
||||
fi
|
||||
echo -nE $'bye\x1f0\x1e'"
|
||||
local setsid=${commands[setsid]:-/usr/local/opt/util-linux/bin/setsid}
|
||||
[[ -f $setsid ]] && setsid=${(q)setsid} || setsid=
|
||||
cmd="$setsid zsh -dfxc ${(q)cmd} &!"
|
||||
# We use `zsh -c` instead of plain {} or () to work around bugs in zplug. It hangs on startup.
|
||||
# Double fork is to daemonize. Some macOS users had issues when gitstatusd was a child process
|
||||
# of the interactive zsh. For example, https://github.com/romkatv/powerlevel10k/issues/123
|
||||
# and https://github.com/romkatv/powerlevel10k/issues/97. Note that on macOS setsid has to
|
||||
# be installed manually by running `brew install util-linux`. Unfortunately, none of these
|
||||
# helped to resolve https://github.com/romkatv/powerlevel10k/issues/123.
|
||||
[[ -x $setsid ]] && setsid=${(q)setsid} || setsid=
|
||||
cmd="cd /; read; $setsid zsh -dfxc ${(q)cmd} &!; rm -f ${(q)req_fifo} ${(q)resp_fifo} ${(q)lock_file}"
|
||||
# We use `zsh -c` instead of plain {} or () to work around bugs in zplug (it hangs on
|
||||
# startup). Double fork is to daemonize, and so is `setsid`. Note that on macOS `setsid` has
|
||||
# to be installed manually by running `brew install util-linux`.
|
||||
zsh -dfmxc $cmd <$req_fifo >$resp_fifo 2>$log_file 3<$lock_file &!
|
||||
|
||||
sysopen -w -o cloexec,sync -u req_fd $req_fifo
|
||||
sysopen -r -o cloexec -u resp_fd $resp_fifo
|
||||
echo -nE $'0\nhello\x1f\x1e' >&$req_fd
|
||||
}
|
||||
|
||||
(( async )) && {
|
||||
daemon_pid=-1
|
||||
} || {
|
||||
read -u $resp_fd daemon_pid
|
||||
|
||||
rm -f $req_fifo $resp_fifo $lock_file
|
||||
|
||||
function _gitstatus_process_response_${name}() {
|
||||
_gitstatus_process_response ${${(%)${:-%N}}#_gitstatus_process_response_} 0 ''
|
||||
local name=${${(%):-%N}#_gitstatus_process_response_}
|
||||
(( ARGC == 1 )) && {
|
||||
_gitstatus_process_response $name 0 ''
|
||||
true
|
||||
} || {
|
||||
gitstatus_stop $name
|
||||
}
|
||||
}
|
||||
zle -F $resp_fd _gitstatus_process_response_${name}
|
||||
|
||||
local reply IFS=''
|
||||
echo -nE $'hello\x1f\x1e' >&$req_fd
|
||||
read -r -d $'\x1e' -u $resp_fd -t $timeout reply
|
||||
[[ $reply == $'hello\x1f0' ]]
|
||||
|
||||
function _gitstatus_cleanup_${ZSH_SUBSHELL}_${daemon_pid}() {
|
||||
function _gitstatus_cleanup_$$_${ZSH_SUBSHELL}_${daemon_pid}() {
|
||||
emulate -L zsh
|
||||
setopt err_return no_unset
|
||||
local fname=${(%):-%N}
|
||||
local prefix=_gitstatus_cleanup_${ZSH_SUBSHELL}_
|
||||
local prefix=_gitstatus_cleanup_$$_${ZSH_SUBSHELL}_
|
||||
[[ $fname == ${prefix}* ]] || return 0
|
||||
local -i daemon_pid=${fname#$prefix}
|
||||
kill -- -$daemon_pid &>/dev/null || true
|
||||
}
|
||||
add-zsh-hook zshexit _gitstatus_cleanup_${ZSH_SUBSHELL}_${daemon_pid}
|
||||
add-zsh-hook zshexit _gitstatus_cleanup_$$_${ZSH_SUBSHELL}_${daemon_pid}
|
||||
}
|
||||
|
||||
[[ $stderr_fd == -1 ]] || {
|
||||
(( ! stderr_fd )) || {
|
||||
unsetopt xtrace
|
||||
exec 2>&$stderr_fd {stderr_fd}>&-
|
||||
stderr_fd=-1
|
||||
stderr_fd=0
|
||||
}
|
||||
}
|
||||
|
||||
gitstatus_start_impl && {
|
||||
typeset -gi GITSTATUS_DAEMON_PID_${name}=$daemon_pid
|
||||
(( ! req_fd )) || {
|
||||
typeset -gi _GITSTATUS_REQ_FD_${name}=$req_fd
|
||||
typeset -gi _GITSTATUS_RESP_FD_${name}=$resp_fd
|
||||
typeset -gi _GITSTATUS_LOCK_FD_${name}=$lock_fd
|
||||
typeset -gi _GITSTATUS_CLIENT_PID_${name}=$$
|
||||
typeset -gi _GITSTATUS_DIRTY_MAX_INDEX_SIZE_${name}=$dirty_max_index_size
|
||||
}
|
||||
unset -f gitstatus_start_impl
|
||||
} || {
|
||||
unsetopt err_return
|
||||
add-zsh-hook -d zshexit _gitstatus_cleanup_${ZSH_SUBSHELL}_${daemon_pid}
|
||||
[[ $daemon_pid -gt 0 ]] && kill -- -$daemon_pid &>/dev/null
|
||||
[[ $stderr_fd -ge 0 ]] && { exec 2>&$stderr_fd {stderr_fd}>&- }
|
||||
[[ $lock_fd -ge 0 ]] && zsystem flock -u $lock_fd
|
||||
[[ $req_fd -ge 0 ]] && exec {req_fd}>&-
|
||||
[[ $resp_fd -ge 0 ]] && { zle -F $resp_fd; exec {resp_fd}>&- }
|
||||
add-zsh-hook -d zshexit _gitstatus_cleanup_$$_${ZSH_SUBSHELL}_${daemon_pid}
|
||||
(( $+functions[_gitstatus_process_response_${name}] )) && {
|
||||
zle -F $resp_fd
|
||||
unfunction _gitstatus_process_response_${name}
|
||||
}
|
||||
(( resp_fd )) && exec {resp_fd}>&-
|
||||
(( req_fd )) && exec {req_fd}>&-
|
||||
(( lock_fd )) && zsystem flock -u $lock_fd
|
||||
(( stderr_fd )) && { exec 2>&$stderr_fd {stderr_fd}>&- }
|
||||
(( daemon_pid > 0 )) && kill -- -$daemon_pid &>/dev/null
|
||||
|
||||
rm -f $lock_file $req_fifo $resp_fifo
|
||||
unset -f gitstatus_start_impl
|
||||
|
||||
unset GITSTATUS_DAEMON_PID_${name}
|
||||
unset _GITSTATUS_REQ_FD_${name}
|
||||
unset _GITSTATUS_RESP_FD_${name}
|
||||
unset _GITSTATUS_LOCK_FD_${name}
|
||||
unset _GITSTATUS_CLIENT_PID_${name}
|
||||
unset _GITSTATUS_DIRTY_MAX_INDEX_SIZE_${name}
|
||||
|
||||
>&2 print -P '[%F{red}ERROR%f]: gitstatus failed to initialize.'
|
||||
>&2 echo -E ''
|
||||
>&2 echo -E ' Your git prompt may disappear or become slow.'
|
||||
|
@ -439,7 +491,7 @@ function gitstatus_start() {
|
|||
>&2 awk '{print " " $0}' <$log_file
|
||||
>&2 print -nP '%f'
|
||||
fi
|
||||
if [[ -n ${GITSTATUS_LOG_LEVEL:-} || ${GITSTATUS_ENABLE_LOGGING:-0} == 1 ]]; then
|
||||
if [[ ${GITSTATUS_LOG_LEVEL:-} == DEBUG ]]; then
|
||||
>&2 echo -E ''
|
||||
>&2 echo -E ' Your system information:'
|
||||
>&2 print -P '%F{yellow}'
|
||||
|
@ -476,20 +528,28 @@ function gitstatus_stop() {
|
|||
local lock_fd_var=_GITSTATUS_LOCK_FD_${name}
|
||||
local daemon_pid_var=GITSTATUS_DAEMON_PID_${name}
|
||||
local client_pid_var=_GITSTATUS_CLIENT_PID_${name}
|
||||
local dirty_size_var=_GITSTATUS_DIRTY_MAX_INDEX_SIZE_${name}
|
||||
|
||||
[[ ${(P)daemon_pid_var:-} != -1 ]] || gitstatus_start -t 0 "$name" 2>/dev/null
|
||||
|
||||
local req_fd=${(P)req_fd_var:-}
|
||||
local resp_fd=${(P)resp_fd_var:-}
|
||||
local lock_fd=${(P)lock_fd_var:-}
|
||||
local daemon_pid=${(P)daemon_pid_var:-}
|
||||
local daemon_pid=${(P)daemon_pid_var:-0}
|
||||
|
||||
local cleanup_func=_gitstatus_cleanup_${ZSH_SUBSHELL}_${daemon_pid}
|
||||
local cleanup_func=_gitstatus_cleanup_$$_${ZSH_SUBSHELL}_${daemon_pid}
|
||||
|
||||
[[ -n $daemon_pid ]] && kill -- -$daemon_pid &>/dev/null
|
||||
[[ -n $req_fd ]] && exec {req_fd}>&-
|
||||
[[ -n $resp_fd ]] && { zle -F $resp_fd; exec {resp_fd}>&- }
|
||||
[[ -n $lock_fd ]] && zsystem flock -u $lock_fd
|
||||
(( $+functions[_gitstatus_process_response_${name}] )) && {
|
||||
zle -F $resp_fd
|
||||
unfunction _gitstatus_process_response_${name}
|
||||
}
|
||||
|
||||
unset $req_fd_var $resp_fd_var $lock_fd_var $daemon_pid_var $client_pid_var
|
||||
(( resp_fd )) && exec {resp_fd}>&-
|
||||
(( req_fd )) && exec {req_fd}>&-
|
||||
(( lock_fd )) && zsystem flock -u $lock_fd
|
||||
(( daemon_pid > 0 )) && kill -- -$daemon_pid &>/dev/null
|
||||
|
||||
unset $req_fd_var $resp_fd_var $lock_fd_var $daemon_pid_var $client_pid_var $dirty_size_var
|
||||
|
||||
if (( $+functions[$cleanup_func] )); then
|
||||
add-zsh-hook -d zshexit $cleanup_func
|
||||
|
@ -506,8 +566,9 @@ function gitstatus_stop() {
|
|||
function gitstatus_check() {
|
||||
emulate -L zsh
|
||||
(( ARGC == 1 )) || { echo "usage: gitstatus_check NAME" >&2; return 1 }
|
||||
[[ -n ${(P)${:-GITSTATUS_DAEMON_PID_${1}}} ]]
|
||||
local daemon_pid_var=GITSTATUS_DAEMON_PID_${1}
|
||||
(( ${(P)daemon_pid_var:-0} > 0 ))
|
||||
}
|
||||
|
||||
(( ! _gitstatus_restore_aliases )) || setopt aliases
|
||||
'builtin' 'unset' '_gitstatus_restore_aliases'
|
||||
(( ${#_gitstatus_opts} )) && setopt ${_gitstatus_opts[@]}
|
||||
'builtin' 'unset' '_gitstatus_opts'
|
||||
|
|
|
@ -9,10 +9,10 @@ setopt err_exit no_unset pipe_fail extended_glob xtrace
|
|||
readonly GITSTATUS_DIR GITSTATUS_URL
|
||||
readonly -a IGNORE=(pull-upstream.zsh README.md)
|
||||
|
||||
function pull() {
|
||||
local repo && repo=$(mktemp -d ${TMPDIR:-/tmp}/gitstatus-pull-upstream.XXXXXXXXXX)
|
||||
() {
|
||||
local repo && repo="$(mktemp -d ${TMPDIR:-/tmp}/gitstatus-pull-upstream.XXXXXXXXXX)"
|
||||
trap "rm -rf ${(q)repo}" EXIT
|
||||
git clone $GITSTATUS_URL $repo
|
||||
git clone --depth 1 $GITSTATUS_URL $repo
|
||||
|
||||
local dst
|
||||
for dst in $GITSTATUS_DIR/**/*(.,@); do
|
||||
|
@ -22,9 +22,7 @@ function pull() {
|
|||
[[ -f $src ]] && {
|
||||
mkdir -p ${dst:h} && cp -f $src $dst || return
|
||||
} || {
|
||||
rm $dst
|
||||
rm -f $dst
|
||||
}
|
||||
done
|
||||
}
|
||||
|
||||
pull
|
||||
|
|
|
@ -1,51 +1,77 @@
|
|||
typeset -gr __p9k_wizard_columns=70 # DO NOT SUBMIT: 76
|
||||
typeset -gr __p9k_wizard_lines=20 # DO NOT SUBMIT: 21
|
||||
typeset -gr __p9k_zd=${${ZDOTDIR:-$HOME}:A}
|
||||
typeset -gr __p9k_zd_u=${${(q-)__p9k_zd}/#(#b)$HOME(|\/*)/'~'$match[1]}
|
||||
typeset -gr __p9k_wizard_columns=55
|
||||
typeset -gr __p9k_wizard_lines=21
|
||||
typeset -gr __p9k_zd=${ZDOTDIR:-$HOME}
|
||||
typeset -gr __p9k_zd_u=${${${(q)__p9k_zd}/#(#b)${(q)HOME}(|\/*)/'~'$match[1]}//\%/%%}
|
||||
typeset -gr __p9k_cfg_basename=.p10k.zsh
|
||||
typeset -gr __p9k_cfg_path=$__p9k_zd/$__p9k_cfg_basename
|
||||
typeset -gr __p9k_cfg_path_u=$__p9k_zd_u/$__p9k_cfg_basename
|
||||
typeset -gr __p9k_zshrc=$__p9k_zd/.zshrc
|
||||
typeset -gr __p9k_zshrc_u=$__p9k_zd_u/.zshrc
|
||||
typeset -gr __p9k_root_dir_u=${${(q-)__p9k_root_dir}/#(#b)$HOME(|\/*)/'~'$match[1]}
|
||||
typeset -gr __p9k_root_dir_u=${${${(q)__p9k_root_dir}/#(#b)${(q)HOME}(|\/*)/'~'$match[1]}//\%/%%}
|
||||
|
||||
function _p9k_can_configure() {
|
||||
emulate -L zsh
|
||||
setopt err_return extended_glob no_prompt_{bang,subst} prompt_{cr,percent,sp}
|
||||
setopt extended_glob no_prompt_{bang,subst} prompt_percent
|
||||
[[ $1 == '-q' ]] && local -i q=1 || local -i q=0
|
||||
function $0_error() {
|
||||
(( q )) || print -P "%1F[ERROR]%f %Bp9k_configure%b: $1" >&2
|
||||
return 1
|
||||
(( q )) || print -rP "%1F[ERROR]%f %Bp10k configure%b: $1" >&2
|
||||
}
|
||||
{
|
||||
[[ -t 0 && -t 1 ]] || $0_error "no TTY"
|
||||
[[ -o multibyte ]] || $0_error "multibyte option is not set"
|
||||
[[ "${#$(print -P '\u276F' 2>/dev/null)}" == 1 ]] || $0_error "shell doesn't support unicode"
|
||||
[[ -w $__p9k_zd ]] || $0_error "$__p9k_zd_u is not writable"
|
||||
[[ ! -d $__p9k_cfg_path ]] || $0_error "$__p9k_cfg_path_u is a directory"
|
||||
[[ ! -d $__p9k_zshrc ]] || $0_error "$__p9k_zshrc_u is a directory"
|
||||
[[ -t 0 && -t 1 ]] || { $0_error "no TTY"; return 1 }
|
||||
[[ -o multibyte ]] || { $0_error "multibyte option is not set"; return 1 }
|
||||
[[ -e $__p9k_zd ]] || { $0_error "$__p9k_zd_u does not exist"; return 1 }
|
||||
[[ -d $__p9k_zd ]] || { $0_error "$__p9k_zd_u is not a directory"; return 1 }
|
||||
[[ -w $__p9k_zd ]] || { $0_error "$__p9k_zd_u is not writable"; return 1 }
|
||||
[[ ! -d $__p9k_cfg_path ]] || { $0_error "$__p9k_cfg_path_u is a directory"; return 1 }
|
||||
[[ ! -d $__p9k_zshrc ]] || { $0_error "$__p9k_zshrc_u is a directory"; return 1 }
|
||||
|
||||
[[ ! -e $__p9k_cfg_path || -f $__p9k_cfg_path || -h $__p9k_cfg_path ]] ||
|
||||
[[ ! -e $__p9k_cfg_path || -f $__p9k_cfg_path || -h $__p9k_cfg_path ]] || {
|
||||
$0_error "$__p9k_cfg_path_u is a special file"
|
||||
[[ -r $__p9k_root_dir/config/p10k-lean.zsh ]] ||
|
||||
return 1
|
||||
}
|
||||
[[ -r $__p9k_root_dir/config/p10k-lean.zsh ]] || {
|
||||
$0_error "cannot read $__p9k_root_dir_u/config/p10k-lean.zsh"
|
||||
[[ -r $__p9k_root_dir/config/p10k-classic.zsh ]] ||
|
||||
return 1
|
||||
}
|
||||
[[ -r $__p9k_root_dir/config/p10k-classic.zsh ]] || {
|
||||
$0_error "cannot read $__p9k_root_dir_u/config/p10k-classic.zsh"
|
||||
[[ ! -e $__p9k_zshrc || -f $__p9k_zshrc || -h $__p9k_zshrc ]] ||
|
||||
return 1
|
||||
}
|
||||
[[ ! -e $__p9k_zshrc || -f $__p9k_zshrc || -h $__p9k_zshrc ]] || {
|
||||
$0_error "$__p9k_zshrc_u a special file"
|
||||
[[ ! -e $__p9k_zshrc || -r $__p9k_zshrc ]] ||
|
||||
return 1
|
||||
}
|
||||
[[ ! -e $__p9k_zshrc || -r $__p9k_zshrc ]] || {
|
||||
$0_error "$__p9k_zshrc_u is not readable"
|
||||
[[ ! -e $__p9k_zshrc || -w $__p9k_zshrc ]] ||
|
||||
return 1
|
||||
}
|
||||
[[ ! -e $__p9k_zshrc || -w $__p9k_zshrc ]] || {
|
||||
$0_error "$__p9k_zshrc_u is not writable"
|
||||
(( LINES >= __p9k_wizard_lines && COLUMNS >= __p9k_wizard_columns )) ||
|
||||
return 1
|
||||
}
|
||||
(( LINES >= __p9k_wizard_lines && COLUMNS >= __p9k_wizard_columns )) || {
|
||||
$0_error "terminal size too small; must be at least $__p9k_wizard_columns x $__p9k_wizard_lines"
|
||||
return 1
|
||||
}
|
||||
} always {
|
||||
unfunction $0_error
|
||||
}
|
||||
}
|
||||
|
||||
function p9k_configure() {
|
||||
emulate -L zsh && setopt no_hist_expand extended_glob
|
||||
$__p9k_root_dir/internal/wizard.zsh -d $__p9k_root_dir -f || return
|
||||
source $__p9k_cfg_path
|
||||
emulate -L zsh
|
||||
setopt no_hist_expand extended_glob
|
||||
(
|
||||
local p=("${(@)parameters[(I)AWESOME_*|CODEPOINT_*]}")
|
||||
if (( $#p )); then
|
||||
typeset -x -- $p
|
||||
fi
|
||||
$__p9k_root_dir/internal/wizard.zsh -d $__p9k_root_dir -f
|
||||
)
|
||||
local ret=$?
|
||||
case $ret in
|
||||
0) source $__p9k_cfg_path;;
|
||||
69) return 0;;
|
||||
*) return $ret;;
|
||||
esac
|
||||
}
|
||||
|
|
|
@ -3,6 +3,12 @@ typeset -gA icons
|
|||
function _p9k_init_icons() {
|
||||
[[ $+_p9k_icon_mode == 1 && $_p9k_icon_mode == $POWERLEVEL9K_MODE ]] && return
|
||||
typeset -g _p9k_icon_mode=$POWERLEVEL9K_MODE
|
||||
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}
|
||||
else
|
||||
typeset -g _p9k_locale=
|
||||
fi
|
||||
|
||||
case $POWERLEVEL9K_MODE in
|
||||
'flat'|'awesome-patched')
|
||||
|
@ -15,61 +21,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 ' # ↵
|
||||
ROOT_ICON '\uE801' #
|
||||
SUDO_ICON '\uF09C' #
|
||||
SUDO_ICON '\uE0A2' #
|
||||
RUBY_ICON '\uE847 ' #
|
||||
AWS_ICON '\uE895' #
|
||||
AWS_EB_ICON '\U1F331 ' # 🌱
|
||||
AWS_ICON '\uE895 ' #
|
||||
AWS_EB_ICON '\U1F331' # 🌱
|
||||
BACKGROUND_JOBS_ICON '\uE82F ' #
|
||||
TEST_ICON '\uE891' #
|
||||
TEST_ICON '\uE891 ' #
|
||||
TODO_ICON '\u2611' # ☑
|
||||
BATTERY_ICON '\uE894' #
|
||||
BATTERY_ICON '\uE894 ' #
|
||||
DISK_ICON '\uE1AE ' #
|
||||
OK_ICON '\u2714' # ✔
|
||||
FAIL_ICON '\u2718' # ✘
|
||||
SYMFONY_ICON 'SF'
|
||||
NODE_ICON '\u2B22' # ⬢
|
||||
NODE_ICON '\u2B22 ' # ⬢
|
||||
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 ' #
|
||||
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 ' #
|
||||
LOAD_ICON '\uE190 ' #
|
||||
SWAP_ICON '\uE87D' #
|
||||
SWAP_ICON '\uE87D ' #
|
||||
RAM_ICON '\uE1E2 ' #
|
||||
SERVER_ICON '\uE895' #
|
||||
VCS_UNTRACKED_ICON '\uE16C' #
|
||||
VCS_UNSTAGED_ICON '\uE17C' #
|
||||
VCS_STAGED_ICON '\uE168' #
|
||||
SERVER_ICON '\uE895 ' #
|
||||
VCS_UNTRACKED_ICON '\uE16C ' #
|
||||
VCS_UNSTAGED_ICON '\uE17C ' #
|
||||
VCS_STAGED_ICON '\uE168 ' #
|
||||
VCS_STASH_ICON '\uE133 ' #
|
||||
#VCS_INCOMING_CHANGES_ICON '\uE1EB ' #
|
||||
#VCS_INCOMING_CHANGES_ICON '\uE80D ' #
|
||||
|
@ -88,22 +94,27 @@ function _p9k_init_icons() {
|
|||
VCS_GIT_BITBUCKET_ICON '\uE20E ' #
|
||||
VCS_GIT_GITLAB_ICON '\uE20E ' #
|
||||
VCS_HG_ICON '\uE1C3 ' #
|
||||
VCS_SVN_ICON '(svn) '
|
||||
RUST_ICON '(rust)' # TODO: try 𝗥.
|
||||
PYTHON_ICON '\ue63c' #
|
||||
SWIFT_ICON ''
|
||||
GO_ICON ''
|
||||
PUBLIC_IP_ICON ''
|
||||
VCS_SVN_ICON 'svn'
|
||||
RUST_ICON 'R'
|
||||
PYTHON_ICON '\uE63C ' # (doesn't always work)
|
||||
SWIFT_ICON 'Swift'
|
||||
GO_ICON 'Go'
|
||||
PUBLIC_IP_ICON 'IP'
|
||||
LOCK_ICON '\UE138' #
|
||||
EXECUTION_TIME_ICON '\UE89C' #
|
||||
SSH_ICON '(ssh)'
|
||||
VPN_ICON '(vpn)'
|
||||
KUBERNETES_ICON '\U2388' # ⎈
|
||||
DROPBOX_ICON '\UF16B' #
|
||||
DATE_ICON '\uE184' #
|
||||
TIME_ICON '\uE12E' #
|
||||
EXECUTION_TIME_ICON '\UE89C ' #
|
||||
SSH_ICON 'ssh'
|
||||
VPN_ICON '\UE138'
|
||||
KUBERNETES_ICON '\U2388 ' # ⎈
|
||||
DROPBOX_ICON '\UF16B ' # (doesn't always work)
|
||||
DATE_ICON '\uE184 ' #
|
||||
TIME_ICON '\uE12E ' #
|
||||
JAVA_ICON '\U2615' # ☕︎
|
||||
LARAVEL_ICON ''
|
||||
RANGER_ICON '\u2B50' # ⭐
|
||||
TERRAFORM_ICON '\U1F6E0\u00A0' # 🛠️
|
||||
PROXY_ICON '\u2B82' # ⮂
|
||||
DOTNET_ICON '.NET'
|
||||
AZURE_ICON '\u2601' # ☁
|
||||
)
|
||||
;;
|
||||
'awesome-fontconfig')
|
||||
|
@ -117,13 +128,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 ' #
|
||||
SUDO_ICON '\uF09C ' #
|
||||
RUBY_ICON '\uF219 ' #
|
||||
AWS_ICON '\uF270' #
|
||||
AWS_EB_ICON '\U1F331 ' # 🌱
|
||||
AWS_ICON '\uF270 ' #
|
||||
AWS_EB_ICON '\U1F331' # 🌱
|
||||
BACKGROUND_JOBS_ICON '\uF013 ' #
|
||||
TEST_ICON '\uF291' #
|
||||
TEST_ICON '\uF291 ' #
|
||||
TODO_ICON '\u2611' # ☑
|
||||
BATTERY_ICON '\U1F50B' # 🔋
|
||||
DISK_ICON '\uF0A0 ' #
|
||||
|
@ -134,48 +145,48 @@ 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' #
|
||||
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 ' #
|
||||
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 ' #
|
||||
SUNOS_ICON '\uF185 ' #
|
||||
HOME_ICON '\uF015' #
|
||||
HOME_SUB_ICON '\uF07C' #
|
||||
FOLDER_ICON '\uF115' #
|
||||
HOME_ICON '\uF015 ' #
|
||||
HOME_SUB_ICON '\uF07C ' #
|
||||
FOLDER_ICON '\uF115 ' #
|
||||
ETC_ICON '\uF013 ' #
|
||||
NETWORK_ICON '\uF09E' #
|
||||
NETWORK_ICON '\uF09E ' #
|
||||
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 ' #
|
||||
RAM_ICON '\uF0E4 ' #
|
||||
SERVER_ICON '\uF233 ' #
|
||||
VCS_UNTRACKED_ICON '\uF059 ' #
|
||||
VCS_UNSTAGED_ICON '\uF06A ' #
|
||||
VCS_STAGED_ICON '\uF055 ' #
|
||||
VCS_STASH_ICON '\uF01C ' #
|
||||
VCS_INCOMING_CHANGES_ICON '\uF01A ' #
|
||||
VCS_OUTGOING_CHANGES_ICON '\uF01B ' #
|
||||
VCS_TAG_ICON '\uF217 ' #
|
||||
VCS_BOOKMARK_ICON '\uF27B' #
|
||||
VCS_BOOKMARK_ICON '\uF27B ' #
|
||||
VCS_COMMIT_ICON '\uF221 ' #
|
||||
VCS_BRANCH_ICON '\uF126 ' #
|
||||
VCS_REMOTE_BRANCH_ICON '\u2192' # →
|
||||
|
@ -185,22 +196,27 @@ 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'
|
||||
RUST_ICON '\uE6A8' #
|
||||
PYTHON_ICON '\ue63c' #
|
||||
SWIFT_ICON ''
|
||||
GO_ICON ''
|
||||
PUBLIC_IP_ICON ''
|
||||
PYTHON_ICON '\uE63C ' #
|
||||
SWIFT_ICON 'Swift'
|
||||
GO_ICON 'Go'
|
||||
PUBLIC_IP_ICON 'IP'
|
||||
LOCK_ICON '\UF023' #
|
||||
EXECUTION_TIME_ICON '\uF253'
|
||||
SSH_ICON '(ssh)'
|
||||
EXECUTION_TIME_ICON '\uF253 ' #
|
||||
SSH_ICON 'ssh'
|
||||
VPN_ICON '\uF023'
|
||||
KUBERNETES_ICON '\U2388' # ⎈
|
||||
DROPBOX_ICON '\UF16B' #
|
||||
DROPBOX_ICON '\UF16B ' #
|
||||
DATE_ICON '\uF073 ' #
|
||||
TIME_ICON '\uF017 ' #
|
||||
JAVA_ICON '\U2615' # ☕︎
|
||||
LARAVEL_ICON ''
|
||||
RANGER_ICON '\u2B50' # ⭐
|
||||
TERRAFORM_ICON '\U1F6E0\u00A0' # 🛠️
|
||||
PROXY_ICON '\u2B82' # ⮂
|
||||
DOTNET_ICON '.NET'
|
||||
AZURE_ICON '\u2601' # ☁
|
||||
)
|
||||
;;
|
||||
'awesome-mapped-fontconfig')
|
||||
|
@ -222,57 +238,57 @@ function _p9k_init_icons() {
|
|||
RIGHT_SUBSEGMENT_SEPARATOR '\uE0B3' #
|
||||
CARRIAGE_RETURN_ICON '\u21B5' # ↵
|
||||
ROOT_ICON '\u'$CODEPOINT_OF_OCTICONS_ZAP #
|
||||
SUDO_ICON '\u'$CODEPOINT_OF_AWESOME_UNLOCK #
|
||||
SUDO_ICON '\u'$CODEPOINT_OF_AWESOME_UNLOCK' ' #
|
||||
RUBY_ICON '\u'$CODEPOINT_OF_OCTICONS_RUBY' ' #
|
||||
AWS_ICON '\u'$CODEPOINT_OF_AWESOME_SERVER #
|
||||
AWS_EB_ICON '\U1F331 ' # 🌱
|
||||
AWS_ICON '\u'$CODEPOINT_OF_AWESOME_SERVER' ' #
|
||||
AWS_EB_ICON '\U1F331' # 🌱
|
||||
BACKGROUND_JOBS_ICON '\u'$CODEPOINT_OF_AWESOME_COG' ' #
|
||||
TEST_ICON '\u'$CODEPOINT_OF_AWESOME_BUG #
|
||||
TODO_ICON '\u'$CODEPOINT_OF_AWESOME_CHECK_SQUARE_O #
|
||||
BATTERY_ICON '\U'$CODEPOINT_OF_AWESOME_BATTERY_FULL #
|
||||
TEST_ICON '\u'$CODEPOINT_OF_AWESOME_BUG' ' #
|
||||
TODO_ICON '\u'$CODEPOINT_OF_AWESOME_CHECK_SQUARE_O' ' #
|
||||
BATTERY_ICON '\U'$CODEPOINT_OF_AWESOME_BATTERY_FULL' ' #
|
||||
DISK_ICON '\u'$CODEPOINT_OF_AWESOME_HDD_O' ' #
|
||||
OK_ICON '\u'$CODEPOINT_OF_AWESOME_CHECK #
|
||||
FAIL_ICON '\u'$CODEPOINT_OF_AWESOME_TIMES #
|
||||
OK_ICON '\u'$CODEPOINT_OF_AWESOME_CHECK' ' #
|
||||
FAIL_ICON '\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 '\u'$CODEPOINT_OF_AWESOME_APPLE #
|
||||
FREEBSD_ICON '\U1F608 ' # 😈
|
||||
LINUX_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX #
|
||||
LINUX_ARCH_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX #
|
||||
LINUX_DEBIAN_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX #
|
||||
LINUX_RASPBIAN_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX #
|
||||
LINUX_UBUNTU_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX #
|
||||
LINUX_CENTOS_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX #
|
||||
LINUX_COREOS_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX #
|
||||
LINUX_ELEMENTARY_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX #
|
||||
LINUX_MINT_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX #
|
||||
LINUX_FEDORA_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX #
|
||||
LINUX_GENTOO_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX #
|
||||
LINUX_MAGEIA_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX #
|
||||
LINUX_NIXOS_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX #
|
||||
LINUX_MANJARO_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX #
|
||||
LINUX_DEVUAN_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX #
|
||||
LINUX_ALPINE_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX #
|
||||
LINUX_AOSC_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX #
|
||||
LINUX_OPENSUSE_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX #
|
||||
LINUX_SABAYON_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX #
|
||||
LINUX_SLACKWARE_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX #
|
||||
APPLE_ICON '\u'$CODEPOINT_OF_AWESOME_APPLE' ' #
|
||||
FREEBSD_ICON '\U1F608' # 😈
|
||||
LINUX_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX' ' #
|
||||
LINUX_ARCH_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX' ' #
|
||||
LINUX_DEBIAN_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX' ' #
|
||||
LINUX_RASPBIAN_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX' ' #
|
||||
LINUX_UBUNTU_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX' ' #
|
||||
LINUX_CENTOS_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX' ' #
|
||||
LINUX_COREOS_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX' ' #
|
||||
LINUX_ELEMENTARY_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX' ' #
|
||||
LINUX_MINT_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX' ' #
|
||||
LINUX_FEDORA_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX' ' #
|
||||
LINUX_GENTOO_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX' ' #
|
||||
LINUX_MAGEIA_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX' ' #
|
||||
LINUX_NIXOS_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX' ' #
|
||||
LINUX_MANJARO_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX' ' #
|
||||
LINUX_DEVUAN_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX' ' #
|
||||
LINUX_ALPINE_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX' ' #
|
||||
LINUX_AOSC_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX' ' #
|
||||
LINUX_OPENSUSE_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX' ' #
|
||||
LINUX_SABAYON_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX' ' #
|
||||
LINUX_SLACKWARE_ICON '\u'$CODEPOINT_OF_AWESOME_LINUX' ' #
|
||||
SUNOS_ICON '\u'$CODEPOINT_OF_AWESOME_SUN_O' ' #
|
||||
HOME_ICON '\u'$CODEPOINT_OF_AWESOME_HOME #
|
||||
HOME_SUB_ICON '\u'$CODEPOINT_OF_AWESOME_FOLDER_OPEN #
|
||||
FOLDER_ICON '\u'$CODEPOINT_OF_AWESOME_FOLDER_O #
|
||||
HOME_ICON '\u'$CODEPOINT_OF_AWESOME_HOME' ' #
|
||||
HOME_SUB_ICON '\u'$CODEPOINT_OF_AWESOME_FOLDER_OPEN' ' #
|
||||
FOLDER_ICON '\u'$CODEPOINT_OF_AWESOME_FOLDER_O' ' #
|
||||
ETC_ICON '\u'$CODEPOINT_OF_AWESOME_COG' ' #
|
||||
NETWORK_ICON '\u'$CODEPOINT_OF_AWESOME_RSS #
|
||||
NETWORK_ICON '\u'$CODEPOINT_OF_AWESOME_RSS' ' #
|
||||
LOAD_ICON '\u'$CODEPOINT_OF_AWESOME_BAR_CHART' ' #
|
||||
SWAP_ICON '\u'$CODEPOINT_OF_AWESOME_DASHBOARD #
|
||||
RAM_ICON '\u'$CODEPOINT_OF_AWESOME_DASHBOARD #
|
||||
SERVER_ICON '\u'$CODEPOINT_OF_AWESOME_SERVER #
|
||||
VCS_UNTRACKED_ICON '\u'$CODEPOINT_OF_AWESOME_QUESTION_CIRCLE #
|
||||
VCS_UNSTAGED_ICON '\u'$CODEPOINT_OF_AWESOME_EXCLAMATION_CIRCLE #
|
||||
VCS_STAGED_ICON '\u'$CODEPOINT_OF_AWESOME_PLUS_CIRCLE #
|
||||
SWAP_ICON '\u'$CODEPOINT_OF_AWESOME_DASHBOARD' ' #
|
||||
RAM_ICON '\u'$CODEPOINT_OF_AWESOME_DASHBOARD' ' #
|
||||
SERVER_ICON '\u'$CODEPOINT_OF_AWESOME_SERVER' ' #
|
||||
VCS_UNTRACKED_ICON '\u'$CODEPOINT_OF_AWESOME_QUESTION_CIRCLE' ' #
|
||||
VCS_UNSTAGED_ICON '\u'$CODEPOINT_OF_AWESOME_EXCLAMATION_CIRCLE' ' #
|
||||
VCS_STAGED_ICON '\u'$CODEPOINT_OF_AWESOME_PLUS_CIRCLE' ' #
|
||||
VCS_STASH_ICON '\u'$CODEPOINT_OF_AWESOME_INBOX' ' #
|
||||
VCS_INCOMING_CHANGES_ICON '\u'$CODEPOINT_OF_AWESOME_ARROW_CIRCLE_DOWN' ' #
|
||||
VCS_OUTGOING_CHANGES_ICON '\u'$CODEPOINT_OF_AWESOME_ARROW_CIRCLE_UP' ' #
|
||||
|
@ -280,28 +296,33 @@ function _p9k_init_icons() {
|
|||
VCS_BOOKMARK_ICON '\u'$CODEPOINT_OF_OCTICONS_BOOKMARK #
|
||||
VCS_COMMIT_ICON '\u'$CODEPOINT_OF_OCTICONS_GIT_COMMIT' ' #
|
||||
VCS_BRANCH_ICON '\u'$CODEPOINT_OF_OCTICONS_GIT_BRANCH' ' #
|
||||
VCS_REMOTE_BRANCH_ICON '\u'$CODEPOINT_OF_OCTICONS_REPO_PUSH #
|
||||
VCS_REMOTE_BRANCH_ICON '\u'$CODEPOINT_OF_OCTICONS_REPO_PUSH' ' #
|
||||
VCS_LOADING_ICON ''
|
||||
VCS_GIT_ICON '\u'$CODEPOINT_OF_AWESOME_GIT' ' #
|
||||
VCS_GIT_GITHUB_ICON '\u'$CODEPOINT_OF_AWESOME_GITHUB_ALT' ' #
|
||||
VCS_GIT_BITBUCKET_ICON '\u'$CODEPOINT_OF_AWESOME_BITBUCKET' ' #
|
||||
VCS_GIT_GITLAB_ICON '\u'$CODEPOINT_OF_AWESOME_GITLAB' ' #
|
||||
VCS_HG_ICON '\u'$CODEPOINT_OF_AWESOME_FLASK' ' #
|
||||
VCS_SVN_ICON '(svn) '
|
||||
VCS_SVN_ICON 'svn'
|
||||
RUST_ICON '\uE6A8' #
|
||||
PYTHON_ICON '\U1F40D' # 🐍
|
||||
SWIFT_ICON '\uE655' #
|
||||
PUBLIC_IP_ICON '\u'$CODEPOINT_OF_AWESOME_GLOBE #
|
||||
SWIFT_ICON '\uE655 ' #
|
||||
PUBLIC_IP_ICON '\u'$CODEPOINT_OF_AWESOME_GLOBE' ' #
|
||||
LOCK_ICON '\u'$CODEPOINT_OF_AWESOME_LOCK #
|
||||
EXECUTION_TIME_ICON '\u'$CODEPOINT_OF_AWESOME_HOURGLASS_END #
|
||||
SSH_ICON '(ssh)'
|
||||
EXECUTION_TIME_ICON '\u'$CODEPOINT_OF_AWESOME_HOURGLASS_END' ' #
|
||||
SSH_ICON 'ssh'
|
||||
VPN_ICON '\u'$CODEPOINT_OF_AWESOME_LOCK
|
||||
KUBERNETES_ICON '\U2388' # ⎈
|
||||
DROPBOX_ICON '\u'$CODEPOINT_OF_AWESOME_DROPBOX #
|
||||
DROPBOX_ICON '\u'$CODEPOINT_OF_AWESOME_DROPBOX' ' #
|
||||
DATE_ICON '\uF073 ' #
|
||||
TIME_ICON '\uF017 ' #
|
||||
JAVA_ICON '\U2615' # ☕︎
|
||||
LARAVEL_ICON ''
|
||||
RANGER_ICON '\u2B50' # ⭐
|
||||
TERRAFORM_ICON '\U1F6E0\u00A0' # 🛠️
|
||||
PROXY_ICON '\u2B82' # ⮂
|
||||
DOTNET_ICON '.NET'
|
||||
AZURE_ICON '\u2601' # ☁
|
||||
)
|
||||
;;
|
||||
'nerdfont-complete'|'nerdfont-fontconfig')
|
||||
|
@ -316,17 +337,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' #
|
||||
SUDO_ICON '\uF09C ' #
|
||||
RUBY_ICON '\uF219 ' #
|
||||
AWS_ICON '\uF270' #
|
||||
AWS_EB_ICON '\UF1BD ' #
|
||||
AWS_ICON '\uF270 ' #
|
||||
AWS_EB_ICON '\UF1BD' #
|
||||
BACKGROUND_JOBS_ICON '\uF013 ' #
|
||||
TEST_ICON '\uF188' #
|
||||
TODO_ICON '\uF133' #
|
||||
TEST_ICON '\uF188 ' #
|
||||
TODO_ICON '\uF133 ' #
|
||||
BATTERY_ICON '\UF240 ' #
|
||||
DISK_ICON '\uF0A0' #
|
||||
OK_ICON '\uF00C' #
|
||||
DISK_ICON '\uF0A0 ' #
|
||||
OK_ICON '\uF00C ' #
|
||||
FAIL_ICON '\uF00D' #
|
||||
SYMFONY_ICON '\uE757' #
|
||||
NODE_ICON '\uE617 ' #
|
||||
|
@ -334,42 +355,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 ' #
|
||||
FREEBSD_ICON '\UF30C ' #
|
||||
ANDROID_ICON '\uF17B' #
|
||||
LINUX_ARCH_ICON '\uF303' #
|
||||
LINUX_CENTOS_ICON '\uF304' #
|
||||
LINUX_COREOS_ICON '\uF305' #
|
||||
LINUX_CENTOS_ICON '\uF304 ' #
|
||||
LINUX_COREOS_ICON '\uF305 ' #
|
||||
LINUX_DEBIAN_ICON '\uF306' #
|
||||
LINUX_RASPBIAN_ICON '\uF315' #
|
||||
LINUX_ELEMENTARY_ICON '\uF309' #
|
||||
LINUX_FEDORA_ICON '\uF30a' #
|
||||
LINUX_GENTOO_ICON '\uF30d' #
|
||||
LINUX_ELEMENTARY_ICON '\uF309 ' #
|
||||
LINUX_FEDORA_ICON '\uF30a ' #
|
||||
LINUX_GENTOO_ICON '\uF30d ' #
|
||||
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 ' #
|
||||
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_ICON '\uF17C' #
|
||||
SUNOS_ICON '\uF185 ' #
|
||||
HOME_ICON '\uF015' #
|
||||
HOME_SUB_ICON '\uF07C' #
|
||||
FOLDER_ICON '\uF115' #
|
||||
ETC_ICON '\uF013' #
|
||||
NETWORK_ICON '\uF1EB' #
|
||||
HOME_ICON '\uF015 ' #
|
||||
HOME_SUB_ICON '\uF07C ' #
|
||||
FOLDER_ICON '\uF115 ' #
|
||||
ETC_ICON '\uF013 ' #
|
||||
NETWORK_ICON '\uF1EB ' #
|
||||
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 ' #
|
||||
RAM_ICON '\uF0E4 ' #
|
||||
SERVER_ICON '\uF0AE ' #
|
||||
VCS_UNTRACKED_ICON '\uF059 ' #
|
||||
VCS_UNSTAGED_ICON '\uF06A ' #
|
||||
VCS_STAGED_ICON '\uF055 ' #
|
||||
VCS_STASH_ICON '\uF01C ' #
|
||||
VCS_INCOMING_CHANGES_ICON '\uF01A ' #
|
||||
VCS_OUTGOING_CHANGES_ICON '\uF01B ' #
|
||||
|
@ -384,22 +405,27 @@ 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' #
|
||||
RUST_ICON '\uE7A8' #
|
||||
PYTHON_ICON '\UE73C ' #
|
||||
SWIFT_ICON '\uE755' #
|
||||
GO_ICON '\uE626' #
|
||||
PUBLIC_IP_ICON '\UF0AC' #
|
||||
PUBLIC_IP_ICON '\UF0AC ' #
|
||||
LOCK_ICON '\UF023' #
|
||||
EXECUTION_TIME_ICON '\uF252' #
|
||||
SSH_ICON '\uF489' #
|
||||
VPN_ICON '(vpn)'
|
||||
EXECUTION_TIME_ICON '\uF252 ' #
|
||||
SSH_ICON '\uF489 ' #
|
||||
VPN_ICON '\UF023'
|
||||
KUBERNETES_ICON '\U2388' # ⎈
|
||||
DROPBOX_ICON '\UF16B' #
|
||||
DROPBOX_ICON '\UF16B ' #
|
||||
DATE_ICON '\uF073 ' #
|
||||
TIME_ICON '\uF017 ' #
|
||||
JAVA_ICON '\U2615' # ☕︎
|
||||
LARAVEL_ICON '\ue73f ' #
|
||||
LARAVEL_ICON '\ue73f' #
|
||||
RANGER_ICON '\u2B50' # ⭐
|
||||
TERRAFORM_ICON '\U1F6E0\u00A0' # 🛠️
|
||||
PROXY_ICON '\u2B82' # ⮂
|
||||
DOTNET_ICON '\uE77F' #
|
||||
AZURE_ICON '\uFD03' # ﴃ
|
||||
)
|
||||
;;
|
||||
*)
|
||||
|
@ -414,10 +440,10 @@ function _p9k_init_icons() {
|
|||
RIGHT_SUBSEGMENT_SEPARATOR '\uE0B3' #
|
||||
CARRIAGE_RETURN_ICON '\u21B5' # ↵
|
||||
ROOT_ICON '\u26A1' # ⚡
|
||||
SUDO_ICON '\uE0A2' #
|
||||
SUDO_ICON ''
|
||||
RUBY_ICON 'Ruby'
|
||||
AWS_ICON 'AWS'
|
||||
AWS_EB_ICON '\U1F331 ' # 🌱
|
||||
AWS_EB_ICON '\U1F331' # 🌱
|
||||
BACKGROUND_JOBS_ICON '\u2699' # ⚙
|
||||
TEST_ICON ''
|
||||
TODO_ICON '\u2611' # ☑
|
||||
|
@ -482,11 +508,11 @@ function _p9k_init_icons() {
|
|||
VCS_GIT_GITLAB_ICON ''
|
||||
VCS_HG_ICON ''
|
||||
VCS_SVN_ICON ''
|
||||
RUST_ICON 'Rust' # TODO: try 𝗥.
|
||||
RUST_ICON 'R'
|
||||
PYTHON_ICON 'Py'
|
||||
SWIFT_ICON 'Swift'
|
||||
GO_ICON 'Go'
|
||||
PUBLIC_IP_ICON ''
|
||||
PUBLIC_IP_ICON 'IP'
|
||||
LOCK_ICON '\UE0A2'
|
||||
EXECUTION_TIME_ICON ''
|
||||
SSH_ICON 'ssh'
|
||||
|
@ -497,6 +523,11 @@ function _p9k_init_icons() {
|
|||
TIME_ICON ''
|
||||
JAVA_ICON '\U2615' # ☕︎
|
||||
LARAVEL_ICON ''
|
||||
RANGER_ICON '\u2B50' # ⭐
|
||||
TERRAFORM_ICON '\U1F6E0\u00A0' # 🛠️
|
||||
PROXY_ICON '\u2B82' # ⮂
|
||||
DOTNET_ICON '.NET'
|
||||
AZURE_ICON '\u2601' # ☁
|
||||
)
|
||||
;;
|
||||
esac
|
||||
|
@ -518,9 +549,11 @@ function _p9k_init_icons() {
|
|||
}
|
||||
|
||||
# Sadly, this is a part of public API. Its use is emphatically discouraged.
|
||||
function print_icon() {
|
||||
function _p9k_print_icon() {
|
||||
emulate -L zsh
|
||||
setopt no_hist_expand extended_glob no_prompt_bang prompt_{percent,subst}
|
||||
_p9k_init_icons
|
||||
[[ -z $_p9k_locale ]] || local LC_ALL=$_p9k_locale
|
||||
local icon_name=$1
|
||||
local var_name=POWERLEVEL9K_${icon_name}
|
||||
if [[ -n "${(tP)var_name}" ]]; then
|
||||
|
@ -535,9 +568,11 @@ function print_icon() {
|
|||
# * $1 string - If "original", then the original icons are printed,
|
||||
# otherwise "print_icon" is used, which takes the users
|
||||
# overrides into account.
|
||||
function get_icon_names() {
|
||||
function _p9k_get_icon_names() {
|
||||
emulate -L zsh
|
||||
setopt no_hist_expand extended_glob no_prompt_bang prompt_{percent,subst}
|
||||
_p9k_init_icons
|
||||
[[ -z $_p9k_locale ]] || local LC_ALL=$_p9k_locale
|
||||
# Iterate over a ordered list of keys of the icons array
|
||||
for key in ${(@kon)icons}; do
|
||||
echo -n "POWERLEVEL9K_$key: "
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1 +0,0 @@
|
|||
powerlevel9k.zsh-theme
|
|
@ -0,0 +1,44 @@
|
|||
# vim:ft=zsh ts=2 sw=2 sts=2 et fenc=utf-8
|
||||
################################################################
|
||||
# Powerlevel10k Theme
|
||||
# https://github.com/romkatv/powerlevel10k
|
||||
#
|
||||
# Forked from Powerlevel9k Theme
|
||||
# https://github.com/bhilburn/powerlevel9k
|
||||
#
|
||||
# Which in turn was forked from Agnoster Theme
|
||||
# https://github.com/robbyrussell/oh-my-zsh/blob/74177c5320b2a1b2f8c4c695c05984b57fd7c6ea/themes/agnoster.zsh-theme
|
||||
################################################################
|
||||
|
||||
# Temporarily change options.
|
||||
'builtin' 'local' '-a' '__p9k_src_opts'
|
||||
[[ ! -o 'aliases' ]] || __p9k_src_opts+=('aliases')
|
||||
[[ ! -o 'sh_glob' ]] || __p9k_src_opts+=('sh_glob')
|
||||
[[ ! -o 'no_brace_expand' ]] || __p9k_src_opts+=('no_brace_expand')
|
||||
'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand'
|
||||
|
||||
(( $+__p9k_root_dir )) || typeset -gr __p9k_root_dir=${POWERLEVEL9K_INSTALLATION_DIR:-${${(%):-%x}:A:h}}
|
||||
|
||||
() {
|
||||
emulate -L zsh
|
||||
setopt no_hist_expand extended_glob no_prompt_bang no_prompt_subst prompt_percent no_aliases
|
||||
if (( $+__p9k_sourced )); then
|
||||
prompt_powerlevel9k_setup
|
||||
return
|
||||
fi
|
||||
typeset -gr __p9k_dump_file=${XDG_CACHE_HOME:-~/.cache}/p10k-dump-${(%):-%n}.zsh
|
||||
if [[ -z $__p9k_dump_file(.zwc|)(#qNW) ]] && source $__p9k_dump_file 2>/dev/null && (( $+functions[_p9k_preinit] )); then
|
||||
_p9k_preinit
|
||||
fi
|
||||
typeset -gr __p9k_sourced=1
|
||||
if [[ -w $__p9k_root_dir && -w $__p9k_root_dir/internal && -w $__p9k_root_dir/gitstatus && ${(%):-%#} == % ]]; then
|
||||
local f
|
||||
for f in $__p9k_root_dir/{powerlevel9k.zsh-theme,powerlevel10k.zsh-theme,internal/p10k.zsh,internal/icons.zsh,internal/configure.zsh,gitstatus/gitstatus.plugin.zsh}; do
|
||||
[[ $f.zwc -nt $f ]] || zcompile $f
|
||||
done
|
||||
fi
|
||||
source $__p9k_root_dir/internal/p10k.zsh || true
|
||||
}
|
||||
|
||||
(( ${#__p9k_src_opts} )) && setopt ${__p9k_src_opts[@]}
|
||||
'builtin' 'unset' '__p9k_src_opts'
|
|
@ -1,53 +1 @@
|
|||
# vim:ft=zsh ts=2 sw=2 sts=2 et fenc=utf-8
|
||||
################################################################
|
||||
# Powerlevel10k Theme
|
||||
# https://github.com/romkatv/powerlevel10k
|
||||
#
|
||||
# Forked from Powerlevel9k Theme
|
||||
# https://github.com/bhilburn/powerlevel9k
|
||||
#
|
||||
# Which in turn was forked from Agnoster Theme
|
||||
# https://github.com/robbyrussell/oh-my-zsh/blob/74177c5320b2a1b2f8c4c695c05984b57fd7c6ea/themes/agnoster.zsh-theme
|
||||
################################################################
|
||||
|
||||
if [[ -o 'aliases' ]]; then
|
||||
'builtin' 'unsetopt' 'aliases'
|
||||
local __p9k_restore_aliases=1
|
||||
else
|
||||
local __p9k_restore_aliases=0
|
||||
fi
|
||||
|
||||
() {
|
||||
emulate -L zsh
|
||||
|
||||
if (( $+__p9k_sourced )); then
|
||||
prompt_powerlevel9k_setup
|
||||
return
|
||||
fi
|
||||
typeset -gr __p9k_sourced=1
|
||||
typeset -g __p9k_root_dir=''
|
||||
|
||||
if [[ -n $POWERLEVEL9K_INSTALLATION_DIR ]]; then
|
||||
__p9k_root_dir=${POWERLEVEL9K_INSTALLATION_DIR:A}
|
||||
else
|
||||
if [[ ${(%):-%N} == '(eval)' ]]; then
|
||||
if [[ $0 == '-antigen-load' && -r powerlevel9k.zsh-theme ]]; then
|
||||
# Antigen uses eval to load things so it can change the plugin (!!)
|
||||
# https://github.com/zsh-users/antigen/issues/581
|
||||
__p9k_root_dir=$PWD
|
||||
else
|
||||
>&2 print -P '%F{red}[ERROR]%f Powerlevel10k cannot figure out its installation directory.'
|
||||
>&2 print -P 'Please set %F{green}POWERLEVEL9K_INSTALLATION_DIR.%f'
|
||||
return
|
||||
fi
|
||||
else
|
||||
__p9k_root_dir=${${(%):-%x}:A:h}
|
||||
fi
|
||||
fi
|
||||
|
||||
typeset -gr __p9k_root_dir
|
||||
source $__p9k_root_dir/internal/p10k.zsh || true
|
||||
}
|
||||
|
||||
(( ! __p9k_restore_aliases )) || setopt aliases
|
||||
'builtin' 'unset' '__p9k_restore_aliases'
|
||||
'builtin' 'source' "${POWERLEVEL9K_INSTALLATION_DIR:-${${(%):-%x}:A:h}}/powerlevel10k.zsh-theme"
|
||||
|
|
BIN
prompt.png
BIN
prompt.png
Binary file not shown.
Before Width: | Height: | Size: 6.0 KiB |
|
@ -1 +0,0 @@
|
|||
prompt_powerlevel9k_setup
|
|
@ -0,0 +1 @@
|
|||
'builtin' 'source' "${POWERLEVEL9K_INSTALLATION_DIR:-${${(%):-%x}:A:h}}/powerlevel10k.zsh-theme"
|
|
@ -1 +0,0 @@
|
|||
powerlevel9k.zsh-theme
|
|
@ -0,0 +1 @@
|
|||
'builtin' 'source' "${POWERLEVEL9K_INSTALLATION_DIR:-${${(%):-%x}:A:h}}/powerlevel10k.zsh-theme"
|
Loading…
Reference in New Issue