diff --git a/exwm-core.el b/exwm-core.el index 41c3b57..649ef04 100644 --- a/exwm-core.el +++ b/exwm-core.el @@ -189,6 +189,7 @@ least SECS seconds later." (active-minibuffer-window) (memq last-input-event exwm-input--global-prefix-keys) (memq last-input-event exwm-input-prefix-keys) + (assq last-input-event (cdr exwm-mode-map)) (gethash last-input-event exwm-input--simulation-keys)) (set-transient-map (make-composed-keymap (list exwm-mode-map global-map))) diff --git a/exwm-input.el b/exwm-input.el index fa9c1eb..e051603 100644 --- a/exwm-input.el +++ b/exwm-input.el @@ -44,8 +44,12 @@ :group 'exwm) (defcustom exwm-input-prefix-keys - '(?\C-c ?\C-x ?\C-u ?\C-h ?\M-x ?\M-` ?\M-& ?\M-:) - "List of prefix keys EXWM should forward to Emacs when in line-mode." + '(?\C-x ?\C-u ?\C-h ?\M-x ?\M-` ?\M-& ?\M-:) + "List of prefix keys EXWM should forward to Emacs when in line-mode. + +The point is to make keys like 'C-x C-f' forwarded to Emacs in line-mode. +There is no need to add prefix keys for global/simulation keys or those +defined in `exwm-mode-map' here." :type '(repeat key-sequence) :get (lambda (symbol) (mapcar #'vector (default-value symbol))) @@ -562,6 +566,7 @@ instead." ;; (memq event exwm-input--global-prefix-keys) (memq event exwm-input-prefix-keys) + (assq event (cdr exwm-mode-map)) (gethash event exwm-input--simulation-keys))) (setq mode xcb:Allow:AsyncKeyboard) (exwm-input--cache-event event))