Skip to content

Live theme preview / switcher within the TUI #67

Description

@boolean-maybe

Summary

Changing themes currently requires editing config.yaml and restarting the application. Add an in-app mechanism to preview and switch themes without restarting.

Background

The theme system supports 14 named themes, but trying them out is a manual cycle of: edit config → restart → evaluate → repeat. This friction discourages exploration, especially for new users choosing a theme for the first time.

Proposed solution

Add a keybinding (e.g., from a settings or appearance menu) that opens a theme picker. The picker would:

  1. List all registered themes via config.ThemeNames()
  2. Apply the selected theme's palette live by calling config.SetColors(ColorsFromPalette(...))
  3. Refresh all visible components to reflect the new colors
  4. Persist the choice to config.yaml on confirmation, or revert on cancel

Considerations

  • tview global styles (Styles.PrimaryTextColor, Styles.PrimitiveBackgroundColor) need updating for light/dark switches
  • Navidown markdown style and chroma code block theme would also need a live refresh
  • Components that cache colors at construction time (e.g., NewTaskList()) may need a refresh mechanism

Parent issue

Sub-issue of #9

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions