summaryrefslogtreecommitdiff
path: root/lisp/emulation
diff options
context:
space:
mode:
authorAlexander Gramiak <agrambot@gmail.com>2019-04-03 14:06:45 -0600
committerAlexander Gramiak <agrambot@gmail.com>2019-04-06 22:43:59 -0600
commitb68405405e5ee4ce7326e6ef32afbde48bafd7fe (patch)
treedc110034639bf592204ee1dab0700b5f825c22ce /lisp/emulation
parentcffc04c48dfed59ab9d958b9b64948d5fa491fbe (diff)
downloademacs-b68405405e5ee4ce7326e6ef32afbde48bafd7fe.tar.gz
emacs-b68405405e5ee4ce7326e6ef32afbde48bafd7fe.tar.bz2
emacs-b68405405e5ee4ce7326e6ef32afbde48bafd7fe.zip
Introduce new defcustom for terminal CUA rectangle commands
This allows a user to set a non-meta modifier for their terminal should his/her terminal support it. See bug#35058 for background on this change. * lisp/emulation/cua-base.el (cua-rectangle-terminal-modifier-key): New defcustom. * lisp/emulation/cua-base.el (cua--shift-control-x-prefix): Use new defcustom.
Diffstat (limited to 'lisp/emulation')
-rw-r--r--lisp/emulation/cua-base.el19
1 files changed, 14 insertions, 5 deletions
diff --git a/lisp/emulation/cua-base.el b/lisp/emulation/cua-base.el
index 302ef123865..105e1ab43d8 100644
--- a/lisp/emulation/cua-base.el
+++ b/lisp/emulation/cua-base.el
@@ -427,7 +427,7 @@ and after the region marked by the rectangle to search."
(defcustom cua-rectangle-modifier-key 'meta
"Modifier key used for rectangle commands bindings.
-On non-window systems, always use the meta modifier.
+On non-window systems, use `cua-rectangle-terminal-modifier-key'.
Must be set prior to enabling CUA."
:type '(choice (const :tag "Meta key" meta)
(const :tag "Alt key" alt)
@@ -435,6 +435,16 @@ Must be set prior to enabling CUA."
(const :tag "Super key" super))
:group 'cua)
+(defcustom cua-rectangle-terminal-modifier-key 'meta
+ "Modifier key used for rectangle commands bindings in terminals.
+Must be set prior to enabling CUA."
+ :type '(choice (const :tag "Meta key" meta)
+ (const :tag "Alt key" alt)
+ (const :tag "Hyper key" hyper)
+ (const :tag "Super key" super))
+ :group 'cua
+ :version "27.1")
+
(defcustom cua-enable-rectangle-auto-help t
"If non-nil, automatically show help for region, rectangle and global mark."
:type 'boolean
@@ -1237,10 +1247,9 @@ If ARG is the atom `-', scroll upward by nearly full screen."
(defun cua--init-keymaps ()
;; Cache actual rectangle modifier key.
(setq cua--rectangle-modifier-key
- (if (and cua-rectangle-modifier-key
- (memq window-system '(x)))
- cua-rectangle-modifier-key
- 'meta))
+ (if (eq (framep (selected-frame)) t)
+ cua-rectangle-terminal-modifier-key
+ cua-rectangle-modifier-key))
;; C-return always toggles rectangle mark
(define-key cua-global-keymap cua-rectangle-mark-key 'cua-set-rectangle-mark)
(unless (eq cua--rectangle-modifier-key 'meta)