fix: SPC leader key in GUI Emacs on macOS (general-override-mode + explicit binding)

This commit is contained in:
2026-02-22 15:15:20 +01:00
parent 536c7d47ea
commit 0e13b8e988

View File

@@ -95,6 +95,27 @@
mac-option-modifier 'meta mac-option-modifier 'meta
mac-right-option-modifier 'none)) mac-right-option-modifier 'none))
;; Fix C: SPC as leader key in GUI Emacs
;; In GUI mode, general-override-mode may not be active, so evil's default
;; SPC binding (evil-forward-char) takes precedence over Doom's leader key.
;; Force-enable general-override-mode and re-apply SPC → doom-leader-map.
(after! (evil general)
(general-override-mode +1))
(defun my/fix-gui-leader-key (&optional _frame)
"Bind SPC to `doom-leader-map' in evil normal/motion states.
Called for the initial GUI frame and any subsequent frames."
(when (and (display-graphic-p)
(boundp 'doom-leader-map)
(boundp 'evil-normal-state-map))
(define-key evil-normal-state-map (kbd "SPC") doom-leader-map)
(define-key evil-motion-state-map (kbd "SPC") doom-leader-map)))
;; Apply on every new GUI frame (covers emacsclient -c too)
(add-hook 'after-make-frame-functions #'my/fix-gui-leader-key)
;; Apply for the initial frame after Doom finishes init
(add-hook 'doom-after-init-hook #'my/fix-gui-leader-key)
;;; ============================================================ ;;; ============================================================
;;; PERFORMANCE & GC ;;; PERFORMANCE & GC