Configuration

Settings can be configured in the following ways, in order of priority:

  • Command line flag
  • Environment variables
  • Configuration file
  • Default value

The location of the configuration file can be specified using --config or the environment variable SYND_CONFIG_FILE.

By default, synd searches the following locations depending on the platform:

PlatformLocations
Linux$XDG_CONFIG_HOME/syndicationd/config.toml
$HOME/.config/syndicationd/config.toml
macOS$HOME/Library/Application Support/syndicationd/config.toml
Windows{FOLDERID_RoamingAppData}/syndicationd/config.toml

synd does not automatically create configuration files.

To create one, run:

synd config init > config.toml

To inspect the resolved configuration after flags, environment variables, configuration files, and defaults have been applied, use config view.

synd config view
synd config view -o json

Common Settings

FlagEnvironment variableConfiguration fileDefaultDescription
--configSYND_CONFIG_FILE-see aboveConfiguration file path
--logSYND_LOG_FILE[log.path]see synd config viewLog file path
--cache-dirSYND_CACHE_DIR[cache.directory]see synd config viewCache directory
--themeSYND_THEME[theme.name]ferraTheme name
--sqlite-dbSYND_SQLITE_DB[backend.sqlite_db]see synd config viewSQLite database path
--entries-limitSYND_ENTRIES_LIMIT[feed.entries_limit]200Feed entries to fetch
--browserSYND_BROWSER[feed.browser.command]-Command to browse feed
--browser-argsSYND_BROWSER_ARGS[feed.browser.args][]Command args to browse feed
--[keys.<layer>.keymap]built-in keymapCustom key bindings

Theme

The theme can be changed with --theme, SYND_THEME, or [theme.name]. Run synd --help to see the available values.

Log

The default log file path is based on ProjectDirs::data_dir(). Use synd config view to inspect the resolved output destination.

The log directives can be changed with the SYND_LOG environment variable.

SYND_LOG=synd=debug synd

Local Data

The local database path can be set with --sqlite-db, SYND_SQLITE_DB, or [backend.sqlite_db].

synd --sqlite-db ~/.local/share/syndicationd/synd.db

Additional Categories

To add a category, add the following content to the configuration file:

[categories.rust]
icon = { symbol = "R", color = { rgb = 0xF74C00 } }
aliases = ["rs"]

Keymap

Custom key bindings are configured in the config file and merged with the built-in keymap.

[keys.entries]
keymap = [
  { on = "j", command = "entries.next", desc = "Next entry" },
  { on = ["g", "g"], command = "entries.first", desc = "Go to first entry" },
  { on = "up", command = "no_op" },
]

See Keymap for layer names, command names, key notation, and merge behavior.