Feature: /theme slash command and custom theme palettes
Nobody has claimed this yet.
- 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:
- Switch theme from inside the TUI without editing config and restarting.
- Define a custom color palette (e.g. a branded or accessibility-oriented scheme).
Proposal
/themeslash command cycles / selects themes (auto, dark, light, or a custom theme file name).- Custom themes live in
~/.jcode/themes/<name>.tomland define a palette of named colors. - Themes with an explicit background color fill
Color::Resetcells 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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