diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-10 03:48:44 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-10 03:48:44 -0500 |
| commit | 3003683a24cf38dbd2eeeaee6244ad0c1bbe72ee (patch) | |
| tree | 7dec1d786aeccdf77f99fb5af9a602eba65cc96f /modules/prog-webdev.el | |
| parent | b099c779343119ce40f2636469e118ec104002e0 (diff) | |
| download | dotemacs-3003683a24cf38dbd2eeeaee6244ad0c1bbe72ee.tar.gz dotemacs-3003683a24cf38dbd2eeeaee6244ad0c1bbe72ee.zip | |
fix(vterm): force a visible cursor in vterm-copy-mode
vterm's C module sets `cursor-type' to nil whenever the underlying TUI sends DECTCEM (`\e[?25l') to hide the terminal cursor. Most full-screen TUIs do this on startup — Claude Code in an ai-vterm being a daily example. Once the cursor is hidden at the buffer level, vterm-copy-mode inherits that nil and the user can't see where point is when navigating to select text. Selection still works, but you're flying blind.
Add a `vterm-copy-mode-hook' that forces `cursor-type' to a 3-pixel bar on entry and kills the buffer-local override on exit. The bar shape is drawn between characters rather than by inverting one, so heavy TUI face properties don't hide it either. On exit the live terminal goes back to whatever vterm's tracking says, so the TUI's chosen cursor state resumes.
4 ERT tests cover the hook's enter/exit behavior and confirm registration on `vterm-copy-mode-hook'.
Diffstat (limited to 'modules/prog-webdev.el')
0 files changed, 0 insertions, 0 deletions
