imag/imagrc.toml
Matthias Beyer d0ec7e26dc Add implementation for imag-contact
* Implement contact listing with formatting via commandline or config
* Implement importer functionality for contact
* Implement "show" subcommand
* imagrc.toml: Add explanation which fns are supported in templates
2017-11-09 11:19:17 +01:00

318 lines
8 KiB
TOML

# This is a example configuration file for the imag suite.
# It is written in TOML
#
# imag supports templates when specifying formats. The templates support several
# functionalities, from colorizing to underlining and such things.
#
# Here goes a list of supported formatting helpers:
#
# These functions can be applied for colorizing the output:
# {{black <input>}}
# {{blue <input>}}
# {{cyan <input>}}
# {{green <input>}}
# {{purple <input>}}
# {{red <input>}}
# {{white <input>}}
# {{yellow <input>}}
#
# The following functions are allowed for formatting text:
# {{lpad <count> <input>}} - to "left pad" by <count> spaces
# {{rpad <count> <input>}} - to "right pad" by <count> spaces
# {{abbrev <count> <input>}} - to "abbreviate" the output to <count> chars
# {{underline <input>}} - for underlining
# {{bold <input>}} - for making input bold
# {{blink <input>}} - for making input blinking
# {{strikethrough <input>}} - for making input struck through
#
# Strings can only be printed. Arrays can be indexed with the `lookup` function.
#
#
# The underlying templating engine also supports these:
#
# {{#raw}} ... {{/raw}} escape handlebars expression within the block
# {{#if ...}} ... {{else}} ... {{/if}} if-else block
# {{#unless ...}} ... {{else}} .. {{/unless}} if-not-else block
# {{#each ...}} ... {{/each}} iterates over an array or object.
# Handlebar-rust doesn't support mustach iteration syntax so use this instead.
# {{#with ...}} ... {{/with}} change current context. Similar to {{#each}}, used for replace corresponding mustach syntax.
# {{lookup ... ...}} get value from array by @index or @key
# {{> ...}} include template with name
# {{log ...}} log value with rust logger, default level: INFO. Currently you cannot change the level.
#
# Warning: These are _not_ tested and should be used with care.
#
# The alias section
#
# In this section one can define aliases for imag subcommands.
#
# E.G: An alias `store = [ "s", "st" ]` allows the user to call `imag s` or
# `imag st` for calling `imag store`.
#
# The aliases have to be either a single string or an array of strings, where no
# string contains whitespace (thus, aliasing a "store-create" call to "sc" for
# example is not supported).
#
[imag.aliases]
store = [ "s", "st" ]
[imag.logging]
level = "debug"
destinations = [ "-" ]
#
# Valid variables for logging:
# * "level"
# * "module_path"
# * "file"
# * "line"
# * "target"
# * "message"
#
[imag.logging.format]
trace = "[imag][{{red level}}][{{module_path}}]: {{message}}"
debug = "[imag][{{cyan level}}][{{yellow target}}]: {{message}}"
info = "[imag]: {{message}}"
warn = "[imag][{{bold level}}]: {{yellow message}}"
error = "[imag][{{red level}}]: {{red message}}"
#
# The logging configurations for the modules of imag follow.
#
# Note that the `destinations` key is for _additional_ destinations to the
# default destination in `imag.logging.destinations`, not as replacement! So
# specifying stderr (`-`) in `imag.logging.destinations` _and_ in, for example,
# `imag.logging.modules.libimagstore` yields each log line twice, which might
# not be wanted behaviour.
#
[imag.logging.modules.libimagutil]
destinations = []
level = "debug"
enabled = true
[imag.logging.modules.libimagtimeui]
destinations = []
level = "debug"
enabled = true
[imag.logging.modules.libimaginteraction]
destinations = []
level = "debug"
enabled = true
[imag.logging.modules.libimagstore]
destinations = [ "/tmp/libimagstore.log" ]
level = "trace"
enabled = true
[imag.logging.modules.libimagrt]
destinations = []
level = "debug"
enabled = true
[imag.logging.modules.libimagerror]
destinations = []
level = "debug"
enabled = true
[imag.logging.modules.libimagbookmark]
destinations = []
level = "debug"
enabled = true
[imag.logging.modules.libimagnotes]
destinations = []
level = "debug"
enabled = true
[imag.logging.modules.libimagdiary]
destinations = []
level = "debug"
enabled = true
[imag.logging.modules.libimagtimetrack]
destinations = []
level = "debug"
enabled = true
[imag.logging.modules.libimagtodo]
destinations = []
level = "debug"
enabled = true
[imag.logging.modules.libimagmail]
destinations = []
level = "debug"
enabled = true
[imag.logging.modules.libimagentryfilter]
destinations = []
level = "debug"
enabled = true
[imag.logging.modules.libimagentrycategory]
destinations = []
level = "debug"
enabled = true
[imag.logging.modules.libimagentryannotation]
destinations = []
level = "debug"
enabled = true
[imag.logging.modules.libimagentrylink]
destinations = []
level = "debug"
enabled = true
[imag.logging.modules.libimagentrytag]
destinations = []
level = "debug"
enabled = true
[imag.logging.modules.libimagentrygps]
destinations = []
level = "debug"
enabled = true
[imag.logging.modules.libimagentrylist]
destinations = []
level = "debug"
enabled = true
[imag.logging.modules.libimagentryedit]
destinations = []
level = "debug"
enabled = true
[imag.logging.modules.libimagentryref]
destinations = []
level = "debug"
enabled = true
[imag.logging.modules.libimagentryview]
destinations = []
level = "debug"
enabled = true
[imag.logging.modules.libimagentrymarkdown]
destinations = []
level = "debug"
enabled = true
[imag.logging.modules.libimagentrydatetime]
destinations = []
level = "debug"
enabled = true
#
# Configuration options for the user interface
#
[ui]
#
# Configuration options for the commandline user interface
#
[ui.cli]
# History file path for readline. Will be created by imag if it does not exist.
readline_history_file = "/tmp/readline.history"
# Number of lines to safe in the history file
readline_history_size = 100
# Ignore duplicated lines
readline_history_ignore_dups = true
# Tell if lines which begin with a space character are saved or not in the
# history list.
readline_history_ignore_space = true
# The prompt string to use
readline_prompt = ">> "
[store]
# Set to false if you do not want imag to create the directory where the store
# lives implicitely
implicit-create = false
[diary]
default_diary = "default"
[diary.diaries.default]
timed = "minutely"
[bookmark]
default_collection = "default"
[view.viewers]
# Configure which viewers there are for `imag view <entry> in <viewer>`.
editor = "vim -R {{entry}}"
web = "chromium {{entry}}"
[contact]
# Format for listing contacts
#
# Available variables:
# * "i" : Integer, counts the output lines
# * "id" : The hash which can be used to print the entry itself.
# * "ADR" : Array
# * "ANNIVERSARY" : String
# * "BDAY" : String
# * "CATEGORIES" : Array<String>
# * "CLIENTPIDMAP" : String
# * "EMAIL" : Array<String>
# * "FN" : Array<String>
# * "GENDER" : String
# * "GEO" : Array<String>
# * "IMPP" : Array<String>
# * "KEY" : Array<String>
# * "LANG" : Array<String>
# * "LOGO" : Array<String>
# * "MEMBER" : Array<String>
# * "N" : String
# * "NICKNAME" : Array<String>
# * "NOTE" : Array<String>
# * "ORG" : Array<String>
# * "PHOTO" : Array<String>
# * "PRIOD" : String
# * "RELATED" : Array<String>
# * "REV" : String
# * "ROLE" : Array<String>
# * "SOUND" : Array<String>
# * "TEL" : Array<String>
# * "TITLE" : Array<String>
# * "TZ" : Array<String>
# * "UID" : String
# * "URL" : Array<String>
# * "VERSION" : String
#
# Multiple lines shouldn't be used, as this is for listing multiple entries.
#
# Note: Abbreviating the hash ("id") is not yet supported in the "show" command,
# thus we print the id here without abbreviating it. To abbreviate it to 5
# characters, use:
#
# {{abbrev 5 id}}
#
list_format = "{{lpad 5 i}} | {{id}} | {{FN}} | {{mail}} | {{adr}}"
# The format when printing a single contact
#
# Here, the same rules like for the list format apply.
# Multiple lines should work fine.
# The "i" variable defaults to zero (0)
show_format = """
{{id}} - {{UID}}
Full name: {{FN}}
Email : {{EMAIL}}
Address : {{ADR}}
"""