From ec108a61dc38f84a3b290f022929331e97784842 Mon Sep 17 00:00:00 2001 From: Ian Eure Date: Fri, 1 Feb 2019 16:55:24 -0800 Subject: [PATCH 1/2] Cleanup simulation key config issues MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * exwm-input.el (exwm-input-simulation-keys): Original key only has one option, so probably shouldn’t be a `choice` type; Move the "User-defined" key value to the top, since that’s the one someone is most likely to want). * exwm-config.el (exwm-config-default): Only set custom vars if there isn’t a saved value for them. --- exwm-config.el | 26 ++++++++++++++------------ exwm-input.el | 8 ++++---- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/exwm-config.el b/exwm-config.el index 50f1366..8223633 100644 --- a/exwm-config.el +++ b/exwm-config.el @@ -31,7 +31,8 @@ (defun exwm-config-default () "Default configuration of EXWM." ;; Set the initial workspace number. - (setq exwm-workspace-number 4) + (unless (get 'exwm-workspace-number 'saved-value) + (setq exwm-workspace-number 4)) ;; Make class name the buffer name (add-hook 'exwm-update-class-hook (lambda () @@ -52,17 +53,18 @@ (interactive (list (read-shell-command "$ "))) (start-process-shell-command command nil command))) ;; Line-editing shortcuts - (setq exwm-input-simulation-keys - '(([?\C-b] . [left]) - ([?\C-f] . [right]) - ([?\C-p] . [up]) - ([?\C-n] . [down]) - ([?\C-a] . [home]) - ([?\C-e] . [end]) - ([?\M-v] . [prior]) - ([?\C-v] . [next]) - ([?\C-d] . [delete]) - ([?\C-k] . [S-end delete]))) + (unless (get 'exwm-input-simulation-keys 'saved-value) + (setq exwm-input-simulation-keys + '(([?\C-b] . [left]) + ([?\C-f] . [right]) + ([?\C-p] . [up]) + ([?\C-n] . [down]) + ([?\C-a] . [home]) + ([?\C-e] . [end]) + ([?\M-v] . [prior]) + ([?\C-v] . [next]) + ([?\C-d] . [delete]) + ([?\C-k] . [S-end delete])))) ;; Enable EXWM (exwm-enable) ;; Configure Ido diff --git a/exwm-input.el b/exwm-input.el index 4f64d35..04020ac 100644 --- a/exwm-input.el +++ b/exwm-input.el @@ -915,8 +915,9 @@ Notes: * The predefined examples in the Customize interface are not guaranteed to work for all applications. This can be tweaked on a per application basis with `exwm-input-set-local-simulation-keys'." - :type '(alist :key-type (choice (key-sequence :tag "Original")) - :value-type (choice (key-sequence :tag "Move left" [left]) + :type '(alist :key-type (key-sequence :tag "Original") + :value-type (choice (key-sequence :tag "User-defined") + (key-sequence :tag "Move left" [left]) (key-sequence :tag "Move right" [right]) (key-sequence :tag "Move up" [up]) (key-sequence :tag "Move down" [down]) @@ -928,8 +929,7 @@ Notes: (key-sequence :tag "Paste" [C-v]) (key-sequence :tag "Delete" [delete]) (key-sequence :tag "Delete to EOL" - [S-end delete]) - (key-sequence :tag "User-defined"))) + [S-end delete]))) :set (lambda (symbol value) (set symbol value) (exwm-input--set-simulation-keys value))) From 97b1fb7c13ad7505ffe144f15875b366f1619f29 Mon Sep 17 00:00:00 2001 From: Chris Feng Date: Wed, 6 Feb 2019 00:00:00 +0000 Subject: [PATCH 2/2] Do the same for `exwm-input-global-keys' --- exwm-config.el | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/exwm-config.el b/exwm-config.el index 8223633..6635e43 100644 --- a/exwm-config.el +++ b/exwm-config.el @@ -37,21 +37,25 @@ (add-hook 'exwm-update-class-hook (lambda () (exwm-workspace-rename-buffer exwm-class-name))) - ;; 's-r': Reset - (exwm-input-set-key (kbd "s-r") #'exwm-reset) - ;; 's-w': Switch workspace - (exwm-input-set-key (kbd "s-w") #'exwm-workspace-switch) - ;; 's-N': Switch to certain workspace - (dotimes (i 10) - (exwm-input-set-key (kbd (format "s-%d" i)) - `(lambda () - (interactive) - (exwm-workspace-switch-create ,i)))) - ;; 's-&': Launch application - (exwm-input-set-key (kbd "s-&") - (lambda (command) - (interactive (list (read-shell-command "$ "))) - (start-process-shell-command command nil command))) + ;; Global keybindings. + (unless (get 'exwm-input-global-keys 'saved-value) + (setq exwm-input-global-keys + `( + ;; 's-r': Reset (to line-mode). + ([?\s-r] . exwm-reset) + ;; 's-w': Switch workspace. + ([?\s-w] . exwm-workspace-switch) + ;; 's-&': Launch application. + ([?\s-&] . (lambda (command) + (interactive (list (read-shell-command "$ "))) + (start-process-shell-command command nil command))) + ;; 's-N': Switch to certain workspace. + ,@(mapcar (lambda (i) + `(,(kbd (format "s-%d" i)) . + (lambda () + (interactive) + (exwm-workspace-switch-create ,i)))) + (number-sequence 0 9))))) ;; Line-editing shortcuts (unless (get 'exwm-input-simulation-keys 'saved-value) (setq exwm-input-simulation-keys