about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--exwm-core.el1
-rw-r--r--exwm-input.el9
2 files changed, 8 insertions, 2 deletions
diff --git a/exwm-core.el b/exwm-core.el
index 41c3b5772495..649ef0420b53 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 fa9c1eb1d53d..e051603bad1f 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))