aboutsummaryrefslogtreecommitdiff
path: root/modules/eshell-vterm-config.el
Commit message (Collapse)AuthorAgeFilesLines
* fix(ai-vterm): direction-based display + per-project tmux session namesCraig Jennings2026-05-071-2/+8
| | | | | | | | | | | | Two post-ship issues blocked practical use of the new launcher. The display rule used `display-buffer-in-side-window` with `(dedicated . t)`. Side-window dedication caused `set-window-buffer` to error during `buffer-move` (C-M-arrows), which left a half-finished swap with both sides showing the claude buffer. Then `switch-to-buffer` on a non-claude buffer in that dedicated window split instead of replacing. I rewrote the rule as `display-buffer-reuse-window -> display-buffer-use-some-window -> display-buffer-in-direction (right)`. The resulting window is ordinary, not dedicated, so swap and replace work normally. I also narrowed `vterm-toggle`'s broad lambda (which matches any vterm-mode buffer) to exclude `claude [` buffers. Otherwise vterm-toggle's `:defer` made it install last and capture our buffers first with its own bottom-split + dedicated treatment. The tmux side: vterm's auto-launch hook ran a bare `tmux\n`, so each session got an auto-named one. After an Emacs crash the tmux session would survive but I couldn't find it. A second F9 just spawned another. The launcher now sends `tmux new-session -A -s <basename> -c <dir> '<claude>; exec bash'`. The `-A` reattaches to a same-named session if it already exists. The `exec bash` keeps the tmux window alive if claude itself exits. A `cj/--ai-vterm-suppress-tmux` flag tells the existing vterm hook to skip its bare tmux step so the named launch runs instead. 11 new tests across 2 files cover the session-name and launch-command helpers. I updated tests for show-or-create and the display rule. All 34 ai-vterm tests are green.
* feat(ai-vterm): add Claude launcher with vertical-split vtermCraig Jennings2026-05-071-2/+8
| | | | | | | | The new module picks a Claude-template project from a filtered completing-read list. It scans the same roots the `ai` shell launcher uses, then opens or reuses a vterm buffer named `claude [<repo>]` on the right. F9 launches it. The prior `cj/toggle-gptel` binding moves from F9 to C-F9 so both AI tools share the same physical key. The display rule chains reuse-window -> use-some-window -> in-direction (right). The resulting window isn't dedicated. That matters because side-window dedication was breaking `buffer-move` (C-M-arrows) and `switch-to-buffer` replacement on the claude buffer. I also narrowed `vterm-toggle`'s display rule to skip `claude [` buffers. Otherwise it claimed them first with its bottom-split + dedicated treatment. I added 23 tests across 5 files: the buffer-name transform, candidate walker, show-or-create dispatch, picker, and display rule. Design lives at docs/design/ai-vterm.org.
* fix(eshell): correct call shape in eshell/find-using-diredCraig Jennings2026-04-291-2/+2
| | | | The body had `(find-name-dired . escaped-pattern)`, a dotted pair instead of a function call. The reader accepts it, but the form crashes the moment the `f` alias runs. find-name-dired takes (DIR PATTERN), so the right shape passes default-directory and the escaped pattern.
* feat(vterm): pass F8, F9, F10 through to EmacsCraig Jennings2026-04-071-0/+3
| | | | | | Add nil bindings for F8 (agenda), F9 (gptel), and F10 (music) in vterm-mode-map so these global keybindings aren't swallowed by vterm. Also disable wttrin-debug and update abbreviations.
* feat:eshell: Add custom 'clear' function and set PAGER to 'cat'Craig Jennings2025-11-011-3/+11
| | | | | | Set the environment variable PAGER to 'cat' to disable pagination in eshell. Remove existing alias for 'clear' and introduce a new custom 'eshell/clear' function that clears the eshell buffer.
* fix:eshell:allow eshell to load by removing dependency on itselfCraig Jennings2025-10-311-1/+0
|
* refactor:eshell-vterm-config): update keymap and eshell loadingCraig Jennings2025-10-231-5/+4
| | | | | | | Replace `define-key` with `keymap-set` for better key binding clarity and reliability. Switch eshell loading from `:defer .5` to `:commands (eshell)` for on-demand loading. Remove unnecessary `:defer` from `xterm-color`.
* feat:vshell: vterm main term, launch tmux auto, larger real estateCraig Jennings2025-10-191-5/+13
| | | | | | - changed vterm to be the main terminal on f12, eshell to be the one on C-f12 - vterm and eshell now take 50% real estate - tmux launches automatically when vterm launches
* changing repositoriesCraig Jennings2025-10-121-0/+229