branch: externals/ergoemacs-mode commit 6f93579182fdfbd1123f1b8e3eebfbbd646e75e1 Author: Matthew Fidler <514778+mattfid...@users.noreply.github.com> Commit: Matthew Fidler <514778+mattfid...@users.noreply.github.com>
Use meta for term mode types items --- ergoemacs-cua.el | 6 +++- ergoemacs-mode.el | 5 ++- ergoemacs-themes.el | 90 ++++++++++++++++++++++++++++------------------------- 3 files changed, 56 insertions(+), 45 deletions(-) diff --git a/ergoemacs-cua.el b/ergoemacs-cua.el index 79da893..7a276ba 100644 --- a/ergoemacs-cua.el +++ b/ergoemacs-cua.el @@ -119,6 +119,8 @@ This override is enabled for active regions before the copy and paste are enable "Buffer-local variable that may disable the CUA keymappings.") (make-variable-buffer-local 'ergoemacs-inhibit-cua-keys) +(defvar ergeoemacs-mode-term-raw-mode) + (defun ergoemacs--select-keymaps () "Setup conditions for selecting the proper keymaps in `ergoemacs--keymap-alist'." ;; The prefix override (when mark-active) operates in three substates: @@ -126,10 +128,11 @@ This override is enabled for active regions before the copy and paste are enable ;; [2] Immediately after using a prefix key ;; [3] A fraction of a second later (setq ergoemacs--ena-region-keymap ; Determines if the ergion is active - (and (region-active-p) (not deactivate-mark)) + (and (not ergeoemacs-mode-term-raw-mode) (region-active-p) (not deactivate-mark)) ;; Enable Override -- This is the first state where the keys are intercepted; cua state [1] ergoemacs--ena-prefix-override-keymap (and ergoemacs--ena-region-keymap + (not ergeoemacs-mode-term-raw-mode) ergoemacs-enable-cua-keys (not ergoemacs-inhibit-cua-keys) (or (eq ergoemacs-enable-cua-keys t) @@ -139,6 +142,7 @@ This override is enabled for active regions before the copy and paste are enable ;; Enable The repeat layer. This is the layer that the keys are intercepted; cua state [2] ergoemacs--ena-prefix-repeat-keymap (and ergoemacs--ena-region-keymap + (not ergeoemacs-mode-term-raw-mode) (or (timerp ergoemacs--prefix-override-timer) (eq ergoemacs--prefix-override-timer 'shift)))) ;; In ergoemacs-mode the corresponding `cua--ena-cua-keys-keymap' and `cua--ena-global-mark-keymap' are not needed or used diff --git a/ergoemacs-mode.el b/ergoemacs-mode.el index 5c38861..f407da6 100644 --- a/ergoemacs-mode.el +++ b/ergoemacs-mode.el @@ -420,9 +420,12 @@ after initializing ergoemacs-mode. ;; Enable shifted fallbacks for C-x and C-c when region is active +(defvar ergoemacs-mode-term-raw-keymap (make-sparse-keymap) + "This is the `ergoemacs-mode' terminal raw keymap. Only Meta/alt keys are applied.") (defun ergoemacs-setup-override-keymap () "Setup `ergoemacs-mode' keymaps." - (setq ergoemacs-override-alist `((ergoemacs--ena-prefix-override-keymap . ,ergoemacs--prefix-override-keymap) + (setq ergoemacs-override-alist `((ergeoemacs-mode-term-raw-mode . ,ergoemacs-mode-term-raw-keymap) + (ergoemacs--ena-prefix-override-keymap . ,ergoemacs--prefix-override-keymap) (ergoemacs--ena-prefix-repeat-keymap . ,ergoemacs--prefix-repeat-keymap) (ergoemacs--ena-region-keymap . ,ergoemacs-mark-active-keymap) (ergoemacs-mode . ,ergoemacs-user-keymap) diff --git a/ergoemacs-themes.el b/ergoemacs-themes.el index 9285a1c..04231fc 100644 --- a/ergoemacs-themes.el +++ b/ergoemacs-themes.el @@ -351,8 +351,6 @@ These keys do not depend on the layout." (define-key keymap (kbd "C-0") 'ergoemacs-text-scale-normal-size) (define-key keymap (kbd "C-)") 'ergoemacs-text-scale-normal-size) - ;; These go into the global map, so they can be overridden by a - ;; local mode map. (define-key keymap (kbd "C-f") 'isearch-forward) (define-key keymap (kbd "C-a") 'mark-whole-buffer) (define-key keymap (kbd "C-z") 'ergoemacs-undo) @@ -377,7 +375,10 @@ These keys do not depend on the layout." (define-key keymap (kbd "C-?") 'info) (define-key keymap (kbd "C-S-o") 'ergoemacs-open-in-external-app) - (define-key keymap (kbd "C-S-t") 'ergoemacs-open-last-closed)) + (define-key keymap (kbd "C-S-t") 'ergoemacs-open-last-closed) + + (define-key keymap (kbd "C-x <ergoemacs-timeout>") 'ergoemacs-cut-line-or-region) + (define-key keymap (kbd "C-c <ergoemacs-timeout>") 'ergoemacs-copy-line-or-region)) (defun ergoemacs-set-move-char (keymap) "Movement by Characters & Set Mark for KEYMAP." @@ -456,9 +457,7 @@ These keys do not depend on the layout." (defun ergoemacs-set-copy (keymap) "Copy, Cut, Paste, Redo and Undo for KEYMAP." (ergoemacs-define-key keymap (kbd "M-x") 'ergoemacs-cut-line-or-region) - (define-key keymap (kbd "C-x <ergoemacs-timeout>") 'ergoemacs-cut-line-or-region) (ergoemacs-define-key keymap (kbd "M-c") 'ergoemacs-copy-line-or-region) - (define-key keymap (kbd "C-c <ergoemacs-timeout>") 'ergoemacs-copy-line-or-region) (ergoemacs-define-key keymap (kbd "M-v") 'ergoemacs-paste) (ergoemacs-define-key keymap (kbd "M-V") 'ergoemacs-paste-cycle) @@ -1278,26 +1277,28 @@ In a terminal, this can be either arrow keys (e.g. meta+O A == <up>) or regular (ergoemacs-set-standard-vars) (ergoemacs-set-standard-fixed ergoemacs-override-keymap) - (ergoemacs-set-move-char ergoemacs-override-keymap) - (ergoemacs-set-move-buffer-reduction ergoemacs-override-keymap) - (ergoemacs-set-move-bracket ergoemacs-override-keymap) - (ergoemacs-set-move-word ergoemacs-override-keymap) - ;;(ergoemacs-set-move-paragraph ergoemacs-override-keymap) - ;;(ergoemacs-set-move-line ergoemacs-override-keymap) - ;;(ergoemacs-set-move-page ergoemacs-override-keymap) - ;;(ergoemacs-set-move-buffer ergoemacs-override-keymap) - (ergoemacs-set-move-bracket-reduction ergoemacs-override-keymap) - (ergoemacs-set-copy ergoemacs-override-keymap) - (ergoemacs-set-search-reduction ergoemacs-override-keymap) - (ergoemacs-set-switch-reduction ergoemacs-override-keymap) - (ergoemacs-set-execute-reduction ergoemacs-override-keymap) - ;;(ergoemacs-set-misc ergoemacs-override-keymap) - (ergoemacs-set-move-extra-reduction ergoemacs-override-keymap) - (ergoemacs-set-kill-line ergoemacs-override-keymap) - (ergoemacs-set-text-transform ergoemacs-override-keymap) - (ergoemacs-set-select-items ergoemacs-override-keymap) - (ergoemacs-fix-arrow-keys ergoemacs-override-keymap) - (ergoemacs-set-apps ergoemacs-override-keymap) + + (dolist (map (list ergoemacs-override-keymap ergoemacs-mode-term-raw-keymap)) + (ergoemacs-set-move-char map) + (ergoemacs-set-move-buffer-reduction map) + (ergoemacs-set-move-bracket map) + (ergoemacs-set-move-word map) + (ergoemacs-set-move-bracket-reduction map) + + (ergoemacs-set-copy map) + (ergoemacs-set-search-reduction map) + (ergoemacs-set-switch-reduction map) + + (ergoemacs-set-execute-reduction map) + (ergoemacs-set-move-extra-reduction map) + (ergoemacs-set-kill-line map) + + (ergoemacs-set-text-transform map) + (ergoemacs-set-select-items map) + + (ergoemacs-fix-arrow-keys map) + (ergoemacs-set-apps map)) + (ergoemacs-install-isearch-mode) (ergoemacs-install-comint-bindings) @@ -1316,25 +1317,28 @@ In a terminal, this can be either arrow keys (e.g. meta+O A == <up>) or regular (ergoemacs-unset-keys ergoemacs-override-keymap) (ergoemacs-set-standard-vars) + + (ergoemacs-set-standard-fixed ergoemacs-override-keymap) - (ergoemacs-set-move-char ergoemacs-override-keymap) - (ergoemacs-set-move-buffer ergoemacs-override-keymap) - (ergoemacs-set-move-bracket ergoemacs-override-keymap) - (ergoemacs-set-move-word ergoemacs-override-keymap) - (ergoemacs-set-move-paragraph ergoemacs-override-keymap) - (ergoemacs-set-move-line ergoemacs-override-keymap) - (ergoemacs-set-move-page ergoemacs-override-keymap) - (ergoemacs-set-move-buffer ergoemacs-override-keymap) - (ergoemacs-set-move-bracket ergoemacs-override-keymap) - (ergoemacs-set-copy ergoemacs-override-keymap) - (ergoemacs-set-search ergoemacs-override-keymap) - (ergoemacs-set-switch ergoemacs-override-keymap) - (ergoemacs-set-execute ergoemacs-override-keymap) - (ergoemacs-set-misc ergoemacs-override-keymap) - (ergoemacs-set-kill-line ergoemacs-override-keymap) - (ergoemacs-set-text-transform ergoemacs-override-keymap) - (ergoemacs-set-select-items ergoemacs-override-keymap) - (ergoemacs-fix-arrow-keys ergoemacs-override-keymap) + (dolist (map (list ergoemacs-override-keymap ergoemacs-mode-term-raw-keymap)) + (ergoemacs-set-move-char map) + (ergoemacs-set-move-buffer map) + (ergoemacs-set-move-bracket map) + (ergoemacs-set-move-word map) + (ergoemacs-set-move-paragraph map) + (ergoemacs-set-move-line map) + (ergoemacs-set-move-page map) + (ergoemacs-set-move-buffer map) + (ergoemacs-set-move-bracket map) + (ergoemacs-set-copy map) + (ergoemacs-set-search map) + (ergoemacs-set-switch map) + (ergoemacs-set-execute map) + (ergoemacs-set-misc map) + (ergoemacs-set-kill-line map) + (ergoemacs-set-text-transform map) + (ergoemacs-set-select-items map) + (ergoemacs-fix-arrow-keys map)) (ergoemacs-install-isearch-mode) (ergoemacs-install-comint-bindings)