Pure โฏโฎโฏ
¶
Pretty, minimal and fast Fish ๐ prompt, ported from
zsh
.
Install¶
Success
Pure requires Fish โฅ3.x
fisher install pure-fish/pure
-
Download the installer to
/tmp
curl git.io/pure-fish --output /tmp/pure_installer.fish --location --silent
-
Source and trigger the installer
source /tmp/pure_installer.fish; and install_pure
Configuration¶
You can tweak pure
behavior and color by changing universal variables either directly in the terminal or in your config.fish
, e.g.:
set --universal pure_show_system_time true
set --universal pure_color_system_time pure_color_mute
Features¶
Overview¶
Fully customizable (colors, symbols and features):
- Display username and hostname when in an
SSH
session ๐ ; - Display command duration when longer than
5
seconds ๐ ; - Display
Python
virtualenv when activated ๐ด๐ ; - Display
AWS
profile when set ๐ด๐ ; - Display
VI
mode and custom symbol for non-insert mode ๐ด๐ ; - Display
kubernetes
context and namespace ๐ด๐ ; - Detect when running in a container (e.g.
docker
,podman
,LXC
/LXD
) ๐ด๐ - Indicate if a
nix develop
shell is activated ๐ด๐ . - Show system time ๐ด ;
- Show number of running jobs ๐ด ;
- Prefix when
root
๐ด๐ ; -
Display
git
branch name ๐ด๐ ;- Display
*
whengit
repository is dirty ; - Display
โก
whengit
repository is stashed ; - Display
โก
when branch is ahead (commits to push) ; - Display
โฃ
when branch is behind (commits to pull) ; - Async update when configured with fish-async-prompt ;
- Display
- Shorten or truncate current folder component ๐ด๐ ;
- and moreโฆ
๐ด means it's controlled by a feature flag, ๐ mean it's configurable.
Check For New Release¶
Option | Default | Description |
---|---|---|
pure_check_for_new_release |
false |
true : check repo for new release (on every shell start) |
๐ Faster Prompt
Checking new release send a HTTP request that slow down your prompt rendering
as it wait for remote server response. Set it to false
speed up rendering:
set --universal pure_check_for_new_release false
Container Detection (Docker)¶
Option | Default | Description |
---|---|---|
pure_enable_container_detection |
true |
false : Do not check pure runs inside a container (e.g. docker , podman , LXC /LXD , etc.).Detection is a bit tricky across OSes. |
pure_symbol_container_prefix |
Prefix when being inside a container (to customize) |
Current Working Directory¶
Option | Default | Description |
---|---|---|
pure_begin_prompt_with_current_directory |
true |
true : pwd git , SSH , duration.false : SSH pwd git , duration. |
pure_shorten_prompt_current_directory_length |
0 |
Shorten every prompt path component but the last to X characters (0 do not shorten) |
pure_truncate_prompt_current_directory_keeps |
0 |
Truncate working directory path in prompt, but keeps the last to n components (0 full path in current directory) |
Git¶
Option | Default | Description |
---|---|---|
pure_enable_git |
true |
Show info about Git repository. |
pure_symbol_git_dirty |
* |
Repository is Dirty (uncommitted/untracked changes). |
pure_symbol_git_stash |
โก |
Repository git stash status. |
pure_symbol_git_unpulled_commits |
โฃ |
Branch is behind upstream (commits to pull). |
pure_symbol_git_unpushed_commits |
โก |
Branch is ahead upstream (commits to push). |
Need safer
git
symbols?
Jobs¶
Option | Default | Description |
---|---|---|
pure_show_jobs |
false |
Show Number of running jobs |
Kubernetes¶
Option | Default | Description |
---|---|---|
pure_symbol_k8s_prefix |
โธ |
Prefix when being connected to Kubernetes/K8s |
pure_enable_k8s |
false |
true : shows kubernetes context and namespace. |
NixOS¶
Indicate if nix develop shell is activated in their prompt.
Option | Default | Description |
---|---|---|
pure_enable_nixdevshell |
false |
Indicate if a nix develop shell is activated (based on IN_NIX_SHELL ). |
pure_symbol_nixdevshell_prefix |
โ๏ธ |
otherwise nerdfonts: '๓ฑ ' or '๏' |
pure_color_nixdevshell_prefix |
pure_color_info |
prefix color |
pure_color_nixdevshell_symbol |
pure_color_mute |
symbol color |
Prompt Symbol¶
Option | Default | Description |
---|---|---|
pure_symbol_prompt |
โฏ |
Prompt symbol. |
Python Virtualenv¶
Option | Default | Description |
---|---|---|
pure_enable_virtualenv |
true |
Show virtual env name (based on VIRTUAL_ENV or CONDA_DEFAULT_ENV ). |
pure_symbol_virtualenv_prefix |
Prefix when a Python virtual env is activated (default: undefined) |
AWS Profile¶
Option | Default | Description |
---|---|---|
pure_enable_aws_profile |
true |
Show AWS profile name (based on AWS_VAULT or AWS_PROFILE ). |
pure_symbol_aws_profile_prefix |
Prefix when a AWS profile is activated (default: undefined) |
Separate Error Symbol¶
Option | Default | Description |
---|---|---|
pure_separate_prompt_on_error |
false |
Show last command exit code as a second prompt symbol. |
Single Line Prompt¶
Option | Default | Description |
---|---|---|
pure_enable_single_line_prompt |
false |
true : Compact prompt as a single line |
SSH Session¶
Option | Default | Description |
---|---|---|
pure_symbol_ssh_prefix |
Prefix when being connected to SSH session (default: undefined) |
Time & Duration¶
Option | Default | Description |
---|---|---|
pure_show_system_time |
false |
true : shows system time before the prompt symbol (as %H:%M:%S ). |
pure_show_subsecond_command_duration |
false |
Show subsecond (ex. 1.5s) in command duration. |
pure_threshold_command_duration |
5 |
Show command duration when above this value (seconds). |
Title¶
Option | Default | Description |
---|---|---|
pure_symbol_title_bar_separator |
- |
Separator in terminal's windows title. |
pure_shorten_window_title_current_directory_length |
0 |
Shorten every window title path component but the last to X characters (0 do not shorten) |
pure_truncate_window_title_current_directory_keeps |
0 |
Truncate working directory path in window title, but keeps the last to n components (0 full path in window title) |
VI Mode¶
Option | Default | Description |
---|---|---|
pure_reverse_prompt_symbol_in_vimode |
true |
true : โฎ indicate a non-insert mode.false : indicate vi mode with [I] , [N] , [V] . |
pure_symbol_reverse_prompt |
โฎ |
VI non-insert mode symbol. |
Working as Root¶
Option | Default | Description |
---|---|---|
pure_show_prefix_root_prompt |
false |
true : shows prompt prefix when logged in as root . |
pure_symbol_prefix_root_prompt |
# |
Prefix prompt when logged in as root . |
Colours¶
Tip
See set_color
documentation for full possibilities.
Info
The absence of $
sign is expected in pure_
named colours.
Base Color | Inherited by | Default |
---|---|---|
pure_color_danger |
pure_color_prompt_on_error |
red |
pure_color_dark |
black |
|
pure_color_info |
pure_color_git_unpulled_commits pure_color_git_unpushed_commits |
cyan |
pure_color_light |
pure_color_username_root |
white |
pure_color_mute |
pure_color_git_branch pure_color_git_dirty pure_color_git_stash pure_color_hostname pure_color_at_sign pure_color_username_normal pure_color_virtualenv |
brblack |
pure_color_normal |
pure_color_jobs |
normal |
pure_color_primary |
pure_color_current_directory |
blue |
pure_color_success |
pure_color_prompt_on_success |
magenta |
pure_color_warning |
pure_color_command_duration |
yellow |