| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
| |
Bring eshell closer to the zsh terminal it replaces. The prompt now shows the git branch (read from .git/HEAD, no subprocess, skipped on remote so TRAMP stays fast) and a [N] exit-status segment when the last command failed, matching the zsh prompt's info. Add a zoxide z command and an eshell-directory-change hook that feeds zoxide add, sharing the same frecency database as the zsh shell. New tests cover the pure prompt helpers.
|
| |
|
|
|
|
| |
xterm-color
Point the F12 dock-and-remember toggle at eshell instead of a standalone EAT zsh shell, so the primary terminal is eshell running through EAT (eat-eshell-mode): elisp functions as commands, TRAMP transparency, and EAT rendering visual commands. Drop the eshell-toggle package and its C-<f12> binding, since F12 covers it now. Drop xterm-color from eshell, since EAT handles ANSI color natively and its TERM=xterm-256color fought EAT's own. The toggle's buffer predicate now matches eshell-mode; the toggle tests and fixture are updated.
|
| |
|
|
| |
Enable eat-eshell-mode so eshell's external commands run in a real EAT terminal: visual commands (vim, htop, less) render properly and ANSI output is faithful, while eshell stays the shell (elisp functions as commands, TRAMP transparency). Activated when eshell loads. EAT handles color natively, so it likely supersedes xterm-color for eshell -- left in place pending an interactive color check.
|
| |
|
|
| |
Set eat-sixel-render-formats and eat-query-before-killing-running-terminal explicitly. Both are EAT defaults; making them explicit documents that inline images and the safety prompt are wanted.
|
| | |
|
| |
|
|
| |
Set EAT's shell-integration and interaction options in eat-config.el. Enable yank-to-terminal (the one useful default that ships off), and affirm directory tracking, prompt annotations, command history, mouse, kill-from-terminal, and alt-screen explicitly so the config documents intent. Bump scrollback to 10MB to match the old ghostel. Truecolor is already on via the compiled eat-truecolor terminfo. Directory tracking, annotations, and history only activate once the shell sources EAT's integration script, added to the zsh rc separately.
|
| |
|
|
| |
Move the eat use-package, the F12/C-; keymap wiring, and the F12 dock-and-remember toggle out of term-config.el into a dedicated eat-config.el. term-config.el keeps ghostel (ai-term's backend) and requires eat-config for cj/term-toggle and cj/turn-off-chrome-for-term. Pure relocation, no behavior change. First step toward consolidating on EAT and retiring ghostel. The toggle tests now require eat-config.
|
| |
|
|
| |
Expand each command's output to realistic length. The eza listing now shows a full directory of nine entries, git status shows staged, unstaged, deleted, and untracked files, git log shows nine commits with a merge graph, and make test shows seven results plus a failure detail and a totals line. One-line results read as toy output; this looks like a real terminal.
|
| |
|
|
| |
Replace the thin EAT preview with four realistic blocks above a reference key: an eza --color listing (the widest dircolors palette), git status, git log --oneline --decorate, and a make test run. Together they exercise all 16 ANSI colors in context plus the bold, faint, and prompt-annotation faces. The palette swatch, attribute, and annotation rows sit below as a key. All 24 exposed EAT faces now appear in the preview.
|
| |
|
|
| |
Add a display-label override for the emms inventory app (emacs multimedia system), and lowercase all the acronym-expansion labels (eat, lsp, shr, emms) so they match the lowercase package-name labels and the package ids. The hovers keep normal capitalization since they are descriptions, not labels.
|
| |
|
|
| |
Clean the app labels and move the "what reuses this" context into the app dropdown's tooltip, so the labels stay short. The foundational face sets name their consumers on hover: ansi-color (vterm, eshell, compilation, ghostel, eat), shr (eww, nov, mu4e/message), gnus (mu4e article view), and dired (dirvish). Labels now carry only the name plus any acronym expansion. A small APP_HOVERS dict in face_data.py feeds an app "hover" field that sets the dropdown's title on selection.
|
| |
|
|
| |
Match the EAT format: lsp-mode -> Language Server Protocol (LSP), shr -> Simple HTML Renderer (SHR).
|
| |
|
|
| |
The EAT faces had no entries in face-docs.json, so their studio hovers showed nothing. Merge in the 24 exposed EAT faces' docstrings. The named color faces are aliases whose first docstring line is alias boilerplate, so this uses the descriptive line ("Face used to render red color text") instead. A full re-dump was avoided because it would drop 85 unrelated erc background-color entries not currently loaded; this is a targeted merge that only adds.
|
| | |
|
| |
|
|
| |
Set eat-kill-buffer-on-exit so exiting the shell (exit, C-d) kills the EAT buffer instead of leaving a dead terminal around, matching the ghostel-kill-buffer-on-exit behavior.
|
| | |
|
| |
|
|
| |
Add EAT as a theme-studio app so its faces become editable in the studio: the 16 named ANSI palette faces, the SGR attribute faces (bold, faint, italic, slow/fast blink), and the three shell-prompt annotation faces. renderEatPreview draws a sample terminal with the palette rows, colored ls output, and the prompt annotations, so editing a face updates the preview live. No seed colors are set, so the faces sit at their own defaults until themed, consistent with the vanilla pass. Mirrors the existing ghostel terminal app.
|
| |
|
|
| |
F12 now creates and toggles a single EAT terminal (pure-elisp, fully themeable) instead of a ghostel one, reusing the existing dock-and-remember geometry toggle. ghostel stays for ai-term on M-SPC. The EAT terminal runs a plain shell with no tmux. F12 and C-; are bound in EAT's semi-char and mode keymaps so they reach Emacs from inside the terminal (EAT forwards unbound keys to the shell otherwise). Retargeted the toggle's buffer predicate and create-new path from ghostel to EAT, and updated the buffer-filter tests to the EAT semantics.
|
| | |
|
| | |
|
| |
|
|
| |
cancel first-f12 (not reproducible)
|
| |
|
|
| |
dashboard-set-heading-icons t adds icons to Projects/Bookmarks/Recent titles, the last open piece of the dashboard-theming fix (file icons and the font-lock fix already landed). Renders colored now that the dashboard is out of global font-lock.
|
| |
|
|
| |
pending)
|
| |
|
|
| |
The video flow extracts audio to a temp .mp3 in /tmp, then derived the .txt/.log from that temp path, so transcripts landed in /tmp and died on reboot, contradicting the "alongside the source" docstring. Thread the source video through cj/--start-transcription-process as an optional output base so the outputs derive from it (talk.mp4 -> talk.txt beside the video). Audio is unchanged. New regression test pins the output base to the source video.
|
| |
|
|
| |
themeable)
|
| |
|
|
| |
The dashboard preview rendered the project/bookmark/recent rows as plain text, so editing dashboard-items-face didn't recolor them. Wrap those rows in dashboard-items-face so the preview reflects the face. It inherits widget-button (unspecified) while unset, so the rows stay bare until the face is themed -- this only makes the preview responsive. Completes the dashboard preview's face coverage.
|
| | |
|
| |
|
|
| |
Three robustness fixes from the config audit. (1) calendar-sync--write-file and --save-state now write a temp file in the same directory and rename it into place, so org-agenda or chime reading mid-write never sees a half-written calendar. (2) The two curl fetches gain --fail, so an HTTP 404/500 error page exits non-zero instead of flowing its HTML into conversion. (3) calendar-sync--parse-ics distinguishes a healthy zero-event calendar (a real iCalendar with BEGIN:VCALENDAR and no in-window events returns the header) from garbage (no VCALENDAR returns nil), so a near-empty calendar no longer reports "parse failed". New robustness tests; the empty-calendar boundary test updated to the corrected behavior. Verified against the live feed: all three calendars fetch and write cleanly.
|
| |
|
|
| |
org-roam is :defer 1, and its :config called cj/build-org-refile-targets, running the multi-file refile scan synchronously at the 1s idle on a cold cache, which froze Emacs at first idle. org-refile-config already schedules the same build on a 5s idle timer, so the org-roam call was a duplicate. Removed it; the 5s timer covers it.
|
| |
|
|
| |
Closer to the actual Calibre logo than the faicon book-open. Switches the launcher's icon function to nerd-icons-codicon, adds the matching declare-function, and adds nerd-icons-codicon to the test's icon mock.
|
| | |
|
| |
|
|
| |
Remove every hardcoded color from the config so nothing assigns a non-themeable value. Stripped: the org-faces defface defaults (28 hex foregrounds, which the theme overrides at runtime anyway), the hl-todo keyword colors, the eshell prompt gray/white, the org-noter and music active-window #1d1b19 bg tint (face-remap is now a no-op), the pdf-view midnight palette, and the calibredb/nov epub sepia. The config now renders with default/theme faces, which surfaces where theming support is missing. Those gaps are tracked in todo.org as the next phase. 0 hex colors remain; validate-modules clean and the org-faces/build-theme/face-diagnostic tests pass.
|
| | |
|
| |
|
|
| |
The popup's q (cj/dirvish-popup-quit) reaps the session's dired buffers, but closing the Hyprland float directly or letting it lose focus bypasses q and orphans them, which is the "leaves a load of buffers around" symptom. A delete-frame-functions hook scoped to the "dirvish" popup frame runs dirvish-quit on every close path. Regular C-x d sessions, where multiple dired buffers are wanted for mark-and-move, and the global dired-kill-when-opening-new-dired-buffer (deliberately off for that same reason) are both untouched. Verified: a navigated popup session drops back to baseline when the frame closes without q.
|
| | |
|
| |
|
|
| |
production fix)
|
| |
|
|
| |
eww-config.el is lexical-binding and the User-Agent advice let-binds url.el's url-request-extra-headers, but the file never declared it special. The byte-compiler then bound it lexically, so the injected header never reached url-retrieve and the desktop User-Agent silently dropped in compiled production (eww kept working, just with the default UA). A top-level (defvar url-request-extra-headers) makes the compiler treat it as dynamic so the binding propagates. The advice tests, which exercise the compiled path, now pass.
|
| | |
|
| |
|
|
| |
The multi-window and single-window collapse tests call cj/ai-term, which captures the current layout into cj/--ai-term-last-direction / cj/--ai-term-last-size on toggle-off, but only let-bound cj/--ai-term-last-was-bury. They leaked last-direction into the display-rule test, whose display-saved action reads those globals to choose the split direction, so its agent buffer split below instead of right and the assertion failed. Let-bind last-direction and last-size to nil, matching the roundtrip test in the same file. Full ai-term suite is green.
|
| |
|
|
| |
collapse-split isolation task
|
| |
|
|
| |
The next-agent step (C-; a n / M-SPC) cycled only live agent buffers, so a detached session (alive in tmux, no Emacs buffer) was reachable only through the picker. Now the queue is every active agent, live buffer or live session, keyed on the project dir and ordered by buffer name. Stepping onto a detached one attaches it: show-or-create recreates the terminal, which reattaches the tmux session. The live-buffer swap path is unchanged. I replaced the buffer-rotation helper with a dir-based one and added an active-agent enumerator, with 10 tests.
|
| |
|
|
| |
unification)
|
| | |
|
| |
|
|
| |
Pins the load-time invariants of the central LSP module: lsp-enable-remote stays nil (no auto-start on TRAMP files), the file-watch-ignore defaults live in one idempotent helper, the eldoc provider is stripped from the global hook, and no mode accrues a duplicate lsp-deferred entry. Tests the top-level :init and helper surface, since :config defaults defer to lsp-mode's own load under make test.
|
| |
|
|
| |
Emacs draws the cursor as a rectangle: its foreground colors the glyph sitting on it and its background is the cursor color, but weight/slant/underline/strike and box are no-ops on it. The UI table now shows only the fg and bg swatches for the cursor row and mutes the style and box cells to a dash, so the studio stops presenting controls Emacs drops. New #cursorrowtest gate; styletest/boxtest retargeted off cursor (it was UI_FACES[0], their generic subject) onto the first styled face.
|
| |
|
|
| |
The two clear wins from the package-list review. avy fills the in-buffer motion gap (C-: jump-to-char-timer, M-g w/l for word/line) that windmove and isearch leave open; wgrep turns a consult-grep / embark-export result into an editable, write-back-across-files refactor (C-c C-p to edit, C-c C-c to apply).
|
| |
|
|
| |
(researched)
|
| |
|
|
| |
derived-mode-p)
|
| | |
|