12.2 Automatic Terminal Feedback

C-e C-q toggles automatic foreground feedback for this terminal; it starts enabled. The same control is s in the focused settings menu. It covers routine output, status, automatic metadata, application-screen boundaries, and process lifecycle feedback. Explicit reading, input and completion feedback, and the configured terminal bell remain available. Verbosity (C-e q v) and background monitoring (C-e q m) are independent preferences.

Automatic speech requires the selected EAT buffer and Emacs keyboard focus. The selected window must follow the live cursor or edit a line-mode draft after terminal output. Reviewing scrollback prevents new output from interrupting you. Another selected terminal or an active minibuffer also suppresses foreground feedback. In terminal-only Emacs, or when keyboard focus cannot be reported, selection within Emacs is the available boundary.

Turning autospeak off or losing eligibility discards locally pending automatic feedback. Speech already sent to Omnivox may finish. Returning or re-enabling speech starts with fresh output; it does not replay missed content. Use explicit review instead. This policy also applies to an embedded Eshell terminal, without changing ordinary Eshell output.

12.2.1 Read output and follow progress

On the main screen, Emacsvox collects a burst before classifying it. Complete new output lines are spoken once, with automatic limits of eight lines and 1,000 characters. Continued input rows and empty terminal placeholders are omitted without hiding output or rereading earlier rows. Output remains eligible even if it scrolls beyond the screen, including repeated identical lines; increasing scrollback is unnecessary for this feedback.

Wrapped output is joined and oversized bursts announce how much was omitted. Fresh text without a newline also speaks, keeping password requests and confirmation questions accessible. Carriage-return progress and status rewrites use rate-limited, replaceable speech. Unchanged repaints and resize-only updates remain silent. Bells, pastes, input-mode changes, application-screen boundaries, and process exit are content-free semantic events rather than arbitrary screen readings.

12.2.2 Recognise and inspect prompts

When EAT shell integration identifies a ready prompt, Emacsvox gives a cue after output instead of reading the prompt text. emacsvox-eat-prompt-feedback defaults to earcon; choose text to hear the prompt or silent to suppress it. This option can be buffer-local and is independent of verbosity, but automatic prompt feedback still obeys foreground autospeak eligibility.

Split and multiline prompts are collected until ready. Redisplay and typing do not repeat them. If several prompts arrive in one burst, feedback describes the final ready prompt.

C-e q p explicitly reads the last identified prompt, even with autospeak off. Recognition does not require margin annotations, but it does require shell integration. An unintegrated remote prompt or question is ordinary output, read as text; the prompt preference does not silence it. The last identified prompt may still belong to the local shell. Use C-e q l for the current retained cursor row in that situation.

12.2.3 Hear input and deletion results

On the main screen in semi-character and character modes, RET is silent. After rendered left/right movement, Emacsvox names the reached character; after up/down it speaks the resulting input or history row without the observed shell prompt. M-b, M-f, and modified left/right word movements speak the rendered text crossed. A boundary key that produces no movement stays silent.

Line-mode history navigation speaks the recalled command once. EAT’s history-item counter and input-restored message remain visible in the echo area without speaking over the command on the notification stream.

An echoed Space is named without rereading the prompt or line. For Backspace, Delete, M-d, and C-k, Emacsvox compares bounded public snapshots before and after the key. One unambiguous same-row removal is read as the actual character or text removed. Otherwise only a deletion tone is given; adjacent prompt or screen text is not guessed as deleted content. Padding and trailing input blanks do not prevent an otherwise unambiguous word deletion.

A no-echo peer provides no visible deletion to announce. This input feedback requires the selected window to follow the live cursor, and is silent during protected password entry, in an unselected terminal, and on an alternate screen where the application owns the keys.

12.2.4 Bells and application-screen changes

Bells retain EAT’s configured sound without speaking "Terminal bell" by default. An aural rule can add a label by matching module eat, role command-interaction, event command-terminal-bell, and occasion notification, with speech before or after the event. Bell notifications remain rate-limited and obey selected-buffer, live-cursor, and secure-input restrictions.

On full-screen or alternate-screen applications, Emacsvox does not read every refresh. A cursor row reached by correlated arrow-style navigation, or a compact high-confidence transfer of selection-like styling, may be announced. Ambiguous repaints remain available to explicit review. Inverse video or a coloured row alone is not proof of an active item.