diff --git a/config.el b/config.el index 090f5b0..f04d659 100644 --- a/config.el +++ b/config.el @@ -95,6 +95,27 @@ mac-option-modifier 'meta 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