config: corfu-terminal on macOS GUI for VoiceOver accessibility

Child frames cause VoiceOver to announce 'X window' and break
focus tracking.  corfu-terminal renders via overlays, which the
VoiceOver overlay completion patch (0007) handles automatically.
This commit is contained in:
2026-02-28 16:49:40 +01:00
parent 9772b7e33e
commit 190a4ae346

View File

@@ -662,10 +662,14 @@ Skip for beamer exports — beamer uses adjustbox on plain tabular."
(lambda () (lambda ()
(add-hook 'completion-at-point-functions #'yasnippet-capf 0 t))))) (add-hook 'completion-at-point-functions #'yasnippet-capf 0 t)))))
;; Corfu popup in terminal — only for Emacs < 31 (31+ handles it natively) ;; Corfu popup rendering: use overlays instead of child frames.
;; On macOS (NS), child frames cause VoiceOver to announce "X window"
;; and break focus tracking. corfu-terminal renders via overlays,
;; which patch 0007 (overlay completion) handles automatically.
;; On terminal Emacs < 31, also needed (31+ handles it natively).
(use-package! corfu-terminal (use-package! corfu-terminal
:when (and (not (display-graphic-p)) :when (or (not (display-graphic-p))
(< emacs-major-version 31)) (eq window-system 'ns))
:after corfu :after corfu
:config :config
(corfu-terminal-mode +1)) (corfu-terminal-mode +1))