Navi uses the directories-next
package, which
defines platform-specific standard locations of directories for config, cache and other data (Mac users, this is why your files are being stored in ~/Library/Application Support/navi
).
The default config file path is set by the $NAVI_CONFIG
environment variable. If it is not set, it fallbacks to ~/.config/navi/config.yaml
. The command
navi info config-path
prints which config file path is being used. You can get a config file example by running
navi info config-example
or by clicking here. To turn this example your config file, run
navi info config-example > "$(navi info config-path)"
The default .cheat
files paths are defined in the $NAVI_PATH
environment variable in a colon-separated list, e.g.,
export NAVI_PATH='/path/to/a/dir:/path/to/another/dir:/yet/another/dir'
If this environment variable is unset or if all directories do not exist, navi
uses the paths defined in the config file. Finally, if there is no config file or if the .cheat
file paths was not set, the default .cheat
file paths fallbacks to ~/.local/share/navi/cheats/
. The command
navi info cheats-path
prints to you all paths used to search for .cheat
files.
You can also add other paths at runtime by running navi
with the --path
option and a colon-separated paths list, e.g.,
navi --path '/some/dir:/other/dir'
It's irrelevant the directory structure within each path. They can even be all in a single file if you wish, as long as you split them accordingly with lines starting with %
.
Despite $NAVI_PATH
being set, it will not be used when installing cheat sheets directly via navi's own commands. For example when running navi add repo <repo>
, the default paths as per the directories-next
package will still be used. To avoid this, you may simply clone repos via a regular git clone
command, directly into $NAVI_PATH
.
Note! navi info cheats-path
and navi info config-path
display the default path, not
the path set by the user. It is known that this is a little misleading!.
The log file will be created under the same directory where the config locates.
And you can use the RUST_LOG
env to set the log level, e.g. RUST_LOG=debug navi
.
You can change the color scheme by overriding fzf options.
In addition, you can change the text color for each column by properly configuring navi's config.yaml
. Please check navi --help
for more instructions.
You can change the column widths by properly configuring navi's config.yaml
. Please check navi --help
for more instructions.
Let's say you want to override $FZF_DEFAULT_OPTS with --height 3
.
This can be overridden in the following ways:
# if you want to override only when selecting snippets
navi --fzf-overrides '--height 3'
# alternatively, using an environment variable in your .bashrc-like file:
export NAVI_FZF_OVERRIDES='--height 3'
# if you want to override only when selecting argument values
navi --fzf-overrides-var '--height 3'
# alternatively, using an environment variable in your .bashrc-like file:
export NAVI_FZF_OVERRIDES_VAR='--height 3'
# if you want to override for all cases
FZF_DEFAULT_OPTS="--height 3" navi
In addition, this can be set by properly configuring navi's config.yaml
. Please check navi --help
for more instructions.