1jehuang / 1jehuang/jcode

Feature: /theme slash command and custom theme palettes

Open
#836 9 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

autonomous: no enhancement triage: needs-decision
Dominant language
Rust
Stars
19.9k
Forks
2.3k
Avg merge
2d 7h
Merged PRs (30d)
30

Description

Summary

Add a /theme slash command to the TUI for switching between built-in and custom color themes, plus support for custom theme palettes defined as TOML files under ~/.jcode/themes/<name>.toml.

Problem

jcode ships with auto/dark/light theme detection, but users have no way to:

  1. Switch theme from inside the TUI without editing config and restarting.
  2. Define a custom color palette (e.g. a branded or accessibility-oriented scheme).

Proposal

  • /theme slash command cycles / selects themes (auto, dark, light, or a custom theme file name).
  • Custom themes live in ~/.jcode/themes/<name>.toml and define a palette of named colors.
  • Themes with an explicit background color fill Color::Reset cells so the app is readable regardless of the terminal default background.
  • Custom themes that declare their own palette opt out of the terminal-adaptation (luminance-flip) pass.

Implementation

A working implementation is ready for review on the feature/themes-light-dark-config branch (rebased onto latest master, 699 insertions across 20 files, jcode-config-types + jcode-tui-style + jcode-tui build, theme + tui-style tests pass).

@1jehuang would be great if you could take a look.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the feature/themes-light-dark-config branch and the jcode-config-types, jcode-tui-style, and jcode-tui changes. Run the theme and tui-style tests, then verify the /theme command, built-in and custom palettes, TOML theme loading, background filling, and terminal-adaptation behavior described in the issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.