Out of the box, the new prompt depends on Nerd Fonts.
Personally I'm using "DejaVuSansMono Nerd Font Complete." There are a couple
ways around this if you'd rather: use fontconfig to merge Nerd symbols with
your preferred font, see
here
and
here;
or you can override the various PS1_CHAR_*
variables after loading
.bashrc.prompt
to use symbols already present in your font.
Behind the scenes, the code uses the same essential architecture: there's a
scaffolding (ps1_update
) and some utility functions (ps1_quote
, ps1_color
,
ps1_segment
). The actual content of the prompt is produced by modules such as
ps1_mod_cwd
and ps1_mod_git
. These modules register with the scaffolding by
calling ps1_add
.
You can add your own micro status modules by calling ps1_micro
(rather than
calling ps1_segment
which appends to the end of the prompt):
ps1_mod_smile() {
ps1_micro "$(ps1_color bright magenta):-)"
}
ps1_add smile
Modules can be registered to run/appear before/after other modules, instead of needing to register them in the specific order you want them to appear:
ps1_add git before cwd
ps1_add user first
New caching functions: ps1_cache_set
and ps1_cache_get
rather than setting PS1_CACHE_FOO
.