navi/docs/navi_config.md
2023-12-10 23:48:35 -03:00

2.5 KiB

Paths and Environment Variables

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).

Config file path

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)"

Cheat sheet paths

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 that paths defined in its config files. 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-separed 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!.

Logging

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.