From a6cfe3f22d4dff076e3e5da6676c411a52d6590e Mon Sep 17 00:00:00 2001 From: Chris Feng Date: Mon, 26 Feb 2018 00:23:40 +0800 Subject: [PATCH] Forward keys defined in `exwm-mode-map' to Emacs by default * exwm-input.el (exwm-input-prefix-keys): Remove ?\C-c. (exwm-input--on-KeyPress-line-mode): * exwm-core.el (): Detect keys in `exwm-mode-map' in line-mode. --- exwm-core.el | 1 + exwm-input.el | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) 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))