branch: externals/ergoemacs-mode commit a38e4f354d4ef8d3791c932fd3378b620a124183 Author: Matthew Fidler <514778+mattfid...@users.noreply.github.com> Commit: Matthew Fidler <514778+mattfid...@users.noreply.github.com>
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)