mirror of
https://github.com/romkatv/powerlevel10k.git
synced 2024-11-16 09:50:06 +00:00
docs
This commit is contained in:
parent
e54b52ad26
commit
afd7732058
2 changed files with 70 additions and 19 deletions
89
README.md
89
README.md
|
@ -4,25 +4,32 @@ Powerlevel10k is a theme for ZSH. It's a backward-compatible fork of
|
|||
[Powerlevel9k](https://github.com/bhilburn/powerlevel9k) with lower latency and better
|
||||
prompt responsiveness.
|
||||
|
||||
If you like the look and feel of Powerlevel9k but feeling frustrated by the
|
||||
slow prompt, simply replace your `powerlevel9k` theme with `powerlevel10k` and
|
||||
enjoy responsive shell like it's 80's again!
|
||||
If you like the looks of Powerlevel9k but feeling frustrated by its slow prompt,
|
||||
simply replace your `powerlevel9k` theme with `powerlevel10k` and enjoy responsive
|
||||
shell like it's 80's again!
|
||||
|
||||
Powerlevel10k uses the same configuration options as Powerlevel9k and produces the
|
||||
same results. It's simply faster. There is no catch.
|
||||
|
||||
If you are on Linux or WSL, consider enabling [gitstatus](https://github.com/romkatv/gitstatus)
|
||||
plugin for massive performance improvement in vcs/prompt segment. It works well with Powerlevel10k.
|
||||
plugin for massive performance improvement in the vcs/prompt segment.
|
||||
|
||||
## Installation & Configuration
|
||||
|
||||
For installation and configuration instructions, see
|
||||
For installation and configuration instructions see
|
||||
[Powerlevel9k](https://github.com/bhilburn/powerlevel9k). Everything in there applies to
|
||||
Powerlevel10k as well. Follow the installation guide, make sure everything works and you like
|
||||
the way prompt looks. Then simply replace `powerlevel9k.zsh-theme` with the one from Powerlevel10k
|
||||
([link](https://github.com/romkatv/powerlevel10k/blob/master/powerlevel9k.zsh-theme)). Or replace
|
||||
the whole `powerlevel9k` directory to gain the ability to `git pull` updates in the future. Once
|
||||
you restart zsh, your prompt will be faster.
|
||||
Powerlevel10k as well. Follow the official installation guide, make sure everything works
|
||||
and you like the way prompt looks. Then simply replace file `powerlevel9k.zsh-theme` with
|
||||
the one from Powerlevel10k
|
||||
([link](https://github.com/romkatv/powerlevel10k/blob/master/powerlevel9k.zsh-theme)).
|
||||
Or replace the whole `powerlevel9k` directory to gain the ability to `git pull` updates
|
||||
in the future. Once you restart zsh, your prompt will be faster.
|
||||
|
||||
```zsh
|
||||
# Assuming oh-my-zsh at the standard location. Adjust to your circumstances.
|
||||
rm -rf ~/.oh-my-zsh/custom/themes/powerlevel9k
|
||||
git clone git@github.com:romkatv/powerlevel10k.git ~/.oh-my-zsh/custom/themes/powerlevel9k
|
||||
```
|
||||
|
||||
**Do not load both Powerlevel9k and Powerlevel10k themes at the same time. Variable name
|
||||
clashes will cause mayhem. Source either one or the other. Consider Powerlevel10k
|
||||
|
@ -30,15 +37,59 @@ a patched fork of Powerlevel9k, which it is.**
|
|||
|
||||
## How fast is it?
|
||||
|
||||
Powerlevel10k with [gitstatus](https://github.com/romkatv/gitstatus) renders prompt 5+ times
|
||||
faster than Powerlevel9k. In some cases it can be over 10 times faster. When using Linux,
|
||||
you should expect less than 50ms prompt latency in most cases, about 100ms in large git
|
||||
repos and 200ms in huge repos such as Linux kernel. To get comfortable upper bound on
|
||||
latency in any repo, set `GITSTATUS_DIRTY_MAX_INDEX_SIZE=4096`. It'll disable dirty file
|
||||
scanning in repos with over 4k files. This should give you under 100ms prompt latency
|
||||
everywhere.
|
||||
Powerlevel10k with [gitstatus](https://github.com/romkatv/gitstatus) renders prompt about
|
||||
10 times faster than powerlevel9k/master (stable version) and about 4 times faster than
|
||||
powerlevel9k/next (beta version). Powerlevel10k is faster than Powerlevel9k even without
|
||||
[gitstatus](https://github.com/romkatv/gitstatus) but the difference isn't as dramatic.
|
||||
|
||||
Here's are benchmark results obtained with
|
||||
[zsh-prompt-benchmark](https://github.com/romkatv/zsh-prompt-benchmark) on Intel i9-7900X
|
||||
running Ubuntu 18.04.
|
||||
|
||||
| Theme | / | ~/testrepo | ~/nerd-fonts | ~/linux |
|
||||
|----------------------------|-------:|-----------:|-------------:|--------:|
|
||||
| powerlevel9k/master | 135 ms | 207 ms | 234 ms | 326 ms |
|
||||
| powerlevel9k/next | 47 ms | 101 ms | 122 ms | 213 ms |
|
||||
| powerlevel10k w/ vcs_info | 24 ms | 82 ms | 104 ms | 197 ms |
|
||||
| powerlevel10k w/ gitstatus | 11 ms | 14 ms | 31 ms | 76 ms |
|
||||
| naked zsh | 1 ms | 1 ms | 1 ms | 1 ms |
|
||||
|
||||
Columns define the current directory where the prompt was rendered.
|
||||
|
||||
* `/` -- root directory, not a git repo.
|
||||
* `~/testrepo` -- a tiny git repo.
|
||||
* `~/nerd-fonts` -- [nerd-fonts](https://github.com/ryanoasis/nerd-fonts) git repo
|
||||
with 4k files.
|
||||
* `~/linux` -- [linux](https://github.com/torvalds/linux) git repo. Huge.
|
||||
|
||||
Here's how the prompt looked like:
|
||||
|
||||
![](https://raw.githubusercontent.com/romkatv/powerlevel10k/master/prompt.png)
|
||||
|
||||
Configuration that was used during benchmarking:
|
||||
|
||||
```zsh
|
||||
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(dir_writable dir vcs)
|
||||
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status background_jobs time custom_rprompt)
|
||||
|
||||
POWERLEVEL9K_MODE=nerdfont-complete
|
||||
POWERLEVEL9K_PROMPT_ON_NEWLINE=true
|
||||
POWERLEVEL9K_CUSTOM_RPROMPT=custom_rprompt
|
||||
POWERLEVEL9K_ROOT_ICON=\\uF09CPOWERLEVEL9K_TIME_ICON=\\uF017
|
||||
POWERLEVEL9K_CUSTOM_RPROMPT_ICON=\\uF005
|
||||
POWERLEVEL9K_TIME_BACKGROUND=magenta
|
||||
POWERLEVEL9K_CUSTOM_RPROMPT_BACKGROUND=blue
|
||||
POWERLEVEL9K_STATUS_OK_BACKGROUND=grey53
|
||||
POWERLEVEL9K_BACKGROUND_JOBS_BACKGROUND=orange1
|
||||
POWERLEVEL9K_BACKGROUND_JOBS_FOREGROUND=black
|
||||
|
||||
# Powerlevel10k extension to enable gitstatus. Has no effect on Powerlevel9k.
|
||||
POWERLEVEL9K_VCS_STATUS_COMMAND=gitstatus_query_dir
|
||||
|
||||
function custom_rprompt() echo -E "hello world"
|
||||
```
|
||||
|
||||
## What's the catch?
|
||||
|
||||
Really, there is no catch. It's the same prompt with the same flexibility and literally the
|
||||
same configuration as Powerlevel9k but **much faster**.
|
||||
Really, there is no catch. It's literally the same prompt with the same flexibility
|
||||
configuration format as Powerlevel9k. But **much faster**.
|
||||
|
|
BIN
prompt.png
Normal file
BIN
prompt.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
Loading…
Reference in a new issue