Merge config files / Zettelkasten support Tp-Note is shipped with a default internal configuration that can be customized by merging a series of configuration files from various locations into the default values. This happens in the following order: 1. Unix and MacOS only: '`/etc/tpnote/tpnote.toml`' 2. The file where the environment variable '`TPNOTE_CONFIG`' points to. 3. The user's configuration file: - Unix: '`~/.config/tpnote/tpnote.toml`' - Windows: '`C:\Users\<LOGIN>\AppData\Roaming\tpnote\config\tpnote.toml>`' - MacOS: '`/Users/<LOGIN>/Library/Application Support/tpnote`' 4. At startup all parent directories of the note file path '`<PATH>`'are searched for a marker file named '`tpnote.toml`'. If found, the document root moves from '`/`' the found location. If present and its content is not empty, Tp-Note interprets the file's content as configuration file. 5. The file indicated by the command line parameter '`--config <FIlE>`'. When Tp-Note starts, it first merges all available configuration files into the default configuration. Then the resulting syntax is checked. If not correct, the last sourced configuration file is renamed (thus disabled) and Tp-Note starts with its internal default configuration. For debugging, you can print out the merge result with '`-V -b -d trace`'. To write a custom configuration file, first start with a complete default configuration you can generate by invoking Tp-Note with '`-V -b -c`' (no '`-d`'). ```sh tpnote -V -b -c ~/.config/tpnote/tpnote.toml ``` Some filename and template related variables are grouped into a '`scheme`'. The shipped configuration file lists two schemes: '`default`' and '`zettel`'. The scheme used when creating a new note, is selected by the commend line option '`--scheme`', the environment variable '`TPNOTE_SCHEME`' or the configuration variable '`arg_default.scheme`'. The scheme selected when synchronizing a Tp-Note header with its filename depends on the value of the header variable '`scheme:`' which defaults to '`default`' (cf. '`scheme_sync_default`').