tmux-deck 0.1.12

A Tmux session manager. Monitoring multi session Realtime preview.
# tmux-deck configuration (example)
#
# Copy this file to:
#   $XDG_CONFIG_HOME/tmux-deck/config.toml   (usually ~/.config/tmux-deck/config.toml)
# and uncomment/edit the settings you want to change.
#
# tmux-deck is zero-config: every setting below is optional and falls back to
# the built-in default shown here. A missing or malformed file simply uses the
# defaults (a warning is logged for a malformed one) so a broken config can
# never stop the app from starting.

# -----------------------------------------------------------------------------
[preview]
# Preview refresh interval in milliseconds. The CLI flag `--interval` overrides
# this; this overrides the built-in default of 300.
interval = 50

# -----------------------------------------------------------------------------
[theme]
# A named colour preset. One of:
#   default       monochrome   dracula     nord        gruvbox
#   tokyonight    catppuccin   solarized   cyberdream  carbonfox
# `monochrome` distinguishes states by brightness rather than hue (good for
# colour-blind users and minimal terminals).
# preset = "default"
preset = "default"

# Optionally override individual semantic roles on top of the preset. Each value
# is a colour name (`red`, `darkgray`, `lightblue`, …), a 256-colour index
# ("208"), or a truecolor hex ("#rrggbb").
[theme.colors]
# focus_border   = "yellow"     # border of the focused list
# unfocus_border = "darkgray"   # border of unfocused lists / muted text
# accent         = "cyan"       # preview/popup borders, headers, info
# selection_bg   = "darkgray"   # selected row background
# selection_fg   = "white"      # selected row foreground
# status_bar_bg  = "darkgray"   # status bar background
# error          = "red"        # errors and destructive actions (kill)
# success        = "green"      # creation accents (new / rename / "No")
# highlight      = "magenta"    # attention accent (multi-preview hint)
# (Claude marker colours are configured per-state under [hooks.claude] below.)

# -----------------------------------------------------------------------------
[keybindings]
# Remap the main actions. A binding is a single key string or a list of them.
# Syntax: a base key, optionally prefixed with modifiers joined by `-`:
#   modifiers : C/Ctrl (control), S/Shift, A/M/Alt
#   keys      : a single character, or one of
#               Esc Enter Tab BackTab Up Down Left Right Space Home End
#               Backspace Delete
# Examples: "q", "C-n", "S-Tab", "Space".
#
# Note: navigation (j/k/h/l, arrows, Tab) and the `za` fold / double-Space
# chords are fixed and not (yet) remappable.
quit           = ["q", "Esc"]
refresh        = "r"
sort           = "s"            # TreeView + Sessions focus only
group          = "g"            # TreeView + Sessions focus only
input          = "i"
enter          = "Enter"
new_session    = "C-n"
rename_session = "C-r"
kill_session   = "C-x"

# -----------------------------------------------------------------------------
# Markers shown for hook-driven agent states. Each marker has a `glyph` and a
# `color`. The colour is a hex colour code ("#rrggbb"). The special glyph
# "spinner" renders the animated braille spinner.
[hooks.claude]
working = { glyph = "spinner", color = "#ff8700" } # prompt submitted / tool running
waiting = { glyph = "", color = "#ff8700" }       # waiting on you (permission/idle)
done    = { glyph = "", color = "#ff8700" }        # finished its turn
error   = { glyph = "", color = "#ff8700" }        # turn ended with an error
running = { glyph = "", color = "#ff8700" }        # process detected, no hook state

# Reserved for future Codex hook integration; currently parsed but not consumed.
[hooks.codex]
# working = { glyph = "spinner", color = "#5fafff" }
# waiting = { glyph = "◆", color = "#5fafff" }
# done    = { glyph = "✓", color = "#5fafff" }
# error   = { glyph = "✗", color = "#5fafff" }
# running = { glyph = "●", color = "#5fafff" }

# -----------------------------------------------------------------------------
[layout]
# Width of the left (lists) panel as a percentage; the preview gets the rest.
session_panel_width = 30
# Vertical split of the left panel: Sessions / Windows / Panes (percentages).
tree_split = [30, 35, 35]
# In MultiPreview, the width percentage of the selected session; the others
# share what remains.
multi_selected_ratio = 70

# -----------------------------------------------------------------------------
[behavior]
default_view    = "tree"   # startup view: "tree" or "multi"
default_sort    = "recent" # "recent", "recent_asc", "abc", "abc_asc"
double_space_ms = 300      # window for a double-Space to toggle the view
exit_on_switch  = true     # exit tmux-deck after switching to a session (Enter)