Configuration

All mdedup options can be set with a configuration file.

Location

Location depends on OS (see click-extra doc):

  • macOS: ~/Library/Application Support/mdedup/*.{toml,yaml,yml,json,ini,xml}

  • Unix: ~/.config/mdedup/*.{toml,yaml,yml,json,ini,xml}

  • Windows (roaming): C:\Users\<user>\AppData\Roaming\mdedup\*.{toml,yaml,yml,json,ini,xml}

TOML sample

# My default configuration file.

[mdedup]
verbosity = "DEBUG"
strategy = "discard-older"
action = "delete-discarded"

Troubleshooting

You can easily debug the way mdedup source its configuration with the --show-params:

$ mdedup --show-params
╭──────────────────────────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬─────────────────────────────────────────┬──────────────────────────────────┬─────────────┬────────┬─────────┬──────────────────┬──────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┬─────────────╮
│ IDSpec.ClassParam typePython typeHiddenExposedAllowed in conf?Env. vars.DefaultValueSource      │
├──────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼─────────────────────────────────────────┼──────────────────────────────────┼─────────────┼────────┼─────────┼──────────────────┼──────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┼─────────────┤
│ mdedup.action            │ -a, --action [copy-selected|copy-discarded|move-selected|move-discarded|delete-selected|delete-discarded]                                                                                                                                                                                                                                                                                                                │ click_extra.parameters.Option           │ click_extra.types.EnumChoice     │ str         │ MDEDUP_ACTION'copy-selected'                                                                                                                    │ 'copy-selected'                                                                                                                    │ DEFAULT     │
│ mdedup.color             │ --color, --ansi / --no-color, --no-ansi                                                                                                                                                                                                                                                                                                                                                                                  │ click_extra.colorize.ColorOption        │ click.types.BoolParamType        │ bool        │ MDEDUP_COLORTrue                                                                                                                               │ True                                                                                                                               │ DEFAULT     │
│ mdedup.config            │ --config CONFIG_PATH                                                                                                                                                                                                                                                                                                                                                                                                     │ click_extra.config.ConfigOption         │ click.types.UnprocessedParamType │ str         │ MDEDUP_CONFIG'/home/runner/.config/mdedup/*.toml|*.yaml|*.yml|*.json|*.ini'                                                                     │ '/home/runner/.config/mdedup/*.toml|*.yaml|*.yml|*.json|*.ini'                                                                     │ DEFAULT     │
│ mdedup.config            │ --no-config                                                                                                                                                                                                                                                                                                                                                                                                              │ click_extra.config.NoConfigOption       │ click.types.UnprocessedParamType │ str         │ MDEDUP_CONFIGSentinel.UNSET                                                                                                                     │ Sentinel.UNSET                                                                                                                     │ DEFAULT     │
│ mdedup.content_threshold │ -C, --content-threshold BYTES                                                                                                                                                                                                                                                                                                                                                                                            │ click_extra.parameters.Option           │ click.types.IntRange             │ int         │ MDEDUP_CONTENT_THRESHOLD768                                                                                                                                │ 768                                                                                                                                │ DEFAULT     │
│ mdedup.dry_run           │ -n, --dry-run                                                                                                                                                                                                                                                                                                                                                                                                            │ click_extra.parameters.Option           │ click.types.BoolParamType        │ bool        │ MDEDUP_DRY_RUNFalse                                                                                                                              │ False                                                                                                                              │ DEFAULT     │
│ mdedup.export            │ -E, --export MAIL_BOX_PATH                                                                                                                                                                                                                                                                                                                                                                                               │ click_extra.parameters.Option           │ click.types.Path                 │ str         │ MDEDUP_EXPORTSentinel.UNSET                                                                                                                     │ Sentinel.UNSET                                                                                                                     │ DEFAULT     │
│ mdedup.export_append     │ --export-append                                                                                                                                                                                                                                                                                                                                                                                                          │ click_extra.parameters.Option           │ click.types.BoolParamType        │ bool        │ MDEDUP_EXPORT_APPENDFalse                                                                                                                              │ False                                                                                                                              │ DEFAULT     │
│ mdedup.export_format     │ -e, --export-format [maildir|mbox|mh|babyl|mmdf]                                                                                                                                                                                                                                                                                                                                                                         │ click_extra.parameters.Option           │ click_extra.types.EnumChoice     │ str         │ MDEDUP_EXPORT_FORMAT'mbox'                                                                                                                             │ 'mbox'                                                                                                                             │ DEFAULT     │
│ mdedup.force_unlock      │ -u, --force-unlock                                                                                                                                                                                                                                                                                                                                                                                                       │ click_extra.parameters.Option           │ click.types.BoolParamType        │ bool        │ MDEDUP_FORCE_UNLOCKFalse                                                                                                                              │ False                                                                                                                              │ DEFAULT     │
│ mdedup.hash_body         │ -b, --hash-body [skip|raw|normalized]                                                                                                                                                                                                                                                                                                                                                                                    │ click_extra.parameters.Option           │ click_extra.types.EnumChoice     │ str         │ MDEDUP_HASH_BODY'skip'                                                                                                                             │ 'skip'                                                                                                                             │ DEFAULT     │
│ mdedup.hash_header       │ -h, --hash-header Header-ID                                                                                                                                                                                                                                                                                                                                                                                              │ click_extra.parameters.Option           │ click.types.StringParamType      │ list        │ MDEDUP_HASH_HEADER('Date', 'From', 'To', 'Subject', 'MIME-Version', 'Content-Type', 'Content-Disposition', 'User-Agent', 'X-Priority', 'Message-ID') │ ('Date', 'From', 'To', 'Subject', 'MIME-Version', 'Content-Type', 'Content-Disposition', 'User-Agent', 'X-Priority', 'Message-ID') │ DEFAULT     │
│ mdedup.hash_only         │ -H, --hash-only                                                                                                                                                                                                                                                                                                                                                                                                          │ click_extra.parameters.Option           │ click.types.BoolParamType        │ bool        │ MDEDUP_HASH_ONLYFalse                                                                                                                              │ False                                                                                                                              │ DEFAULT     │
│ mdedup.help              │ --help                                                                                                                                                                                                                                                                                                                                                                                                                   │ click.core.Option                       │ click.types.BoolParamType        │ bool        │ MDEDUP_HELPFalse                                                                                                                              │ False                                                                                                                              │ DEFAULT     │
│ mdedup.input_format      │ -i, --input-format [maildir|mbox|mh|babyl|mmdf]                                                                                                                                                                                                                                                                                                                                                                          │ click_extra.parameters.Option           │ click_extra.types.EnumChoice     │ str         │ MDEDUP_INPUT_FORMATSentinel.UNSET                                                                                                                     │ Sentinel.UNSET                                                                                                                     │ DEFAULT     │
│ mdedup.mail_sources      │                                                                                                                                                                                                                                                                                                                                                                                                                          │ click_extra.parameters.Argument         │ click.types.Path                 │ list        │        │                 │                          │ Sentinel.UNSET                                                                                                                     │ Sentinel.UNSET                                                                                                                     │ DEFAULT     │
│ mdedup.regexp            │ -r, --regexp REGEXP                                                                                                                                                                                                                                                                                                                                                                                                      │ click_extra.parameters.Option           │ click.types.StringParamType      │ str         │ MDEDUP_REGEXPSentinel.UNSET                                                                                                                     │ Sentinel.UNSET                                                                                                                     │ DEFAULT     │
│ mdedup.show_diff         │ -d, --show-diff                                                                                                                                                                                                                                                                                                                                                                                                          │ click_extra.parameters.Option           │ click.types.BoolParamType        │ bool        │ MDEDUP_SHOW_DIFFFalse                                                                                                                              │ False                                                                                                                              │ DEFAULT     │
│ mdedup.show_params       │ --show-params                                                                                                                                                                                                                                                                                                                                                                                                            │ click_extra.parameters.ShowParamsOption │ click.types.BoolParamType        │ bool        │ MDEDUP_SHOW_PARAMSFalse                                                                                                                              │ True                                                                                                                               │ COMMANDLINE │
│ mdedup.size_threshold    │ -S, --size-threshold BYTES                                                                                                                                                                                                                                                                                                                                                                                               │ click_extra.parameters.Option           │ click.types.IntRange             │ int         │ MDEDUP_SIZE_THRESHOLD512                                                                                                                                │ 512                                                                                                                                │ DEFAULT     │
│ mdedup.strategy          │ -s, --strategy [select-older|select-oldest|select-newer|select-newest|discard-newest|discard-newer|discard-oldest|discard-older|select-smaller|select-smallest|select-bigger|select-biggest|discard-biggest|discard-bigger|discard-smallest|discard-smaller|select-matching-path|select-non-matching-path|discard-non-matching-path|discard-matching-path|select-one|select-all-but-one|discard-all-but-one|discard-one] │ click_extra.parameters.Option           │ click_extra.types.EnumChoice     │ str         │ MDEDUP_STRATEGYSentinel.UNSET                                                                                                                     │ Sentinel.UNSET                                                                                                                     │ DEFAULT     │
│ mdedup.table_format      │ --table-format [asciidoc|csv|csv-excel|csv-excel-tab|csv-unix|double-grid|double-outline|fancy-grid|fancy-outline|github|grid|heavy-grid|heavy-outline|html|jira|latex|latex-booktabs|latex-longtable|latex-raw|mediawiki|mixed-grid|mixed-outline|moinmoin|orgtbl|outline|pipe|plain|presto|pretty|psql|rounded-grid|rounded-outline|rst|simple|simple-grid|simple-outline|textile|tsv|unsafehtml|vertical|youtrack]    │ click_extra.table.TableFormatOption     │ click_extra.types.EnumChoice     │ str         │ MDEDUP_TABLE_FORMAT'rounded-outline'                                                                                                                  │ 'rounded-outline'                                                                                                                  │ DEFAULT     │
│ mdedup.time              │ --time / --no-time                                                                                                                                                                                                                                                                                                                                                                                                       │ click_extra.timer.TimerOption           │ click.types.BoolParamType        │ bool        │ MDEDUP_TIMEFalse                                                                                                                              │ False                                                                                                                              │ DEFAULT     │
│ mdedup.time_source       │ -t, --time-source [date-header|ctime]                                                                                                                                                                                                                                                                                                                                                                                    │ click_extra.parameters.Option           │ click_extra.types.EnumChoice     │ str         │ MDEDUP_TIME_SOURCE'date-header'                                                                                                                      │ 'date-header'                                                                                                                      │ DEFAULT     │
│ mdedup.verbose           │ -v, --verbose                                                                                                                                                                                                                                                                                                                                                                                                            │ click_extra.logging.VerboseOption       │ click.types.IntRange             │ int         │ MDEDUP_VERBOSE0                                                                                                                                  │ 0                                                                                                                                  │ DEFAULT     │
│ mdedup.verbosity         │ --verbosity LEVEL                                                                                                                                                                                                                                                                                                                                                                                                        │ click_extra.logging.VerbosityOption     │ click_extra.types.EnumChoice     │ str         │ MDEDUP_VERBOSITY'INFO'                                                                                                                             │ 'INFO'                                                                                                                             │ DEFAULT_MAP │
│ mdedup.version           │ --version                                                                                                                                                                                                                                                                                                                                                                                                                │ click_extra.version.ExtraVersionOption  │ click.types.BoolParamType        │ bool        │ MDEDUP_VERSIONFalse                                                                                                                              │ False                                                                                                                              │ DEFAULT     │
╰──────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴─────────────────────────────────────────┴──────────────────────────────────┴─────────────┴────────┴─────────┴──────────────────┴──────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┴─────────────╯