Skip to content

Architecture: Support custom user-defined themes via JSON #264

Description

@sfloess

Part of #233: Architecture: Unify curses-java and curses-themes with shared implementation

Scope

Once themes are defined in JSON, extend the system to allow users to create and load custom themes without writing Java or Python code.

Tasks

  • Define a theme search path (e.g., built-in resources, then ~/.config/curses-themes/, then ./themes/)
  • Implement theme discovery: scan directories for .json theme files
  • Validate user-provided themes against the JSON schema at load time with clear error messages
  • Provide a CLI or API to list available themes
  • Write documentation for theme authors: required fields, color values, border character format
  • Add 1-2 example custom themes in documentation

Acceptance Criteria

  • Users can drop a .json file into a themes directory and have it discovered
  • Invalid themes produce clear validation errors (not stack traces)
  • Built-in themes take precedence over user themes with same name (or vice versa, document the policy)
  • Documentation sufficient for a user to create a new theme without reading source code

Metadata

Metadata

Assignees

No one assigned

    Labels

    backlogFuture enhancement for later consideration

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions