Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Configuration Reference

The full schema of .guisu.toml. Every key is optional; Guisu applies a default if a key is missing. The file is rendered as a Jinja template if its name is .guisu.toml.j2.

Note

Derived from source This page is derived from crates/config/src/config.rs and crates/config/src/ignores.rs. The authoritative list is the source — if a key is added or removed, the source wins.

[general]

KeyTypeDefaultNotes
src_dirpath~/.local/share/guisuSource repository location.
dst_dirpath~Destination root.
root_entrypath(resolved at runtime)Every target path is relative to this subpath.
colorbooltrueANSI colour in output.
progressbooltrueProgress bars.
editorstring$EDITOREditor used by guisu edit.
editor_argslist of string[]Extra args passed to the editor.
use_builtin_ageenumautoauto / true / false. Use the in-process age implementation.
use_builtin_gitenumautoauto / true / false. Use the in-process git implementation.

[age]

KeyTypeDefaultNotes
identitypathSingle age or SSH identity file.
identitieslist of path[]Multiple identity files; any one can decrypt.
recipientstringSingle age recipient.
recipientslist of string[]Multiple recipients; encryption writes to all.
deriveboolfalseDerive a recipient from the SSH identity for encryption.
fail_on_decrypt_errorboolfalseFail apply if a .age file cannot be decrypted. The default is to log a warning and skip.

[bitwarden]

KeyTypeDefaultNotes
providerstring"rbw"One of bw, rbw, bws.

[ui]

KeyTypeDefaultNotes
iconsenumautoauto / text / symbols. How status and diff mark file types.
diff_formatstring"unified"One of unified, side-by-side. Used by the conflict TUI.
context_linesinteger3Lines of context around a change in diff output.
preview_linesinteger10Lines of preview in the conflict TUI.

[edit]

KeyTypeDefaultNotes
applybooltrueWhether guisu edit should apply after a successful save. Set to false for read-only editing of templates.

[ignore]

KeyTypeDefaultNotes
globallist of string[]Always ignored, regardless of platform.
darwinlist of string[]macOS-only ignores.
linuxlist of string[]Linux-only ignores.
windowslist of string[]Windows-only ignores.

Patterns are gitignore-style: glob with *, ?, **, negation with !, and trailing / for directory-only.

[variables]

Free-form key/value map. Every key is exposed as a top-level variable in the template context. See User Guide — Templates.

[variables]
email = "user@example.com"
editor = "nvim"
work = true
servers = ["srv1", "srv2", "srv3"]

Resolving the effective config

  1. Defaults (compiled in).
  2. .guisu.toml in the source directory (rendered as template if .guisu.toml.j2).
  3. Per-platform files in .guisu/ignores/{darwin,linux,windows}.toml (only for [ignore]).
  4. Environment variables (GUISU_SOURCE_DIR, GUISU_DEST_DIR, GUISU_CONFIG, GUISU_LOG_FILE).
  5. Command-line flags.

Run guisu info --all to see the merged result.

See also