Feature Request: Fine-grained per-element theming (border colors, chevron, prompt vs response foreground)
- Lingua principale
- Shell
- Stelle
- 11.2k
- Fork
- 1.9k
- Merge medio
- 14h 16m
- PR unite (30g)
- 6
Descrizione
### Describe the feature or problem you'd like to solve
The `/theme` command currently supports three high-level modes (`auto`, `dark`, `light`) that control overall ANSI color contrast — which is great for a baseline. It would be wonderful to take this further with **fine-grained theming** that allows customizing the appearance of individual UI elements. This would help users visually distinguish between user prompts, assistant responses, status indicators, and tool output — especially during long sessions where scrolling back to find specific parts of the conversation can be challenging.
### Proposed solution
It would be great to support per-element styling overrides in `config.json` (or a dedicated `theme.json` file). We can think along the lines of:
| UI Element | Customization |
|---|---|
| **User prompt text** | Foreground color |
| **Assistant response text** | Foreground color |
| **User chevron/icon (❯)** | Color, optionally the character itself |
| **Prompt input border / frame** | Border color, style |
| **"Thinking" / status indicators** | Foreground color, animation style |
| **Tool execution output** | Foreground color (muted vs. primary) |
| **Diff view** | Addition/deletion colors |
| **Code blocks** | Background and foreground colors |
| **Timeline / progress bars** | Accent color |
A possible `config.json` structure could look like:
```json
{
"theme": "dark",
"themeOverrides": {
"userPromptFg": "green",
"assistantResponseFg": "white",
"userChevronColor": "cyan",
"promptBorderColor": "blue",
"thinkingIndicatorFg": "yellow",
"toolOutputFg": "gray",
"diffAddFg": "#22c55e",
"diffRemoveFg": "#ef4444",
"codeBlockBg": "#1e1e2e"
}
}
```
Supporting both named ANSI colors (`"green"`, `"cyan"`) and hex values (`"#00FF00"`) for true-color terminals would make this flexible for a wide range of setups.
### Example prompts or workflows
1. Users who want their prompts to **stand out** could set `userPromptFg: "green"` and `promptBorderColor: "cyan"` while keeping responses in default white — making it easy to scroll back and locate what was typed.
2. Streamers could create visually appealing themes with branded accent colors.
3. Users with accessibility needs could increase contrast on specific elements without changing the entire terminal color scheme.
4. Teams could create and share theme JSON files for a consistent experience.
### Additional context
- **Environment:** Windows, Windows Terminal, Copilot CLI latest
---
*This issue was created using GitHub Copilot CLI 😃*
Guida per i contributori
Apri la guida per i contributori
Valutazione
Questa issue non è ancora stata valutata.