configuration

Configure slk to your taste.

slk reads a single TOML file at ~/.config/slk/config.toml. Every key is optional — sensible defaults cover everything. This page walks through each section in the order you'd typically reach for it.

The full example

Copy this into ~/.config/slk/config.toml as a starting point, then trim what you don't need.

[general]
default_workspace = "myteam"

[appearance]
theme = "dracula"
timestamp_format = "3:04 PM"

[animations]
enabled = true
smooth_scrolling = true
typing_indicators = true

[notifications]
enabled = true
on_mention = true
on_dm = true
on_keyword = ["deploy", "incident"]
quiet_hours = "22:00-08:00"   # planned

[cache]
message_retention_days = 30
max_db_size_mb = 500

[sections.Alerts]
channels = ["alerts", "ops", "*-alerts"]
order = 1

[sections.Engineering]
channels = ["eng-*", "deploys", "bugs"]
order = 2

[theme]
primary    = "#4A9EFF"
accent     = "#50C878"
background = "#1A1A2E"
text       = "#E0E0E0"

[general]

Workspace-wide defaults.

[appearance]

How slk looks at the surface level.

[animations]

If your terminal is slow or you find motion distracting, set enabled = false and the others stop applying.

[notifications]

OS-level desktop notifications. Suppressed automatically when you're focused on the relevant channel.

[cache]

slk keeps a local SQLite cache of message history. These knobs control how aggressive it is.

[sections.*] — custom channel sections

By default channels are grouped by Slack's own categories. You can override that with one or more [sections.Name] tables. Each section is a glob over channel names.

[sections.Alerts]
channels = ["alerts", "ops", "*-alerts"]
order = 1

[sections.Engineering]
channels = ["eng-*", "deploys", "bugs"]
order = 2

[theme] — inline color overrides

If you like a built-in theme but want to nudge a few colors, set them under [theme]. They override the active theme's values, leaving everything else intact.

[theme]
primary    = "#4A9EFF"
accent     = "#50C878"
background = "#1A1A2E"
text       = "#E0E0E0"

For a full theme — every color, sidebar variants, etc. — write a custom theme file instead (next section).

Custom themes

Drop a .toml file into ~/.config/slk/themes/ to add a new theme. The filename (minus extension) is the theme's slug; set theme = "<slug>" under [appearance] to use it.

name = "My Theme"

[colors]
primary      = "#BD93F9"
accent       = "#50FA7B"
warning      = "#FFB86C"
error        = "#FF5555"
background   = "#282A36"
surface      = "#343746"
surface_dark = "#21222C"
text         = "#F8F8F2"
text_muted   = "#6272A4"
border       = "#44475A"

# Optional: separate sidebar/rail palette so the sidebar can be darker
# than the message pane (Slack's default look). Falls back to
# background/text/text_muted/surface_dark when omitted.
sidebar_background = "#19171D"
sidebar_text       = "#D1D2D3"
sidebar_text_muted = "#9A9B9E"
rail_background    = "#19171D"

Data paths

slk follows the XDG base directory spec.

PathContents
~/.config/slk/Configuration, custom themes
~/.local/share/slk/SQLite cache, tokens
~/.cache/slk/Avatars, image cache

Stuck or want a key documented that's not here? Open an issue.