[BUG] Character under cursor is illegible when terminal has CustomCursorTextColor set (Konsole)
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
When typing in Claude Code's input box and moving the cursor mid-line (with arrow keys), the character under the cursor block is rendered in a dark color that does not respect the terminal's configured cursor text color, making it illegible against the cursor block.
What Should Happen?
The character under the cursor should be rendered with the terminal's configured CustomCursorTextColor (white in this case), as it correctly does in plain zsh and in vim/neovim running in the same terminal profile.
Error Messages/Logs
N/A — visual rendering issue.
Steps to Reproduce
- Use Konsole with a profile that has these settings in ~/.local/share/konsole/<profile>.profile:
[Cursor Options]
CustomCursorColor=17,122,110
CustomCursorTextColor=255,255,255
UseCustomCursorColor=true
- Open Claude Code and type a sentence
- Press ← arrow keys to move the cursor mid-line over a character.
- Observe that the cursor block renders in teal (the configured custom cursor color) but the character underneath is rendered dark instead of white.
- For comparison, exit Claude Code, run echo "test cursor here" in zsh, recall it with ↑, and move cursor mid-line, character is correctly rendered white on teal.
- Same for :e in neovim — character correctly white on teal.
Claude Model
Not sure / Multiple models
Is this a regression?
I don't know
Last Working Version
-
Claude Code Version
2.1.132 (Claude Code)
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux
Terminal/Shell
Other
Additional Information
- Reproduced with both theme: "dark" and theme: "dark-ansi".
- zsh and neovim/vim in the same Konsole profile render the cursor character correctly per CustomCursorTextColor, so the issue is specific to Claude Code's TUI renderer
- Likely cause: the renderer applies reverse video (\e[7m) or similar attribute at the cursor position, which prevents Konsole from applying its CustomCursorTextColor override.
- Workaround: set UseCustomCursorColor=false in the Konsole profile (loses the custom cursor in zsh/vim too).
Neovim:
<img width="671" height="766" alt="Image" src="https://github.com/user-attachments/assets/696f95bb-f07f-4d25-96fc-33d17f68ddd0" />
zsh:
<img width="449" height="45" alt="Image" src="https://github.com/user-attachments/assets/fc0bd7e2-e5e4-49ce-99a3-d20a55c47d09" />
Claude Code:
<img width="687" height="101" alt="Image" src="https://github.com/user-attachments/assets/9b901916-563d-431c-8c14-9be610d5f444" />
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗