Commit b6840540 authored by Alexander Gramiak's avatar Alexander Gramiak

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.
parent cffc04c4
...@@ -1252,6 +1252,13 @@ near the current column in Tabulated Lists (see variables ...@@ -1252,6 +1252,13 @@ near the current column in Tabulated Lists (see variables
+++ +++
*** 'text-mode-variant' is now obsolete, use 'derived-mode-p' instead. *** 'text-mode-variant' is now obsolete, use 'derived-mode-p' instead.
** CUA mode
---
*** New defcustom 'cua-rectangle-terminal-modifier-key'.
This defcustom allows for the customization of the modifier key used
in a terminal frame.
* New Modes and Packages in Emacs 27.1 * New Modes and Packages in Emacs 27.1
......
...@@ -427,7 +427,7 @@ and after the region marked by the rectangle to search." ...@@ -427,7 +427,7 @@ and after the region marked by the rectangle to search."
(defcustom cua-rectangle-modifier-key 'meta (defcustom cua-rectangle-modifier-key 'meta
"Modifier key used for rectangle commands bindings. "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." Must be set prior to enabling CUA."
:type '(choice (const :tag "Meta key" meta) :type '(choice (const :tag "Meta key" meta)
(const :tag "Alt key" alt) (const :tag "Alt key" alt)
...@@ -435,6 +435,16 @@ Must be set prior to enabling CUA." ...@@ -435,6 +435,16 @@ Must be set prior to enabling CUA."
(const :tag "Super key" super)) (const :tag "Super key" super))
:group 'cua) :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 (defcustom cua-enable-rectangle-auto-help t
"If non-nil, automatically show help for region, rectangle and global mark." "If non-nil, automatically show help for region, rectangle and global mark."
:type 'boolean :type 'boolean
...@@ -1237,10 +1247,9 @@ If ARG is the atom `-', scroll upward by nearly full screen." ...@@ -1237,10 +1247,9 @@ If ARG is the atom `-', scroll upward by nearly full screen."
(defun cua--init-keymaps () (defun cua--init-keymaps ()
;; Cache actual rectangle modifier key. ;; Cache actual rectangle modifier key.
(setq cua--rectangle-modifier-key (setq cua--rectangle-modifier-key
(if (and cua-rectangle-modifier-key (if (eq (framep (selected-frame)) t)
(memq window-system '(x))) cua-rectangle-terminal-modifier-key
cua-rectangle-modifier-key cua-rectangle-modifier-key))
'meta))
;; C-return always toggles rectangle mark ;; C-return always toggles rectangle mark
(define-key cua-global-keymap cua-rectangle-mark-key 'cua-set-rectangle-mark) (define-key cua-global-keymap cua-rectangle-mark-key 'cua-set-rectangle-mark)
(unless (eq cua--rectangle-modifier-key 'meta) (unless (eq cua--rectangle-modifier-key 'meta)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment