fast-theme
tool is used to select a theme. There are 6 shipped themes, they can be listed with fast-theme -l
. Themes
are basic INI files where each key is a
style. Besides shipped themes, user can point this tool to any other theme, by simple fast-theme ~/mytheme.ini
. To
obtain template to work on when creating own theme, issue fast-theme --copy-shipped-theme {theme-name}
.
To alter just a few styles and not create a whole new theme, use overlay. What is overlay? It is in the same format as full theme, but can have only a few styles defined, and these styles will overwrite styles in main-theme. Example overlay file:
; overlay.ini
[base]
commandseparator = yellow,bold
comment = 17
[command-point]
function = green
command = 180
File name overlay.ini
is treated specially.
When specifing path, following short-hands can be used:
XDG: = ~/.config/fsh (respects $XDG_CONFIG_HOME env var)
LOCAL: = /usr/local/share/fsh/
HOME: = ~/.fsh/
OPT: = /opt/local/share/fsh/
So for example, issue fast-theme XDG:overlay
to load ~/.config/fsh/overlay.ini
as overlay. The .ini
extension is
optional.
Each theme has key secondary
, e.g. for theme free
:
; free.ini
[base]
default = none
unknown-token = red,bold
; ...
; ...
; ...
secondary = zdharma
Secondary theme (zdharma
in the example) will be used for highlighting of argument for eval
and of $( ... )
interior (i.e. of interior of command substitution). Basically, recursive highlighting uses alternate theme to make the
highlighted code distinct:
In the above screen-shot the interior of $( ... )
uses different colors than the rest of the code. Example for eval
:
First line doesn't use recursive highlighting, highlights eval
argument as regular string. Second line switches theme
to zdharma
and does full recursive highlighting of eval argument.
Set $FAST_WORK_DIR
before loading the plugin to have e.g. processed theme files (ready to load, in Zsh format, not
INI) kept under specified location. This is handy if e.g. you install Fast-Syntax-Highlighting system-wide (e.g. from
AUR on ArchLinux) and want to have per-user theme setup.
You can use "~" in the path, e.g. FAST_WORK_DIR=~/.fsh
and also the XDG:
, LOCAL:
, OPT:
, etc. short-hands, so
e.g. FAST_WORK_DIR=XDG
or FAST_WORK_DIR=XDG:
is allowed (in this case it will be changed to $HOME/.config/fsh
by
default by F-Sy-H loader).