{{title}} — repartee
Author: outragedevs
Description: repartee — A modern terminal IRC client built with Ratatui, Tokio, and Rust. Scripting, theming, encrypted logging, and more.
Keywords: irc, terminal, tui, client, chat, repartee, ratatui, tokio, rust

# Theming

repartee uses irssi-compatible format strings with 24-bit color support.

## Theme files

Themes are TOML files stored in `~/.repartee/themes/`. Set the active theme in your config:

    [general]
    theme = "mytheme"

This loads `~/.repartee/themes/mytheme.theme`.

## Theme structure

A theme file has two sections: `colors` and `abstracts`.

    [colors]
    bg = "1a1b26"
    bg_alt = "24283b"
    fg = "a9b1d6"
    fg_alt = "565f89"
    highlight = "e0af68"
    nick_self = "7aa2f7"
    timestamp = "565f89"
    separator = "3b4261"

    [abstracts]
    line_start = "{timestamp $Z}{sb_background}"
    timestamp = "%Z565f89$*"
    own_msg = "{ownmsgnick $0}$1"
    pubmsg = "{pubmsgnick $0}$1"

## Colors

The `[colors]` section defines hex RGB values (without `#`) for UI elements:

Key | Description
--- | ---
`bg` | Main background color
`bg_alt` | Alternate background (topic bar, status line)
`fg` | Main text color
`fg_alt` | Muted text color
`highlight` | Highlight/mention color
`nick_self` | Your own nick color
`timestamp` | Timestamp color
`separator` | Border/separator color

## Abstracts

Abstracts are named format string templates that can reference each other. They control how every UI element is rendered — from message lines to the status bar.

See Format Strings for the full format string syntax.

## Default theme

If no theme is set, repartee uses built-in defaults with a dark color scheme inspired by Tokyo Night.