[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/ergoemacs-mode 12d5e8e 176/325: Handle conflict between
From: |
Stefan Monnier |
Subject: |
[elpa] externals/ergoemacs-mode 12d5e8e 176/325: Handle conflict between M-O and arrow keys in the terminal |
Date: |
Sat, 23 Oct 2021 18:48:47 -0400 (EDT) |
branch: externals/ergoemacs-mode
commit 12d5e8e76864c74a442f79b97bbdff89eb190cb9
Author: Walter Landry <wlandry@caltech.edu>
Commit: Walter Landry <wlandry@caltech.edu>
Handle conflict between M-O and arrow keys in the terminal
---
ergoemacs-themes.el | 44 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
diff --git a/ergoemacs-themes.el b/ergoemacs-themes.el
index e724c90..827ee91 100644
--- a/ergoemacs-themes.el
+++ b/ergoemacs-themes.el
@@ -1150,6 +1150,49 @@ calling any other ergoemacs-set-* function"
describe-copying)
,(if (eq system-type 'darwin) "Help" "?")))))
+
+(defun ergoemacs-handle-M-O ()
+ "Handle M-O input. In a terminal, this can be either arrow
+keys (e.g. M-O A == <up>) or regular M-O keybinding."
+ (interactive)
+ (if (input-pending-p)
+ (let ((second-char (read-char)))
+ (cond
+ ((eq second-char 65) ;; A
+ (execute-kbd-macro (kbd "<up>"))
+ )
+ ((eq second-char 66) ;; B
+ (execute-kbd-macro (kbd "<down>"))
+ )
+ ((eq second-char 67) ;; C
+ (execute-kbd-macro (kbd "<right>"))
+ )
+ ((eq second-char 68) ;; D
+ (execute-kbd-macro (kbd "<left>"))
+ )
+ ((eq second-char 72) ;; H
+ (execute-kbd-macro (kbd "<home>"))
+ )
+ ((eq second-char 70) ;; F
+ (execute-kbd-macro (kbd "<end>"))
+ )
+ (t
+ (beep)
+ )
+ )
+ )
+ (call-interactively ergoemacs-M-O-binding)
+ )
+ )
+
+(defvar ergoemacs-M-O-binding () nil)
+(defun ergoemacs-fix-arrow-keys (keymap)
+ (setq ergoemacs-M-O-binding (lookup-key keymap (kbd "M-O")))
+ (if ergoemacs-M-O-binding
+ (define-key keymap (kbd "M-O") 'ergoemacs-handle-M-O)
+ )
+ )
+
(ergoemacs-theme standard ()
"Standard Ergoemacs Theme"
)
@@ -1180,6 +1223,7 @@ calling any other ergoemacs-set-* function"
(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-remaps)
(ergoemacs-set-quit)
- [elpa] externals/ergoemacs-mode 2adc6aa 146/325: Remove many C-S- bindings. Make M-C-[:; ] work. Small cleanups., (continued)
- [elpa] externals/ergoemacs-mode 2adc6aa 146/325: Remove many C-S- bindings. Make M-C-[:; ] work. Small cleanups., Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode d198bd3 149/325: Delete dead code, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode 1ca781f 145/325: Fix info mode, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode 238435f 154/325: Lots of isearch fixes, with a few other minor fixes to mode maps, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode cbe3e19 157/325: Add create/delete frame to menu, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode fcea163 151/325: Install an override map instead of futzing with all of the modes, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode 481871c 152/325: Make ergoemacs-paste use term-paste if in term-mode, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode e02abf1 150/325: Remove unused post-command-hook and echo timer, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode 982c28c 171/325: Cleanup, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode 4b6d159 183/325: Remove command-loop and translate stuff, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode 12d5e8e 176/325: Handle conflict between M-O and arrow keys in the terminal,
Stefan Monnier <=
- [elpa] externals/ergoemacs-mode ed8a7c9 191/325: Remove unused theme choice menu, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode 1136451 195/325: Remove all unicode-or-alt logic. Unicode all the way., Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode 18f27c0 204/325: Fix SPC svg help, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode f41b18d 202/325: Remove 'apps and 'menu, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode a65ea4d 211/325: Cleanup unused declarations, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode e9259a5 210/325: Remove unused ergoemacs-component-describe, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode 6bdd55b 213/325: Remove powerline stuff, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode 75b9f50 221/325: More removals, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode acf3dfe 072/325: Cleanup, Stefan Monnier, 2021/10/23
- [elpa] externals/ergoemacs-mode 5257c0e 091/325: Remove commented code, Stefan Monnier, 2021/10/23