diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-05 05:28:58 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-05 05:28:58 -0500 |
| commit | ebdf9e466b0e1f86e9b7d76650ac32408273e7a7 (patch) | |
| tree | dab9b453f3a93c324b5388b3843502a088c7ed46 /modules/ui-config.el | |
| parent | c094b2e4e64530379a9cb273303308a9affcabf6 (diff) | |
| download | dotemacs-ebdf9e466b0e1f86e9b7d76650ac32408273e7a7.tar.gz dotemacs-ebdf9e466b0e1f86e9b7d76650ac32408273e7a7.zip | |
feat(term): replace vterm with ghostel as the terminal engine
I swapped the terminal engine from vterm to ghostel (libghostty-vt) everywhere. term-config replaces vterm-config (the F12 terminal, the C-; x menu, tmux history capture), and ai-term replaces ai-vterm (the F9 Claude-agent launcher). ghostel renders the agent TUI without vterm's flicker under heavy streaming, and one engine now covers every terminal workflow.
Two behavior changes fall out of the swap. F9 launches in a terminal frame now: ghostel renders in TTY frames, so the old GUI-only guard is gone. Terminal windows no longer dim when unfocused: ghostel resolves its palette into the native module per-terminal, so there's no per-window color hook to dim through the way vterm had.
auto-dim drops its vterm color-advice path, the dashboard Terminal button launches ghostel, and the vterm and vterm-toggle packages are removed. The tmux pane-history and copy-mode machinery carried over unchanged. It keys on the pty tty, which ghostel exposes.
Diffstat (limited to 'modules/ui-config.el')
| -rw-r--r-- | modules/ui-config.el | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/modules/ui-config.el b/modules/ui-config.el index a4c18421..7afe528b 100644 --- a/modules/ui-config.el +++ b/modules/ui-config.el @@ -111,16 +111,17 @@ When `cj/enable-transparency' is nil, reset alpha to fully opaque." One of `read-only', `overwrite', `modified', or `unmodified' — keys of `cj/buffer-status-colors'. -A live vterm buffer (in `vterm-mode' but NOT `vterm-copy-mode') -reports `unmodified' even though `vterm-mode' sets `buffer-read-only': -keystrokes there go to the terminal process, so from the user's side -the buffer is writeable, and the read-only (orange) cursor would be -misleading. `vterm-copy-mode' is the exception — there the buffer -really is a read-only Emacs buffer the user navigates, so it falls -through to `read-only' and keeps the orange cursor." +A live ghostel terminal (in `ghostel-mode' and an input mode that +forwards keys — semi-char / char / line) reports `unmodified' even +though the buffer is read-only: keystrokes go to the terminal process, +so from the user's side the buffer is writeable and the read-only +(orange) cursor would be misleading. ghostel's `copy' and `emacs' +input modes are the exception — there the buffer really is a read-only +Emacs buffer the user navigates, so it falls through to `read-only' +and keeps the orange cursor." (cond - ((and (eq major-mode 'vterm-mode) - (not (bound-and-true-p vterm-copy-mode))) + ((and (eq major-mode 'ghostel-mode) + (not (memq (bound-and-true-p ghostel--input-mode) '(copy emacs)))) 'unmodified) (buffer-read-only 'read-only) (overwrite-mode 'overwrite) |
