branch: externals/ergoemacs-mode
commit a38e4f354d4ef8d3791c932fd3378b620a124183
Author: Matthew Fidler <[email protected]>
Commit: Matthew Fidler <[email protected]>
Add option for keeping emacs keys that are not overwritten by ergoemacs
Issue #491
---
ergoemacs-mode.el | 5 +++
ergoemacs-themes.el | 93 +++++++++++++++++++++++++++--------------------------
2 files changed, 52 insertions(+), 46 deletions(-)
diff --git a/ergoemacs-mode.el b/ergoemacs-mode.el
index 8568e7f..f8ced16 100644
--- a/ergoemacs-mode.el
+++ b/ergoemacs-mode.el
@@ -85,6 +85,11 @@ Added beginning-of-buffer Alt+n (QWERTY notation) and
end-of-buffer Alt+Shift+n"
:initialize #'custom-initialize-default
:group 'ergoemacs-display)
+(defun ergoemacs-mode-unbind-emacs-keys t
+ "Unbind emacs keys."
+ :type 'boolean
+ :group 'ergoemacs-mode)
+
(defcustom ergoemacs-theme nil
"Ergoemacs Keyboard Layout Themes."
:type '(choice
diff --git a/ergoemacs-themes.el b/ergoemacs-themes.el
index da73750..c8a2965 100644
--- a/ergoemacs-themes.el
+++ b/ergoemacs-themes.el
@@ -270,52 +270,53 @@ by the emulation map."
(defun ergoemacs-unset-keys (keymap)
"Unset all of the standard keys at once.
Call this before calling any other ergoemacs-set-* function"
- (define-key keymap (kbd "C-x C-f") 'undefined)
- (define-key keymap (kbd "C-x C-s") 'undefined)
- (define-key keymap (kbd "C-x C-w") 'undefined)
- (define-key keymap (kbd "C-x h") 'undefined)
- (define-key keymap (kbd "C-x k") 'undefined)
- (define-key keymap (kbd "C-b") 'undefined)
- (define-key keymap (kbd "C-p") 'undefined)
- (define-key keymap (kbd "C-n") 'undefined)
- (define-key keymap (kbd "C-d") 'undefined)
- (define-key keymap (kbd "M-b") 'undefined)
- (define-key keymap (kbd "M-f") 'undefined)
- (define-key keymap (kbd "M-d") 'undefined)
-
- (define-key keymap (kbd "C-w") 'undefined)
- (define-key keymap (kbd "M-w") 'undefined)
- (define-key keymap (kbd "C-y") 'undefined)
- (define-key keymap (kbd "M-y") 'undefined)
- (define-key keymap (kbd "C-_") 'undefined)
- (define-key keymap (kbd "C-/") 'undefined)
- (define-key keymap (kbd "C-x u") 'undefined)
-
- (define-key keymap (kbd "C-s") 'undefined)
- (define-key keymap (kbd "C-r") 'undefined)
- (define-key keymap (kbd "M-%") 'undefined)
-
- (define-key keymap (kbd "M-{") 'undefined)
- (define-key keymap (kbd "M-}") 'undefined)
- (define-key keymap (kbd "C-a") 'undefined)
- (define-key keymap (kbd "C-e") 'undefined)
-
- (define-key keymap (kbd "M-v") 'undefined)
- (define-key keymap (kbd "C-v") 'undefined)
-
- (define-key keymap (kbd "M->") 'undefined)
- (define-key keymap (kbd "M-<") 'undefined)
-
- (define-key keymap (kbd "C-x 1") 'undefined)
- (define-key keymap (kbd "C-x 0") 'undefined)
- (define-key keymap (kbd "C-x 3") 'undefined)
- (define-key keymap (kbd "C-x 2") 'undefined)
-
- (define-key keymap (kbd "M-x") 'undefined)
- (define-key keymap (kbd "M-!") 'undefined)
- (define-key keymap (kbd "C-l") 'undefined)
- (define-key keymap (kbd "C-k") 'undefined)
- (define-key keymap (kbd "M-;") 'undefined))
+ (when ergoemacs-mode-unbind-emacs-keys
+ (define-key keymap (kbd "C-x C-f") 'undefined)
+ (define-key keymap (kbd "C-x C-s") 'undefined)
+ (define-key keymap (kbd "C-x C-w") 'undefined)
+ (define-key keymap (kbd "C-x h") 'undefined)
+ (define-key keymap (kbd "C-x k") 'undefined)
+ (define-key keymap (kbd "C-b") 'undefined)
+ (define-key keymap (kbd "C-p") 'undefined)
+ (define-key keymap (kbd "C-n") 'undefined)
+ (define-key keymap (kbd "C-d") 'undefined)
+ (define-key keymap (kbd "M-b") 'undefined)
+ (define-key keymap (kbd "M-f") 'undefined)
+ (define-key keymap (kbd "M-d") 'undefined)
+
+ (define-key keymap (kbd "C-w") 'undefined)
+ (define-key keymap (kbd "M-w") 'undefined)
+ (define-key keymap (kbd "C-y") 'undefined)
+ (define-key keymap (kbd "M-y") 'undefined)
+ (define-key keymap (kbd "C-_") 'undefined)
+ (define-key keymap (kbd "C-/") 'undefined)
+ (define-key keymap (kbd "C-x u") 'undefined)
+
+ (define-key keymap (kbd "C-s") 'undefined)
+ (define-key keymap (kbd "C-r") 'undefined)
+ (define-key keymap (kbd "M-%") 'undefined)
+
+ (define-key keymap (kbd "M-{") 'undefined)
+ (define-key keymap (kbd "M-}") 'undefined)
+ (define-key keymap (kbd "C-a") 'undefined)
+ (define-key keymap (kbd "C-e") 'undefined)
+
+ (define-key keymap (kbd "M-v") 'undefined)
+ (define-key keymap (kbd "C-v") 'undefined)
+
+ (define-key keymap (kbd "M->") 'undefined)
+ (define-key keymap (kbd "M-<") 'undefined)
+
+ (define-key keymap (kbd "C-x 1") 'undefined)
+ (define-key keymap (kbd "C-x 0") 'undefined)
+ (define-key keymap (kbd "C-x 3") 'undefined)
+ (define-key keymap (kbd "C-x 2") 'undefined)
+
+ (define-key keymap (kbd "M-x") 'undefined)
+ (define-key keymap (kbd "M-!") 'undefined)
+ (define-key keymap (kbd "C-l") 'undefined)
+ (define-key keymap (kbd "C-k") 'undefined)
+ (define-key keymap (kbd "M-;") 'undefined)))
;;; Fixed components
(defun ergoemacs-set-standard-fixed (keymap)