mirror of
https://github.com/romkatv/powerlevel10k.git
synced 2024-11-16 09:50:06 +00:00
Merging support for Awesome-Patched-Powerline fonts.
This commit is contained in:
commit
7376602a7b
2 changed files with 106 additions and 57 deletions
96
README.md
96
README.md
|
@ -16,17 +16,20 @@ information in configurable prompt segments.
|
|||
- [Features](#features)
|
||||
- [Installation](#installation)
|
||||
- [Install Powerlevel9k](#install-powerlevel9k)
|
||||
- [Install Powerline Fonts for Normal Configuration](#install-powerline-fonts-for-normal-configuration)
|
||||
- [Alternative Configuration: Über](#alternative-configuration-%C3%BCber)
|
||||
- [Alternative Configuration: Bare Bones](#alternative-configuration-bare-bones)
|
||||
- [Segment Customization](#segment-customization)
|
||||
- [The AWS Profile Segment](#the-aws-profile-segment)
|
||||
- [The 'context' Segment](#the-context-segment)
|
||||
- [Test ratio](#test-ratio)
|
||||
- [The 'time' segment](#the-time-segment)
|
||||
- [Unit Test Ratios](#unit-test-ratios)
|
||||
- [The 'vcs' Segment](#the-vcs-segment)
|
||||
- [Symbols](#symbols)
|
||||
- [Styling](#styling)
|
||||
- [Fonts](#fonts)
|
||||
- [Double-Lined Prompt](#double-lined-prompt)
|
||||
- [Light Color Theme](#light-color-theme)
|
||||
- [Further color customizations](#further-color-customizations)
|
||||
- [Troubleshooting](#troubleshooting)
|
||||
- [Gaps Between Segments](#gaps-between-segments)
|
||||
- [Contributions / Bugs / Contact](#contributions--bugs--contact)
|
||||
|
@ -63,10 +66,12 @@ Here are some screenshots of `powerlevel9k` with default settings:
|
|||
|
||||
|
||||
### Installation
|
||||
There are three different forms of installation that you can use to make use of
|
||||
this theme:
|
||||
|
||||
You just need to install the theme and set `POWERLEVEL9K_MODE='compatible'`
|
||||
to join the experience. If you want to customize your experience even further
|
||||
read the chapter about "[fonts](#fonts)" or about "[segment customization](#segment-customization)".
|
||||
* Normal - Theme + Powerline Fonts
|
||||
* Über - Theme + Awesome Powerline Fonts
|
||||
* Bare Bones - Theme Only
|
||||
|
||||
#### Install Powerlevel9k
|
||||
|
||||
|
@ -80,6 +85,60 @@ You then need to select this theme in your `~/.zshrc`:
|
|||
|
||||
ZSH_THEME="powerlevel9k/powerlevel9k"
|
||||
|
||||
|
||||
#### Install Powerline Fonts for Normal Configuration
|
||||
|
||||
You can find the [installation instructions for Powerline Fonts here]
|
||||
(https://powerline.readthedocs.org/en/latest/installation/linux.html#fonts-installation).
|
||||
You can also find the raw font files [in this Github
|
||||
repository](https://github.com/powerline/fonts) if you want to manually install
|
||||
them for your OS.
|
||||
|
||||
After you have installed Powerline fonts, make the default font in your terminal
|
||||
emulator the Powerline font you want to use.
|
||||
|
||||
This is the default mode for `Powerlevel9k`, and no further configuration is
|
||||
necessary.
|
||||
|
||||
#### Alternative Configuration: Über
|
||||
|
||||
Alternatively, you can install [Awesome Powerline
|
||||
Fonts](https://github.com/gabrielelana/awesome-terminal-fonts), which provide
|
||||
a number of additional glyphs.
|
||||
|
||||
You then need to indicate that you wish to use the additional glyphs by defining
|
||||
the following in your `~/.zshrc`:
|
||||
|
||||
POWERLEVEL9K_MODE='awesome-patched'
|
||||
|
||||
If you choose to make use of this, your prompt will look something like this:
|
||||
|
||||
![](https://cloud.githubusercontent.com/assets/1544760/7959660/67612918-09fb-11e5-9ef2-2308363c3c51.png)
|
||||
|
||||
Note that if you prefer flat segment transitions, you can use the following with
|
||||
`Awesome Powerline Fonts` installed:
|
||||
|
||||
POWERLEVEL9K_MODE='flat'
|
||||
|
||||
Which looks like this:
|
||||
|
||||
![](https://cloud.githubusercontent.com/assets/1544760/7981324/76d0eb5a-0aae-11e5-9608-d662123d0b0a.png)
|
||||
|
||||
#### Alternative Configuration: Bare Bones
|
||||
|
||||
This option is best if you prefer not to install additional fonts. This option
|
||||
will work out-of-the-box if your your terminal font supports the segment
|
||||
separator characters `\uE0B0` (left segment separator) and `\uE0B2` (right
|
||||
segment separator).
|
||||
|
||||
All you need to do to in this case is install the `Powerlevel9k` theme itself,
|
||||
as explained above, and then define the following in your `~/.zshrc`:
|
||||
|
||||
POWERLEVEL9K_MODE='compatible'
|
||||
|
||||
Note that depending on your terminal font, this may still not render
|
||||
appropriately. This configuration should be used as a back-up.
|
||||
|
||||
### Segment Customization
|
||||
|
||||
Customizing your prompt is easy! Select the segments you want to have displayed,
|
||||
|
@ -158,10 +217,10 @@ Example:
|
|||
##### Symbols
|
||||
|
||||
The `vcs` segment uses various symbols to tell you the state of your repository.
|
||||
These symbols depend on your installed [Font](#fonts) and your `POWERLEVEL9K_MODE`
|
||||
set.
|
||||
These symbols depend on your installed font and selected `POWERLEVEL9K_MODE`
|
||||
from the [Installation](#Installation) section above.
|
||||
|
||||
| `compatible` | `powerline-patched` | `awesome-patched` | explanation
|
||||
| `Bare Bones` | `Normal` | `Über` | explanation
|
||||
|--------------|---------------------|-------------------|--------------------------
|
||||
| `↑4` | `↑4` | ![icon_outgoing](https://cloud.githubusercontent.com/assets/1544760/7976089/b5904d6e-0a76-11e5-8147-5e873ac52d79.gif)4 | Number of commits your repository is ahead of your remote branch
|
||||
| `↓5` | `↓5` | ![icon_incoming](https://cloud.githubusercontent.com/assets/1544760/7976091/b5909c9c-0a76-11e5-9cad-9bf0a28a897c.gif)5 | Number of commits your repository is behind of your remote branch
|
||||
|
@ -181,27 +240,6 @@ set.
|
|||
You can configure the look and feel of your prompt easily with some built-in
|
||||
options.
|
||||
|
||||
#### Fonts
|
||||
|
||||
If you set `POWERLEVEL9K_MODE='compatible'` you just get a little glimpse of
|
||||
the beauty of this theme.
|
||||
|
||||
To get nicer Icons you need to install a [powerline-patched](https://github.com/Lokaltog/powerline-fonts) font.
|
||||
In your terminal emulator you need to select this font and in your `~/.zshrc` you need
|
||||
to set `POWERLEVEL9K_MODE='powerline-patched'`.
|
||||
You can find the [installation instructions here](https://powerline.readthedocs.org/en/latest/installation/linux.html#fonts-installation).
|
||||
You can also find the raw font files [in this Github repository](https://github.com/powerline/fonts) if you want to manually install them for your OS.
|
||||
Screenshot:
|
||||
![](http://bhilburn.org/content/images/2015/01/pl9k-improved.png)
|
||||
|
||||
If even these Icons did not impress you, have a look at `POWERLEVEL9K_MODE='awesome-patched'`.
|
||||
For this mode, you have to install a [awesome-patched](https://github.com/gabrielelana/awesome-terminal-fonts/tree/patching-strategy/patched) font and set the according mode.
|
||||
Screenshot:
|
||||
![](https://cloud.githubusercontent.com/assets/1544760/7959660/67612918-09fb-11e5-9ef2-2308363c3c51.png)
|
||||
|
||||
If you prefer segements as rectangles, just set `POWERLEVEL9K_MODE='flat'`, but
|
||||
beware: You still need a [awesome-patched](https://github.com/gabrielelana/awesome-terminal-fonts/tree/patching-strategy/patched) font.
|
||||
|
||||
#### Double-Lined Prompt
|
||||
|
||||
By default, `powerlevel9k` is a single-lined prompt. If you would like to have
|
||||
|
|
|
@ -40,17 +40,18 @@
|
|||
# POWERLEVEL9K_COLOR_SCHEME='light'
|
||||
################################################################
|
||||
|
||||
# The `CURRENT_BG` variable is used to remember what the last BG color used was
|
||||
# when building the left-hand prompt. Because the RPROMPT is created from
|
||||
# right-left but reads the opposite, this isn't necessary for the other side.
|
||||
CURRENT_BG='NONE'
|
||||
## Debugging
|
||||
#zstyle ':vcs_info:*+*:*' debug true
|
||||
#set -o xtrace
|
||||
|
||||
# These characters require the Powerline fonts to work properly. If see boxes or
|
||||
# bizarre characters below, your fonts are not correctly installed. In case you
|
||||
# bizarre characters below, your fonts are not correctly installed. If you
|
||||
# do not want to install a special font, you can set `POWERLEVEL9K_MODE` to
|
||||
# `compatible`. This shows all icons in regular symbols.
|
||||
case $POWERLEVEL9K_MODE in
|
||||
'flat')
|
||||
# Awesome-Patched Font required!
|
||||
# See https://github.com/gabrielelana/awesome-terminal-fonts/tree/patching-strategy/patched
|
||||
LEFT_SEGMENT_SEPARATOR=''
|
||||
RIGHT_SEGMENT_SEPARATOR=''
|
||||
ROOT_ICON="\uE801" #
|
||||
|
@ -73,7 +74,8 @@ case $POWERLEVEL9K_MODE in
|
|||
VCS_TAG_ICON="\uE817 " #
|
||||
VCS_BOOKMARK_ICON="\uE87B" #
|
||||
VCS_COMMIT_ICON="\uE821 " #
|
||||
VCS_BRANCH_ICON=" \uE220" #
|
||||
#VCS_BRANCH_ICON=" \uE220" #
|
||||
VCS_BRANCH_ICON=''
|
||||
VCS_REMOTE_BRANCH_ICON="\uE804" #
|
||||
VCS_GIT_ICON="\uE20E " #
|
||||
VCS_HG_ICON="\uE1C3 " #
|
||||
|
@ -97,13 +99,15 @@ case $POWERLEVEL9K_MODE in
|
|||
VCS_TAG_ICON=''
|
||||
VCS_BOOKMARK_ICON="\u263F" # ☿
|
||||
VCS_COMMIT_ICON=''
|
||||
VCS_BRANCH_ICON='@'
|
||||
#VCS_BRANCH_ICON='@'
|
||||
VCS_BRANCH_ICON=''
|
||||
VCS_REMOTE_BRANCH_ICON="\u2192" # →
|
||||
VCS_GIT_ICON='Git'
|
||||
VCS_HG_ICON='HG'
|
||||
;;
|
||||
'awesome-patched')
|
||||
# Awesome-Patched Font required! See https://github.com/gabrielelana/awesome-terminal-fonts/tree/patching-strategy/patched
|
||||
# Awesome-Patched Font required!
|
||||
# See https://github.com/gabrielelana/awesome-terminal-fonts/tree/patching-strategy/patched
|
||||
LEFT_SEGMENT_SEPARATOR="\uE0B0" #
|
||||
RIGHT_SEGMENT_SEPARATOR="\uE0B2" #
|
||||
ROOT_ICON="\u26A1" # ⚡
|
||||
|
@ -126,13 +130,15 @@ case $POWERLEVEL9K_MODE in
|
|||
VCS_TAG_ICON="\uE817 " #
|
||||
VCS_BOOKMARK_ICON="\uE87B" #
|
||||
VCS_COMMIT_ICON="\uE821 " #
|
||||
VCS_BRANCH_ICON=" \uE220" #
|
||||
#VCS_BRANCH_ICON=" \uE220" #
|
||||
VCS_BRANCH_ICON=''
|
||||
VCS_REMOTE_BRANCH_ICON="\uE804" #
|
||||
VCS_GIT_ICON="\uE20E " #
|
||||
VCS_HG_ICON="\uE1C3 " #
|
||||
;;
|
||||
*)
|
||||
# Powerline-Patched Font required! See https://github.com/Lokaltog/powerline-fonts
|
||||
# Powerline-Patched Font required!
|
||||
# See https://github.com/Lokaltog/powerline-fonts
|
||||
LEFT_SEGMENT_SEPARATOR="\uE0B0" #
|
||||
RIGHT_SEGMENT_SEPARATOR="\uE0B2" #
|
||||
ROOT_ICON="\u26A1" # ⚡
|
||||
|
@ -151,7 +157,8 @@ case $POWERLEVEL9K_MODE in
|
|||
VCS_TAG_ICON=''
|
||||
VCS_BOOKMARK_ICON="\u263F" # ☿
|
||||
VCS_COMMIT_ICON=''
|
||||
VCS_BRANCH_ICON='@'
|
||||
#VCS_BRANCH_ICON='@'
|
||||
VCS_BRANCH_ICON=''
|
||||
VCS_REMOTE_BRANCH_ICON="\u2192" # →
|
||||
VCS_GIT_ICON="\uE0A0" #
|
||||
VCS_HG_ICON="\uE0A0" #
|
||||
|
@ -232,10 +239,6 @@ else
|
|||
zstyle ':vcs_info:*' use-simple true
|
||||
fi
|
||||
|
||||
## Debugging
|
||||
#zstyle ':vcs_info:*+*:*' debug true
|
||||
#set -o xtrace
|
||||
|
||||
################################################################
|
||||
# Prompt Segment Constructors
|
||||
################################################################
|
||||
|
@ -263,22 +266,24 @@ left_prompt_segment() {
|
|||
[[ -n $2 ]] && bg="%K{$2}" || bg="%k"
|
||||
[[ -n $3 ]] && fg="%F{$3}" || fg="%f"
|
||||
if [[ $CURRENT_BG != 'NONE' && $2 != $CURRENT_BG ]]; then
|
||||
# Middle segment
|
||||
echo -n "%{$bg%F{$CURRENT_BG}%}$LEFT_SEGMENT_SEPARATOR%{$fg%} "
|
||||
else
|
||||
# First segment
|
||||
echo -n "%{$bg%}%{$fg%} "
|
||||
fi
|
||||
CURRENT_BG=$2
|
||||
[[ -n $4 ]] && echo -n $4
|
||||
[[ -n $4 ]] && echo -n "$4 "
|
||||
}
|
||||
|
||||
# End the left prompt, closing any open segments
|
||||
left_prompt_end() {
|
||||
if [[ -n $CURRENT_BG ]]; then
|
||||
echo -n " %{%k%F{$CURRENT_BG}%}$LEFT_SEGMENT_SEPARATOR"
|
||||
echo -n "%{%k%F{$CURRENT_BG}%}$LEFT_SEGMENT_SEPARATOR"
|
||||
else
|
||||
echo -n " %{%k%}"
|
||||
echo -n "%{%k%}"
|
||||
fi
|
||||
echo -n "%{%f%}"
|
||||
echo -n "%{%f%} "
|
||||
CURRENT_BG=''
|
||||
}
|
||||
|
||||
|
@ -300,8 +305,8 @@ right_prompt_segment() {
|
|||
local bg fg
|
||||
[[ -n $2 ]] && bg="%K{$2}" || bg="%k"
|
||||
[[ -n $3 ]] && fg="%F{$3}" || fg="%f"
|
||||
echo -n " %f%F{$2}$RIGHT_SEGMENT_SEPARATOR%f%{$bg%}%{$fg%} "
|
||||
[[ -n $4 ]] && echo -n $4
|
||||
echo -n "%f%F{$2}$RIGHT_SEGMENT_SEPARATOR%f%{$bg%}%{$fg%} "
|
||||
[[ -n $4 ]] && echo -n "$4 "
|
||||
}
|
||||
|
||||
################################################################
|
||||
|
@ -317,7 +322,7 @@ prompt_vcs() {
|
|||
$1_prompt_segment $0 green $DEFAULT_COLOR
|
||||
fi
|
||||
|
||||
echo -n "%F{$VCS_FOREGROUND_COLOR}%f$vcs_prompt"
|
||||
echo -n "%F{$VCS_FOREGROUND_COLOR}%f$vcs_prompt "
|
||||
fi
|
||||
}
|
||||
|
||||
|
@ -405,6 +410,11 @@ function +vi-vcs-detect-changes() {
|
|||
# Prompt Segments
|
||||
################################################################
|
||||
|
||||
# The `CURRENT_BG` variable is used to remember what the last BG color used was
|
||||
# when building the left-hand prompt. Because the RPROMPT is created from
|
||||
# right-left but reads the opposite, this isn't necessary for the other side.
|
||||
CURRENT_BG='NONE'
|
||||
|
||||
# AWS Profile
|
||||
prompt_aws() {
|
||||
local aws_profile=$AWS_DEFAULT_PROFILE
|
||||
|
@ -523,7 +533,7 @@ prompt_time() {
|
|||
time_format=$POWERLEVEL9K_TIME_FORMAT
|
||||
fi
|
||||
|
||||
$1_prompt_segment $0 $DEFAULT_COLOR_INVERTED $DEFAULT_COLOR "$time_format "
|
||||
$1_prompt_segment $0 $DEFAULT_COLOR_INVERTED $DEFAULT_COLOR $time_format
|
||||
}
|
||||
|
||||
# Virtualenv: current working virtualenv
|
||||
|
@ -576,14 +586,15 @@ precmd() {
|
|||
if [[ "$POWERLEVEL9K_PROMPT_ON_NEWLINE" == true ]]; then
|
||||
PROMPT='╭─%{%f%b%k%}$(build_left_prompt)
|
||||
╰─ '
|
||||
# The right prompt should be on the same line as the first line of the left prompt.
|
||||
# To do so, there is just a quite ugly workaround: Before zsh draws the RPROMPT,
|
||||
# we advise it, to go one line up. At the end of RPROMPT, we advise it to go one
|
||||
# line down. See http://superuser.com/questions/357107/zsh-right-justify-in-ps1
|
||||
# The right prompt should be on the same line as the first line of the left
|
||||
# prompt. To do so, there is just a quite ugly workaround: Before zsh draws
|
||||
# the RPROMPT, we advise it, to go one line up. At the end of RPROMPT, we
|
||||
# advise it to go one line down. See:
|
||||
# http://superuser.com/questions/357107/zsh-right-justify-in-ps1
|
||||
RPROMPT_PREFIX='%{'$'\e[1A''%}' # one line up
|
||||
RPROMPT_SUFFIX='%{'$'\e[1B''%}' # one line down
|
||||
else
|
||||
PROMPT='%{%f%b%k%}$(build_left_prompt) '
|
||||
PROMPT='%{%f%b%k%}$(build_left_prompt)'
|
||||
RPROMPT_PREFIX=''
|
||||
RPROMPT_SUFFIX=''
|
||||
fi
|
||||
|
|
Loading…
Reference in a new issue