diff options
author | Dan Nicolaescu <dann@ics.uci.edu> | 2005-07-27 18:02:08 +0000 |
---|---|---|
committer | Dan Nicolaescu <dann@ics.uci.edu> | 2005-07-27 18:02:08 +0000 |
commit | 4f0c9ba732c47b273fdb409f258570eae51b94e9 (patch) | |
tree | 2b2f23fe3a7a598dd1ec0d82edf35bc9ef3ed808 /lisp/term | |
parent | e890842c416274d634b715defeab4528cd260373 (diff) | |
download | emacs-4f0c9ba732c47b273fdb409f258570eae51b94e9.tar.gz |
* term/apollo.el (terminal-init-apollo): New function containing
all former top level forms in the file.
* term/bobcat.el (terminal-init-bobcat):
* term/cygwin.el (terminal-init-cygwin):
* term/iris-ansi.el (terminal-init-iris-ansi):
* term/linux.el (terminal-init-linux):
* term/news.el (terminal-init-news):
* term/rxvt.el (terminal-init-rxvt):
* term/sun.el (terminal-init-sun):
* term/tvi970.el (terminal-init-tvi970):
* term/vt100.el (terminal-init-vt100):
* term/vt102.el (terminal-init-vt102):
* term/vt125.el (terminal-init-vt125):
* term/vt200.el (terminal-init-vt200):
* term/vt201.el (terminal-init-vt201):
* term/vt220.el (terminal-init-vt220):
* term/vt240.el (terminal-init-vt240):
* term/vt300.el (terminal-init-vt300):
* term/vt320.el (terminal-init-vt320):
* term/vt400.el (terminal-init-vt400):
* term/vt420.el (terminal-init-vt420):
* term/wyse50.el (terminal-init-wyse50):
* term/xterm.el (terminal-init-xterm): Likewise.
* term/README: Describe the terminal-init-* functionality.
* startup.el (command-line): After loading the terminal
initialization file call the corresponding terminal initialization
function.
Diffstat (limited to 'lisp/term')
-rw-r--r-- | lisp/term/README | 7 | ||||
-rw-r--r-- | lisp/term/apollo.el | 5 | ||||
-rw-r--r-- | lisp/term/bobcat.el | 9 | ||||
-rw-r--r-- | lisp/term/cygwin.el | 5 | ||||
-rw-r--r-- | lisp/term/iris-ansi.el | 594 | ||||
-rw-r--r-- | lisp/term/linux.el | 22 | ||||
-rw-r--r-- | lisp/term/news.el | 80 | ||||
-rw-r--r-- | lisp/term/rxvt.el | 274 | ||||
-rw-r--r-- | lisp/term/sun.el | 216 | ||||
-rw-r--r-- | lisp/term/tvi970.el | 149 | ||||
-rw-r--r-- | lisp/term/vt100.el | 6 | ||||
-rw-r--r-- | lisp/term/vt102.el | 4 | ||||
-rw-r--r-- | lisp/term/vt125.el | 4 | ||||
-rw-r--r-- | lisp/term/vt200.el | 8 | ||||
-rw-r--r-- | lisp/term/vt201.el | 9 | ||||
-rw-r--r-- | lisp/term/vt220.el | 9 | ||||
-rw-r--r-- | lisp/term/vt240.el | 9 | ||||
-rw-r--r-- | lisp/term/vt300.el | 9 | ||||
-rw-r--r-- | lisp/term/vt320.el | 9 | ||||
-rw-r--r-- | lisp/term/vt400.el | 9 | ||||
-rw-r--r-- | lisp/term/vt420.el | 9 | ||||
-rw-r--r-- | lisp/term/wyse50.el | 173 | ||||
-rw-r--r-- | lisp/term/xterm.el | 461 |
23 files changed, 1064 insertions, 1016 deletions
diff --git a/lisp/term/README b/lisp/term/README index 76c64435af1..581f321d3ba 100644 --- a/lisp/term/README +++ b/lisp/term/README @@ -8,7 +8,12 @@ that exists, the last hyphen and what follows it is stripped. If that doesn't yield a file that exists, the previous hyphen is stripped, and so on until all hyphens are gone. For example, if the terminal type is `aaa-48-foo', Emacs will try first `term/aaa-48-foo.el', then `term/aaa-48.el' and finally -`term/aaa.el'. +`term/aaa.el'. Each terminal specific file should contain a function +named terminal-init-TERMINALNAME (eg terminal-init-aaa-48 for +term/aaa-48.el) that Emacs will call in order to initialize the +terminal. The terminal files should not contain any top level forms +that are executed when the file is loaded, all the initialization +actions are performed by the terminal-init-TERMINALNAME functions. When writing terminal packages, there are some things it is good to keep in mind. diff --git a/lisp/term/apollo.el b/lisp/term/apollo.el index 1d04fd35245..749ff85a0a6 100644 --- a/lisp/term/apollo.el +++ b/lisp/term/apollo.el @@ -1,6 +1,7 @@ ;; -*- no-byte-compile: t -*- - -(load "term/vt100" nil t) +(defun terminal-init-apollo () + "Terminal initialization function for apollo." + (load "term/vt100" nil t)) ;;; arch-tag: c72f446f-e6b7-4749-90a4-bd68632adacf ;;; apollo.el ends here diff --git a/lisp/term/bobcat.el b/lisp/term/bobcat.el index b11a4ff8309..82401f7bf71 100644 --- a/lisp/term/bobcat.el +++ b/lisp/term/bobcat.el @@ -1,7 +1,10 @@ ;; -*- no-byte-compile: t -*- -;;; HP terminals usually encourage using ^H as the rubout character -(keyboard-translate ?\177 ?\^h) -(keyboard-translate ?\^h ?\177) + +(defun terminal-init-bobcat () + "Terminal initialization function for bobcat." + ;; HP terminals usually encourage using ^H as the rubout character + (keyboard-translate ?\177 ?\^h) + (keyboard-translate ?\^h ?\177)) ;;; arch-tag: 754e4520-0a3e-4e6e-8ca5-9481b1f85cf7 ;;; bobcat.el ends here diff --git a/lisp/term/cygwin.el b/lisp/term/cygwin.el index d604e0207a0..3bdd5d3aa05 100644 --- a/lisp/term/cygwin.el +++ b/lisp/term/cygwin.el @@ -1,7 +1,10 @@ ;;; cygwin.el --- support for the Cygwin terminal -*- no-byte-compile: t -*- ;;; The Cygwin terminal can't really display underlines. -(tty-no-underline) + +(defun terminal-init-cygwin () + "Terminal initialization function for cygwin." + (tty-no-underline)) ;; arch-tag: ca81ce67-3c41-4883-a29b-4c3d64a21191 ;;; cygwin.el ends here diff --git a/lisp/term/iris-ansi.el b/lisp/term/iris-ansi.el index eae2f419378..ef59860b606 100644 --- a/lisp/term/iris-ansi.el +++ b/lisp/term/iris-ansi.el @@ -1,6 +1,6 @@ ;;; iris-ansi.el --- configure Emacs for SGI xwsh and winterm apps -*- no-byte-compile: t -*- -;; Copyright (C) 1997 Free Software Foundation, Inc. +;; Copyright (C) 1997, 2005 Free Software Foundation, Inc. ;; Author: Dan Nicolaescu <dann@ics.uci.edu> @@ -25,302 +25,306 @@ ;;; Code: -(define-key function-key-map "\e[120q" [S-escape]) -(define-key function-key-map "\e[121q" [C-escape]) - -(define-key function-key-map "\e[001q" [f1]) -(define-key function-key-map "\e[013q" [S-f1]) -(define-key function-key-map "\e[025q" [C-f1]) - - -(define-key function-key-map "\e[002q" [f2]) -(define-key function-key-map "\e[014q" [S-f2]) -(define-key function-key-map "\e[026q" [C-f2]) -(define-key function-key-map "\e[038q" [M-f2]) - -(define-key function-key-map "\e[003q" [f3]) -(define-key function-key-map "\e[015q" [S-f3]) -(define-key function-key-map "\e[027q" [C-f3]) - - -(define-key function-key-map "\e[004q" [f4]) -(define-key function-key-map "\e[016q" [S-f4]) -(define-key function-key-map "\e[028q" [C-f4]) - - -(define-key function-key-map "\e[005q" [f5]) -(define-key function-key-map "\e[017q" [S-f5]) -(define-key function-key-map "\e[029q" [C-f5]) - - -(define-key function-key-map "\e[006q" [f6]) -(define-key function-key-map "\e[018q" [S-f6]) -(define-key function-key-map "\e[030q" [C-f6]) - - -(define-key function-key-map "\e[007q" [f7]) -(define-key function-key-map "\e[019q" [S-f7]) -(define-key function-key-map "\e[031q" [C-f7]) - - -(define-key function-key-map "\e[008q" [f8]) -(define-key function-key-map "\e[020q" [S-f8]) -(define-key function-key-map "\e[032q" [C-f8]) - - -(define-key function-key-map "\e[009q" [f9]) -(define-key function-key-map "\e[021q" [S-f9]) -(define-key function-key-map "\e[033q" [C-f9]) - - -(define-key function-key-map "\e[010q" [f10]) -(define-key function-key-map "\e[022q" [S-f10]) -(define-key function-key-map "\e[034q" [C-f10]) - - -(define-key function-key-map "\e[011q" [f11]) -(define-key function-key-map "\e[023q" [S-f11]) -(define-key function-key-map "\e[035q" [C-f11]) -(define-key function-key-map "\e[047q" [M-f11]) - -(define-key function-key-map "\e[012q" [f12]) -(define-key function-key-map "\e[024q" [S-f12]) -(define-key function-key-map "\e[036q" [C-f12]) -(define-key function-key-map "\e[048q" [M-f12]) - - -(define-key function-key-map "\e[057q" [C-`]) -(define-key function-key-map "\e[115q" [M-`]) - -(define-key function-key-map "\e[049q" [?\C-1]) -(define-key function-key-map "\e[058q" [?\M-1]) - - -(define-key function-key-map "\e[059q" [?\M-2]) - -(define-key function-key-map "\e[050q" [?\C-3]) -(define-key function-key-map "\e[060q" [?\M-3]) - -(define-key function-key-map "\e[051q" [?\C-4]) -(define-key function-key-map "\e[061q" [?\M-4]) - -(define-key function-key-map "\e[052q" [?\C-5]) -(define-key function-key-map "\e[062q" [?\M-5]) - - -(define-key function-key-map "\e[063q" [?\M-6]) - -(define-key function-key-map "\e[053q" [?\C-7]) -(define-key function-key-map "\e[064q" [?\M-7]) - -(define-key function-key-map "\e[054q" [?\C-8]) -(define-key function-key-map "\e[065q" [?\M-8]) - -(define-key function-key-map "\e[055q" [?\C-9]) -(define-key function-key-map "\e[066q" [?\M-9]) - -(define-key function-key-map "\e[056q" [?\C-0]) -(define-key function-key-map "\e[067q" [?\M-0]) - -(define-key function-key-map "\e[068q" [?\M--]) - -(define-key function-key-map "\e[069q" [?\C-=]) -(define-key function-key-map "\e[070q" [?\M-=]) - -;; I don't know what to do with those. -;(define-key function-key-map "^H" [<del>]) -;(define-key function-key-map "^H" [S-<del>]) -;(define-key function-key-map "\177" [C-<del>]) -;(define-key function-key-map "\e[071q" [M-<del>]) - -(define-key function-key-map "\e[Z" [?\S-\t]) -(define-key function-key-map "\e[072q" [?\C-\t]) -;; This only works if you remove the M-TAB keybing from the system.4Dwmrc -;; our your ~/.4Dwmrc, if you use the 4Dwm window manager. -(define-key function-key-map "\e[073q" [?\M-\t]) - -(define-key function-key-map "\e[074q" [?\M-q]) - -(define-key function-key-map "\e[075q" [?\M-w]) - -(define-key function-key-map "\e[076q" [?\M-e]) - -(define-key function-key-map "\e[077q" [?\M-r]) - -(define-key function-key-map "\e[078q" [?\M-t]) - -(define-key function-key-map "\e[079q" [?\M-y]) - -(define-key function-key-map "\e[080q" [?\M-u]) - -(define-key function-key-map "\e[081q" [?\M-i]) - -(define-key function-key-map "\e[082q" [?\M-o]) - -(define-key function-key-map "\e[083q" [?\M-p]) - -(define-key function-key-map "\e[084q" [?\M-\[]) - -(define-key function-key-map "\e[085q" [?\M-\]]) - -(define-key function-key-map "\e[086q" [?\M-\\]) - -(define-key function-key-map "\e[087q" [?\M-a]) - -(define-key function-key-map "\e[088q" [?\M-s]) - -(define-key function-key-map "\e[089q" [?\M-d]) - -(define-key function-key-map "\e[090q" [?\M-f]) - -(define-key function-key-map "\e[091q" [?\M-g]) - -(define-key function-key-map "\e[092q" [?\M-h]) - -(define-key function-key-map "\e[093q" [?\M-j]) - -(define-key function-key-map "\e[094q" [?\M-k]) - -(define-key function-key-map "\e[095q" [?\M-l]) - -(define-key function-key-map "\e[096q" [?\C-\;]) -(define-key function-key-map "\e[097q" [?\M-:]) ;; we are cheating - ;; here, this is realy - ;; M-;, but M-: - ;; generates the same - ;; string and is more - ;; usefull. - -(define-key function-key-map "\e[098q" [?\C-']) -(define-key function-key-map "\e[099q" [?\M-']) - -(define-key function-key-map "\e[100q" [?\M-\n]) - -(define-key function-key-map "\e[101q" [?\M-z]) - -(define-key function-key-map "\e[102q" [?\M-x]) - -(define-key function-key-map "\e[103q" [?\M-c]) - -(define-key function-key-map "\e[104q" [?\M-v]) - -(define-key function-key-map "\e[105q" [?\M-b]) - -(define-key function-key-map "\e[106q" [M-n]) - -(define-key function-key-map "\e[107q" [M-m]) - -(define-key function-key-map "\e[108q" [?\C-,]) -(define-key function-key-map "\e[109q" [?\M-,]) - -(define-key function-key-map "\e[110q" [?\C-.]) -(define-key function-key-map "\e[111q" [?\M-.]) - -(define-key function-key-map "\e[112q" [?\C-/]) -(define-key function-key-map "\e[113q" [?\M-/]) - -(define-key function-key-map "\e[139q" [insert]) -(define-key function-key-map "\e[139q" [S-insert]) -(define-key function-key-map "\e[140q" [C-insert]) -(define-key function-key-map "\e[141q" [M-insert]) - -(define-key function-key-map "\e[H" [home]) -(define-key function-key-map "\e[143q" [S-home]) -(define-key function-key-map "\e[144q" [C-home]) - - -(define-key function-key-map "\e[150q" [prior]) -(define-key function-key-map "\e[151q" [S-prior]) ;; those don't seem +(defun iris-ansi-initialize-terminal () + "Terminal initialization function for iris-ansi." + (define-key function-key-map "\e[120q" [S-escape]) + (define-key function-key-map "\e[121q" [C-escape]) + + (define-key function-key-map "\e[001q" [f1]) + (define-key function-key-map "\e[013q" [S-f1]) + (define-key function-key-map "\e[025q" [C-f1]) + + + (define-key function-key-map "\e[002q" [f2]) + (define-key function-key-map "\e[014q" [S-f2]) + (define-key function-key-map "\e[026q" [C-f2]) + (define-key function-key-map "\e[038q" [M-f2]) + + (define-key function-key-map "\e[003q" [f3]) + (define-key function-key-map "\e[015q" [S-f3]) + (define-key function-key-map "\e[027q" [C-f3]) + + + (define-key function-key-map "\e[004q" [f4]) + (define-key function-key-map "\e[016q" [S-f4]) + (define-key function-key-map "\e[028q" [C-f4]) + + + (define-key function-key-map "\e[005q" [f5]) + (define-key function-key-map "\e[017q" [S-f5]) + (define-key function-key-map "\e[029q" [C-f5]) + + + (define-key function-key-map "\e[006q" [f6]) + (define-key function-key-map "\e[018q" [S-f6]) + (define-key function-key-map "\e[030q" [C-f6]) + + + (define-key function-key-map "\e[007q" [f7]) + (define-key function-key-map "\e[019q" [S-f7]) + (define-key function-key-map "\e[031q" [C-f7]) + + + (define-key function-key-map "\e[008q" [f8]) + (define-key function-key-map "\e[020q" [S-f8]) + (define-key function-key-map "\e[032q" [C-f8]) + + + (define-key function-key-map "\e[009q" [f9]) + (define-key function-key-map "\e[021q" [S-f9]) + (define-key function-key-map "\e[033q" [C-f9]) + + + (define-key function-key-map "\e[010q" [f10]) + (define-key function-key-map "\e[022q" [S-f10]) + (define-key function-key-map "\e[034q" [C-f10]) + + + (define-key function-key-map "\e[011q" [f11]) + (define-key function-key-map "\e[023q" [S-f11]) + (define-key function-key-map "\e[035q" [C-f11]) + (define-key function-key-map "\e[047q" [M-f11]) + + (define-key function-key-map "\e[012q" [f12]) + (define-key function-key-map "\e[024q" [S-f12]) + (define-key function-key-map "\e[036q" [C-f12]) + (define-key function-key-map "\e[048q" [M-f12]) + + + (define-key function-key-map "\e[057q" [?\C-`]) + (define-key function-key-map "\e[115q" [?\M-`]) + + (define-key function-key-map "\e[049q" [?\C-1]) + (define-key function-key-map "\e[058q" [?\M-1]) + + + (define-key function-key-map "\e[059q" [?\M-2]) + + (define-key function-key-map "\e[050q" [?\C-3]) + (define-key function-key-map "\e[060q" [?\M-3]) + + (define-key function-key-map "\e[051q" [?\C-4]) + (define-key function-key-map "\e[061q" [?\M-4]) + + (define-key function-key-map "\e[052q" [?\C-5]) + (define-key function-key-map "\e[062q" [?\M-5]) + + + (define-key function-key-map "\e[063q" [?\M-6]) + + (define-key function-key-map "\e[053q" [?\C-7]) + (define-key function-key-map "\e[064q" [?\M-7]) + + (define-key function-key-map "\e[054q" [?\C-8]) + (define-key function-key-map "\e[065q" [?\M-8]) + + (define-key function-key-map "\e[055q" [?\C-9]) + (define-key function-key-map "\e[066q" [?\M-9]) + + (define-key function-key-map "\e[056q" [?\C-0]) + (define-key function-key-map "\e[067q" [?\M-0]) + + (define-key function-key-map "\e[068q" [?\M--]) + + (define-key function-key-map "\e[069q" [?\C-=]) + (define-key function-key-map "\e[070q" [?\M-=]) + + ;; I don't know what to do with those. + ;;(define-key function-key-map "^H" [<del>]) + ;;(define-key function-key-map "^H" [S-<del>]) + ;;(define-key function-key-map "\177" [C-<del>]) + ;;(define-key function-key-map "\e[071q" [M-<del>]) + + (define-key function-key-map "\e[Z" [?\S-\t]) + (define-key function-key-map "\e[072q" [?\C-\t]) + ;; This only works if you remove the M-TAB keybing from the system.4Dwmrc + ;; our your ~/.4Dwmrc, if you use the 4Dwm window manager. + (define-key function-key-map "\e[073q" [?\M-\t]) + + (define-key function-key-map "\e[074q" [?\M-q]) + + (define-key function-key-map "\e[075q" [?\M-w]) + + (define-key function-key-map "\e[076q" [?\M-e]) + + (define-key function-key-map "\e[077q" [?\M-r]) + + (define-key function-key-map "\e[078q" [?\M-t]) + + (define-key function-key-map "\e[079q" [?\M-y]) + + (define-key function-key-map "\e[080q" [?\M-u]) + + (define-key function-key-map "\e[081q" [?\M-i]) + + (define-key function-key-map "\e[082q" [?\M-o]) + + (define-key function-key-map "\e[083q" [?\M-p]) + + (define-key function-key-map "\e[084q" [?\M-\[]) + + (define-key function-key-map "\e[085q" [?\M-\]]) + + (define-key function-key-map "\e[086q" [?\M-\\]) + + (define-key function-key-map "\e[087q" [?\M-a]) + + (define-key function-key-map "\e[088q" [?\M-s]) + + (define-key function-key-map "\e[089q" [?\M-d]) + + (define-key function-key-map "\e[090q" [?\M-f]) + + (define-key function-key-map "\e[091q" [?\M-g]) + + (define-key function-key-map "\e[092q" [?\M-h]) + + (define-key function-key-map "\e[093q" [?\M-j]) + + (define-key function-key-map "\e[094q" [?\M-k]) + + (define-key function-key-map "\e[095q" [?\M-l]) + + (define-key function-key-map "\e[096q" [?\C-\;]) + (define-key function-key-map "\e[097q" [?\M-:]) ;; we are cheating + ;; here, this is + ;; realy M-;, but + ;; M-: generates the + ;; same string and + ;; is more usefull. + + (define-key function-key-map "\e[098q" [?\C-']) + (define-key function-key-map "\e[099q" [?\M-']) + + (define-key function-key-map "\e[100q" [?\M-\n]) + + (define-key function-key-map "\e[101q" [?\M-z]) + + (define-key function-key-map "\e[102q" [?\M-x]) + + (define-key function-key-map "\e[103q" [?\M-c]) + + (define-key function-key-map "\e[104q" [?\M-v]) + + (define-key function-key-map "\e[105q" [?\M-b]) + + (define-key function-key-map "\e[106q" [M-n]) + + (define-key function-key-map "\e[107q" [M-m]) + + (define-key function-key-map "\e[108q" [?\C-,]) + (define-key function-key-map "\e[109q" [?\M-,]) + + (define-key function-key-map "\e[110q" [?\C-.]) + (define-key function-key-map "\e[111q" [?\M-.]) + + (define-key function-key-map "\e[112q" [?\C-/]) + (define-key function-key-map "\e[113q" [?\M-/]) + + (define-key function-key-map "\e[139q" [insert]) + (define-key function-key-map "\e[139q" [S-insert]) + (define-key function-key-map "\e[140q" [C-insert]) + (define-key function-key-map "\e[141q" [M-insert]) + + (define-key function-key-map "\e[H" [home]) + (define-key function-key-map "\e[143q" [S-home]) + (define-key function-key-map "\e[144q" [C-home]) + + + (define-key function-key-map "\e[150q" [prior]) + (define-key function-key-map "\e[151q" [S-prior]) ;; those don't + ;; seem to + ;; generate + ;; anything + (define-key function-key-map "\e[152q" [C-prior]) + + + ;; (define-key function-key-map "^?" [delete]) + (define-key function-key-map "\e[P" [S-delete]) + (define-key function-key-map "\e[142q" [C-delete]) + (define-key function-key-map "\e[M" [M-delete]) + + (define-key function-key-map "\e[146q" [end]) + (define-key function-key-map "\e[147q" [S-end]) ;; those don't seem ;; to generate ;; anything -(define-key function-key-map "\e[152q" [C-prior]) - - -;; (define-key function-key-map "^?" [delete]) ?? something else seems to take care of this. -(define-key function-key-map "\e[P" [S-delete]) -(define-key function-key-map "\e[142q" [C-delete]) -(define-key function-key-map "\e[M" [M-delete]) - -(define-key function-key-map "\e[146q" [end]) -(define-key function-key-map "\e[147q" [S-end]) ;; those don't seem to - ;; generate anything -(define-key function-key-map "\e[148q" [C-end]) - -(define-key function-key-map "\e[154q" [next]) -(define-key function-key-map "\e[155q" [S-next]) -(define-key function-key-map "\e[156q" [C-next]) - - -(define-key function-key-map "\e[161q" [S-up]) -(define-key function-key-map "\e[162q" [C-up]) -(define-key function-key-map "\e[163q" [M-up]) - -(define-key function-key-map "\e[158q" [S-left]) -(define-key function-key-map "\e[159q" [C-left]) -(define-key function-key-map "\e[160q" [M-left]) - -(define-key function-key-map "\e[164q" [S-down]) -(define-key function-key-map "\e[165q" [C-down]) -(define-key function-key-map "\e[166q" [M-down]) - -(define-key function-key-map "\e[167q" [S-right]) -(define-key function-key-map "\e[168q" [C-right]) -(define-key function-key-map "\e[169q" [M-right]) - -;; Keypad functions, most of those are untested. -(define-key function-key-map "\e[179q" [?\C-/]) -(define-key function-key-map "\e[180q" [?\M-/]) - -(define-key function-key-map "\e[187q" [?\C-*]) -(define-key function-key-map "\e[188q" [?\M-*]) - -(define-key function-key-map "\e[198q" [?\C--]) -(define-key function-key-map "\e[199q" [?\M--]) - -;; Something else takes care of home, up, prior, down, left, right, next -;(define-key function-key-map "\e[H" [home]) -(define-key function-key-map "\e[172q" [C-home]) - -;(define-key function-key-map "\e[A" [up]) -(define-key function-key-map "\e[182q" [C-up]) - - -;(define-key function-key-map "\e[150q" [prior]) -(define-key function-key-map "\e[190q" [C-prior]) - - -(define-key function-key-map "\e[200q" [?\C-+]) -(define-key function-key-map "\e[201q" [?\M-+]) - -;(define-key function-key-map "\e[D" [left]) -(define-key function-key-map "\e[174q" [C-left]) - - -(define-key function-key-map "\e[000q" [begin]) -(define-key function-key-map "\e[184q" [C-begin]) - - -;(define-key function-key-map "\e[C" [right]) -(define-key function-key-map "\e[192q" [C-right]) - -;(define-key function-key-map "\e[146q" [end]) -(define-key function-key-map "\e[176q" [C-end]) - -;(define-key function-key-map "\e[B" [down]) -(define-key function-key-map "\e[186q" [C-down]) - -;(define-key function-key-map "\e[154q" [next]) -(define-key function-key-map "\e[194q" [C-next]) - - -(define-key function-key-map "\e[100q" [M-enter]) - -(define-key function-key-map "\e[139q" [insert]) -(define-key function-key-map "\e[178q" [C-inset]) - -(define-key function-key-map "\e[P" [delete]) -(define-key function-key-map "\e[196q" [C-delete]) -(define-key function-key-map "\e[197q" [M-delete]) + (define-key function-key-map "\e[148q" [C-end]) + + (define-key function-key-map "\e[154q" [next]) + (define-key function-key-map "\e[155q" [S-next]) + (define-key function-key-map "\e[156q" [C-next]) + + + (define-key function-key-map "\e[161q" [S-up]) + (define-key function-key-map "\e[162q" [C-up]) + (define-key function-key-map "\e[163q" [M-up]) + + (define-key function-key-map "\e[158q" [S-left]) + (define-key function-key-map "\e[159q" [C-left]) + (define-key function-key-map "\e[160q" [M-left]) + + (define-key function-key-map "\e[164q" [S-down]) + (define-key function-key-map "\e[165q" [C-down]) + (define-key function-key-map "\e[166q" [M-down]) + + (define-key function-key-map "\e[167q" [S-right]) + (define-key function-key-map "\e[168q" [C-right]) + (define-key function-key-map "\e[169q" [M-right]) + + ;; Keypad functions, most of those are untested. + (define-key function-key-map "\e[179q" [?\C-/]) + (define-key function-key-map "\e[180q" [?\M-/]) + + (define-key function-key-map "\e[187q" [?\C-*]) + (define-key function-key-map "\e[188q" [?\M-*]) + + (define-key function-key-map "\e[198q" [?\C--]) + (define-key function-key-map "\e[199q" [?\M--]) + + ;; Something else takes care of home, up, prior, down, left, right, next + ;;(define-key function-key-map "\e[H" [home]) + (define-key function-key-map "\e[172q" [C-home]) + + ;;(define-key function-key-map "\e[A" [up]) + (define-key function-key-map "\e[182q" [C-up]) + + + ;;(define-key function-key-map "\e[150q" [prior]) + (define-key function-key-map "\e[190q" [C-prior]) + + + (define-key function-key-map "\e[200q" [?\C-+]) + (define-key function-key-map "\e[201q" [?\M-+]) + + ;;(define-key function-key-map "\e[D" [left]) + (define-key function-key-map "\e[174q" [C-left]) + + + (define-key function-key-map "\e[000q" [begin]) + (define-key function-key-map "\e[184q" [C-begin]) + + + ;;(define-key function-key-map "\e[C" [right]) + (define-key function-key-map "\e[192q" [C-right]) + + ;;(define-key function-key-map "\e[146q" [end]) + (define-key function-key-map "\e[176q" [C-end]) + + ;;(define-key function-key-map "\e[B" [down]) + (define-key function-key-map "\e[186q" [C-down]) + + ;;(define-key function-key-map "\e[154q" [next]) + (define-key function-key-map "\e[194q" [C-next]) + + + (define-key function-key-map "\e[100q" [M-enter]) + + (define-key function-key-map "\e[139q" [insert]) + (define-key function-key-map "\e[178q" [C-inset]) + + (define-key function-key-map "\e[P" [delete]) + (define-key function-key-map "\e[196q" [C-delete]) + (define-key function-key-map "\e[197q" [M-delete])) ;;; arch-tag: b1d0e73a-bb7d-47be-9fb2-6fb126469a1b ;;; iris-ansi.el ends here diff --git a/lisp/term/linux.el b/lisp/term/linux.el index 71b9e0d4bcf..7fa9a96e9bd 100644 --- a/lisp/term/linux.el +++ b/lisp/term/linux.el @@ -1,19 +1,21 @@ ;; -*- no-byte-compile: t -*- ;; The Linux console handles Latin-1 by default. -(unless (terminal-coding-system) - (set-terminal-coding-system 'iso-latin-1)) +(defun terminal-init-linux () + "Terminal initialization function for linux." + (unless (terminal-coding-system) + (set-terminal-coding-system 'iso-latin-1)) -;; It can't really display underlines. -(tty-no-underline) + ;; It can't really display underlines. + (tty-no-underline) -;; Make Latin-1 input characters work, too. -;; Meta will continue to work, because the kernel -;; turns that into Escape. + ;; Make Latin-1 input characters work, too. + ;; Meta will continue to work, because the kernel + ;; turns that into Escape. -(let ((value (current-input-mode))) - ;; The third arg only matters in that it is not t or nil. - (set-input-mode (nth 0 value) (nth 1 value) 'iso-latin-1 (nth 3 value))) + (let ((value (current-input-mode))) + ;; The third arg only matters in that it is not t or nil. + (set-input-mode (nth 0 value) (nth 1 value) 'iso-latin-1 (nth 3 value)))) ;;; arch-tag: 5d0c4f63-739b-4862-abf3-041fe42adb8f ;;; linux.el ends here diff --git a/lisp/term/news.el b/lisp/term/news.el index 7a24eaf5a0c..f8a4934f8bc 100644 --- a/lisp/term/news.el +++ b/lisp/term/news.el @@ -1,6 +1,6 @@ ;;; news.el --- keypad and function key bindings for the Sony NEWS keyboard -*- no-byte-compile: t -*- -;; Copyright (C) 1989, 1993 Free Software Foundation, Inc. +;; Copyright (C) 1989, 1993, 2005 Free Software Foundation, Inc. ;; Author: FSF ;; Keywords: terminals @@ -28,47 +28,49 @@ ;;; Code: -(if (boundp 'news-fkey-prefix) - nil - ;; The terminal initialization should already have set up some keys - (setq news-fkey-prefix (lookup-key function-key-map "\eO")) - (if (not (keymapp news-fkey-prefix)) - (error "What? Your news termcap/terminfo has no keycaps in it")) +(defun terminal-init-news () + "Terminal initialization function for news." + (if (boundp 'news-fkey-prefix) + nil + ;; The terminal initialization should already have set up some keys + (setq news-fkey-prefix (lookup-key function-key-map "\eO")) + (if (not (keymapp news-fkey-prefix)) + (error "What? Your news termcap/terminfo has no keycaps in it")) - ;; Termcap or terminfo will set these - ;; (define-key news-fkey-prefix "P" [f1]) - ;; (define-key news-fkey-prefix "Q" [f2]) - ;; (define-key news-fkey-prefix "R" [f3]) - ;; (define-key news-fkey-prefix "S" [f4]) - ;; (define-key news-fkey-prefix "T" [f5]) - ;; (define-key news-fkey-prefix "U" [f6]) - ;; (define-key news-fkey-prefix "V" [f7]) - ;; (define-key news-fkey-prefix "W" [f8]) - ;; (define-key news-fkey-prefix "X" [f9]) - ;; (define-key news-fkey-prefix "Y" [f10]) + ;; Termcap or terminfo will set these + ;; (define-key news-fkey-prefix "P" [f1]) + ;; (define-key news-fkey-prefix "Q" [f2]) + ;; (define-key news-fkey-prefix "R" [f3]) + ;; (define-key news-fkey-prefix "S" [f4]) + ;; (define-key news-fkey-prefix "T" [f5]) + ;; (define-key news-fkey-prefix "U" [f6]) + ;; (define-key news-fkey-prefix "V" [f7]) + ;; (define-key news-fkey-prefix "W" [f8]) + ;; (define-key news-fkey-prefix "X" [f9]) + ;; (define-key news-fkey-prefix "Y" [f10]) - ;; Terminfo will set these - (define-key news-fkey-prefix "a" [execute]) - (define-key news-fkey-prefix "b" [select]) - (define-key news-fkey-prefix "c" [cancel]) - (define-key news-fkey-prefix "M" [kp-enter]) - (define-key news-fkey-prefix "q" [kp-1]) - (define-key news-fkey-prefix "s" [kp-3]) - (define-key news-fkey-prefix "u" [kp-5]) - (define-key news-fkey-prefix "w" [kp-7]) - (define-key news-fkey-prefix "y" [kp-9]) + ;; Terminfo will set these + (define-key news-fkey-prefix "a" [execute]) + (define-key news-fkey-prefix "b" [select]) + (define-key news-fkey-prefix "c" [cancel]) + (define-key news-fkey-prefix "M" [kp-enter]) + (define-key news-fkey-prefix "q" [kp-1]) + (define-key news-fkey-prefix "s" [kp-3]) + (define-key news-fkey-prefix "u" [kp-5]) + (define-key news-fkey-prefix "w" [kp-7]) + (define-key news-fkey-prefix "y" [kp-9]) - ;; These aren't in either termcap or terminfo's repertoire - (define-key news-fkey-prefix "m" [kp-subtract]) - (define-key news-fkey-prefix "k" [kp-add]) - (define-key news-fkey-prefix "l" [kp-separator]) - (define-key news-fkey-prefix "n" [kp-decimal]) - (define-key news-fkey-prefix "p" [kp-0]) - (define-key news-fkey-prefix "r" [kp-2]) - (define-key news-fkey-prefix "t" [kp-4]) - (define-key news-fkey-prefix "v" [kp-6]) - (define-key news-fkey-prefix "x" [kp-8]) - ) + ;; These aren't in either termcap or terminfo's repertoire + (define-key news-fkey-prefix "m" [kp-subtract]) + (define-key news-fkey-prefix "k" [kp-add]) + (define-key news-fkey-prefix "l" [kp-separator]) + (define-key news-fkey-prefix "n" [kp-decimal]) + (define-key news-fkey-prefix "p" [kp-0]) + (define-key news-fkey-prefix "r" [kp-2]) + (define-key news-fkey-prefix "t" [kp-4]) + (define-key news-fkey-prefix "v" [kp-6]) + (define-key news-fkey-prefix "x" [kp-8]) + )) ;;; arch-tag: bfe141a0-623b-4b42-b753-5d9353776c5e ;;; news.el ends here diff --git a/lisp/term/rxvt.el b/lisp/term/rxvt.el index 95742a1d34e..f0e9dd7b5b1 100644 --- a/lisp/term/rxvt.el +++ b/lisp/term/rxvt.el @@ -1,6 +1,6 @@ ;;; rxvt.el --- define function key sequences and standard colors for rxvt -;; Copyright (C) 2002 Free Software Foundation, Inc. +;; Copyright (C) 2002, 2005 Free Software Foundation, Inc. ;; Author: Eli Zaretskii ;; Keywords: terminals @@ -26,135 +26,143 @@ ;;; Code: -;;; The terminal intialization C code file might have initialized -;;; function keys F11->F42 from the termcap/terminfo information. On -;;; a PC-style keyboard these keys correspond to -;;; MODIFIER-FUNCTION_KEY, where modifier is S-, C-, C-S-. The -;;; code here subsitutes the corresponding defintions in -;;; function-key-map. This substitution is needed because if a key -;;; definition if found in function-key-map, there are no further -;;; lookups in other keymaps. -(substitute-key-definition [f11] [S-f1] function-key-map) -(substitute-key-definition [f12] [S-f2] function-key-map) -(substitute-key-definition [f13] [S-f3] function-key-map) -(substitute-key-definition [f14] [S-f4] function-key-map) -(substitute-key-definition [f15] [S-f5] function-key-map) -(substitute-key-definition [f16] [S-f6] function-key-map) -(substitute-key-definition [f17] [S-f7] function-key-map) -(substitute-key-definition [f18] [S-f8] function-key-map) -(substitute-key-definition [f19] [S-f9] function-key-map) -(substitute-key-definition [f20] [S-f10] function-key-map) - -(substitute-key-definition [f23] [C-f1] function-key-map) -(substitute-key-definition [f24] [C-f2] function-key-map) -(substitute-key-definition [f25] [C-f3] function-key-map) -(substitute-key-definition [f26] [C-f4] function-key-map) -(substitute-key-definition [f27] [C-f5] function-key-map) -(substitute-key-definition [f28] [C-f6] function-key-map) -(substitute-key-definition [f29] [C-f7] function-key-map) -(substitute-key-definition [f30] [C-f8] function-key-map) -(substitute-key-definition [f31] [C-f9] function-key-map) -(substitute-key-definition [f32] [C-f10] function-key-map) - -(substitute-key-definition [f33] [C-S-f1] function-key-map) -(substitute-key-definition [f34] [C-S-f2] function-key-map) -(substitute-key-definition [f35] [C-S-f3] function-key-map) -(substitute-key-definition [f36] [C-S-f4] function-key-map) -(substitute-key-definition [f37] [C-S-f5] function-key-map) -(substitute-key-definition [f38] [C-S-f6] function-key-map) -(substitute-key-definition [f39] [C-S-f7] function-key-map) -(substitute-key-definition [f40] [C-S-f8] function-key-map) -(substitute-key-definition [f41] [C-S-f9] function-key-map) -(substitute-key-definition [f42] [C-S-f10] function-key-map) - -;; Set up function-key-map entries that termcap and terminfo don't know. -(let ((map (make-sparse-keymap))) - (define-key map "\e[A" [up]) - (define-key map "\e[B" [down]) - (define-key map "\e[C" [right]) - (define-key map "\e[D" [left]) - (define-key map "\e[7~" [home]) - (define-key map "\e[2~" [insert]) - (define-key map "\e[3~" [delete]) - (define-key map "\e[4~" [select]) - (define-key map "\e[5~" [prior]) - (define-key map "\e[6~" [next]) - (define-key map "\e[11~" [f1]) - (define-key map "\e[12~" [f2]) - (define-key map "\e[13~" [f3]) - (define-key map "\e[14~" [f4]) - (define-key map "\e[15~" [f5]) - (define-key map "\e[17~" [f6]) - (define-key map "\e[18~" [f7]) - (define-key map "\e[19~" [f8]) - (define-key map "\e[20~" [f9]) - (define-key map "\e[21~" [f10]) - ;; The strings emitted by f11 and f12 are the same as the strings - ;; emitted by S-f1 and S-f2, so don't define f11 and f12. - ;; (define-key map "\e[23~" [f11]) - ;; (define-key map "\e[24~" [f12]) - (define-key map "\e[29~" [print]) - - (define-key map "\e[11^" [C-f1]) - (define-key map "\e[12^" [C-f2]) - (define-key map "\e[13^" [C-f3]) - (define-key map "\e[14^" [C-f4]) - (define-key map "\e[15^" [C-f5]) - (define-key map "\e[17^" [C-f6]) - (define-key map "\e[18^" [C-f7]) - (define-key map "\e[19^" [C-f8]) - (define-key map "\e[20^" [C-f9]) - (define-key map "\e[21^" [C-f10]) - - (define-key map "\e[23~" [S-f1]) - (define-key map "\e[24~" [S-f2]) - (define-key map "\e[25~" [S-f3]) - (define-key map "\e[26~" [S-f4]) - (define-key map "\e[28~" [S-f5]) - (define-key map "\e[29~" [S-f6]) - (define-key map "\e[31~" [S-f7]) - (define-key map "\e[32~" [S-f8]) - (define-key map "\e[33~" [S-f9]) - (define-key map "\e[34~" [S-f10]) - - (define-key map "\e[23^" [C-S-f1]) - (define-key map "\e[24^" [C-S-f2]) - (define-key map "\e[25^" [C-S-f3]) - (define-key map "\e[26^" [C-S-f4]) - (define-key map "\e[28^" [C-S-f5]) - (define-key map "\e[29^" [C-S-f6]) - (define-key map "\e[31^" [C-S-f7]) - (define-key map "\e[32^" [C-S-f8]) - (define-key map "\e[33^" [C-S-f9]) - (define-key map "\e[34^" [C-S-f10]) - - (define-key map "\e[2^" [C-insert]) - (define-key map "\e[3^" [C-delete]) - (define-key map "\e[5^" [C-prior]) - (define-key map "\e[6^" [C-next]) - (define-key map "\e[7^" [C-home]) - (define-key map "\e[8^" [C-end]) - (define-key map "\eOd" [C-left]) - (define-key map "\eOc" [C-right]) - (define-key map "\eOa" [C-up]) - (define-key map "\eOb" [C-down]) - - (define-key map "\e[2;2~" [S-insert]) - (define-key map "\e[3$" [S-delete]) - (define-key map "\e[5$" [S-prior]) - (define-key map "\e[6$" [S-next]) - (define-key map "\e[8$" [S-end]) - (define-key map "\e[7$" [S-home]) - (define-key map "\e[d" [S-left]) - (define-key map "\e[c" [S-right]) - (define-key map "\e[a" [S-up]) - (define-key map "\e[b" [S-down]) - - ;; Use inheritance to let the main keymap override those defaults. - ;; This way we don't override terminfo-derived settings or settings - ;; made in the .emacs file. - (set-keymap-parent map (keymap-parent function-key-map)) - (set-keymap-parent function-key-map map)) +(defun terminal-init-rxvt () + "Terminal initialization function for rxvt." + ;; The terminal intialization C code file might have initialized + ;; function keys F11->F42 from the termcap/terminfo information. On + ;; a PC-style keyboard these keys correspond to + ;; MODIFIER-FUNCTION_KEY, where modifier is S-, C-, C-S-. The + ;; code here subsitutes the corresponding defintions in + ;; function-key-map. This substitution is needed because if a key + ;; definition if found in function-key-map, there are no further + ;; lookups in other keymaps. + (substitute-key-definition [f11] [S-f1] function-key-map) + (substitute-key-definition [f12] [S-f2] function-key-map) + (substitute-key-definition [f13] [S-f3] function-key-map) + (substitute-key-definition [f14] [S-f4] function-key-map) + (substitute-key-definition [f15] [S-f5] function-key-map) + (substitute-key-definition [f16] [S-f6] function-key-map) + (substitute-key-definition [f17] [S-f7] function-key-map) + (substitute-key-definition [f18] [S-f8] function-key-map) + (substitute-key-definition [f19] [S-f9] function-key-map) + (substitute-key-definition [f20] [S-f10] function-key-map) + + (substitute-key-definition [f23] [C-f1] function-key-map) + (substitute-key-definition [f24] [C-f2] function-key-map) + (substitute-key-definition [f25] [C-f3] function-key-map) + (substitute-key-definition [f26] [C-f4] function-key-map) + (substitute-key-definition [f27] [C-f5] function-key-map) + (substitute-key-definition [f28] [C-f6] function-key-map) + (substitute-key-definition [f29] [C-f7] function-key-map) + (substitute-key-definition [f30] [C-f8] function-key-map) + (substitute-key-definition [f31] [C-f9] function-key-map) + (substitute-key-definition [f32] [C-f10] function-key-map) + + (substitute-key-definition [f33] [C-S-f1] function-key-map) + (substitute-key-definition [f34] [C-S-f2] function-key-map) + (substitute-key-definition [f35] [C-S-f3] function-key-map) + (substitute-key-definition [f36] [C-S-f4] function-key-map) + (substitute-key-definition [f37] [C-S-f5] function-key-map) + (substitute-key-definition [f38] [C-S-f6] function-key-map) + (substitute-key-definition [f39] [C-S-f7] function-key-map) + (substitute-key-definition [f40] [C-S-f8] function-key-map) + (substitute-key-definition [f41] [C-S-f9] function-key-map) + (substitute-key-definition [f42] [C-S-f10] function-key-map) + + ;; Set up function-key-map entries that termcap and terminfo don't know. + (let ((map (make-sparse-keymap))) + (define-key map "\e[A" [up]) + (define-key map "\e[B" [down]) + (define-key map "\e[C" [right]) + (define-key map "\e[D" [left]) + (define-key map "\e[7~" [home]) + (define-key map "\e[2~" [insert]) + (define-key map "\e[3~" [delete]) + (define-key map "\e[4~" [select]) + (define-key map "\e[5~" [prior]) + (define-key map "\e[6~" [next]) + (define-key map "\e[11~" [f1]) + (define-key map "\e[12~" [f2]) + (define-key map "\e[13~" [f3]) + (define-key map "\e[14~" [f4]) + (define-key map "\e[15~" [f5]) + (define-key map "\e[17~" [f6]) + (define-key map "\e[18~" [f7]) + (define-key map "\e[19~" [f8]) + (define-key map "\e[20~" [f9]) + (define-key map "\e[21~" [f10]) + ;; The strings emitted by f11 and f12 are the same as the strings + ;; emitted by S-f1 and S-f2, so don't define f11 and f12. + ;; (define-key map "\e[23~" [f11]) + ;; (define-key map "\e[24~" [f12]) + (define-key map "\e[29~" [print]) + + (define-key map "\e[11^" [C-f1]) + (define-key map "\e[12^" [C-f2]) + (define-key map "\e[13^" [C-f3]) + (define-key map "\e[14^" [C-f4]) + (define-key map "\e[15^" [C-f5]) + (define-key map "\e[17^" [C-f6]) + (define-key map "\e[18^" [C-f7]) + (define-key map "\e[19^" [C-f8]) + (define-key map "\e[20^" [C-f9]) + (define-key map "\e[21^" [C-f10]) + + (define-key map "\e[23~" [S-f1]) + (define-key map "\e[24~" [S-f2]) + (define-key map "\e[25~" [S-f3]) + (define-key map "\e[26~" [S-f4]) + (define-key map "\e[28~" [S-f5]) + (define-key map "\e[29~" [S-f6]) + (define-key map "\e[31~" [S-f7]) + (define-key map "\e[32~" [S-f8]) + (define-key map "\e[33~" [S-f9]) + (define-key map "\e[34~" [S-f10]) + + (define-key map "\e[23^" [C-S-f1]) + (define-key map "\e[24^" [C-S-f2]) + (define-key map "\e[25^" [C-S-f3]) + (define-key map "\e[26^" [C-S-f4]) + (define-key map "\e[28^" [C-S-f5]) + (define-key map "\e[29^" [C-S-f6]) + (define-key map "\e[31^" [C-S-f7]) + (define-key map "\e[32^" [C-S-f8]) + (define-key map "\e[33^" [C-S-f9]) + (define-key map "\e[34^" [C-S-f10]) + + (define-key map "\e[2^" [C-insert]) + (define-key map "\e[3^" [C-delete]) + (define-key map "\e[5^" [C-prior]) + (define-key map "\e[6^" [C-next]) + (define-key map "\e[7^" [C-home]) + (define-key map "\e[8^" [C-end]) + (define-key map "\eOd" [C-left]) + (define-key map "\eOc" [C-right]) + (define-key map "\eOa" [C-up]) + (define-key map "\eOb" [C-down]) + + (define-key map "\e[2;2~" [S-insert]) + (define-key map "\e[3$" [S-delete]) + (define-key map "\e[5$" [S-prior]) + (define-key map "\e[6$" [S-next]) + (define-key map "\e[8$" [S-end]) + (define-key map "\e[7$" [S-home]) + (define-key map "\e[d" [S-left]) + (define-key map "\e[c" [S-right]) + (define-key map "\e[a" [S-up]) + (define-key map "\e[b" [S-down]) + + ;; Use inheritance to let the main keymap override those defaults. + ;; This way we don't override terminfo-derived settings or settings + ;; made in the .emacs file. + (set-keymap-parent map (keymap-parent function-key-map)) + (set-keymap-parent function-key-map map)) + + ;; Initialize colors and background mode. + (rxvt-register-default-colors) + (rxvt-set-background-mode) + ;; This recomputes all the default faces given the colors we've just set up. + (tty-set-up-initial-frame-faces)) ;; Set up colors, for those versions of rxvt that support it. (defvar rxvt-standard-colors @@ -228,11 +236,5 @@ for the currently selected frame." (setq default-frame-background-mode 'dark))) (frame-set-background-mode (selected-frame)))) -;; Do it! -(rxvt-register-default-colors) -(rxvt-set-background-mode) -;; This recomputes all the default faces given the colors we've just set up. -(tty-set-up-initial-frame-faces) - ;;; arch-tag: 20cf2fb6-6318-4bab-9dbf-1d15048f2257 ;;; rxvt.el ends here diff --git a/lisp/term/sun.el b/lisp/term/sun.el index 18010e0b343..7d857ca1266 100644 --- a/lisp/term/sun.el +++ b/lisp/term/sun.el @@ -1,6 +1,6 @@ ;;; sun.el --- keybinding for standard default sunterm keys -;; Copyright (C) 1987, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1987, 2001, 2005 Free Software Foundation, Inc. ;; Author: Jeff Peck <peck@sun.com> ;; Keywords: terminals @@ -93,58 +93,6 @@ ;; (defvar sun-raw-prefix (make-sparse-keymap)) -(define-key function-key-map "\e[" sun-raw-prefix) - -(define-key sun-raw-prefix "210z" [r3]) -(define-key sun-raw-prefix "213z" [r6]) -(define-key sun-raw-prefix "214z" [r7]) -(define-key sun-raw-prefix "216z" [r9]) -(define-key sun-raw-prefix "218z" [r11]) -(define-key sun-raw-prefix "220z" [r13]) -(define-key sun-raw-prefix "222z" [r15]) -(define-key sun-raw-prefix "193z" [redo]) -(define-key sun-raw-prefix "194z" [props]) -(define-key sun-raw-prefix "195z" [undo]) -;; (define-key sun-raw-prefix "196z" 'ignore) ; Expose-down -;; (define-key sun-raw-prefix "197z" [put]) -;; (define-key sun-raw-prefix "198z" 'ignore) ; Open-down -;; (define-key sun-raw-prefix "199z" [get]) -(define-key sun-raw-prefix "200z" [find]) -;; (define-key sun-raw-prefix "201z" 'kill-region-and-unmark) ; Delete -(define-key sun-raw-prefix "224z" [f1]) -(define-key sun-raw-prefix "225z" [f2]) -(define-key sun-raw-prefix "226z" [f3]) -(define-key sun-raw-prefix "227z" [f4]) -(define-key sun-raw-prefix "228z" [f5]) -(define-key sun-raw-prefix "229z" [f6]) -(define-key sun-raw-prefix "230z" [f7]) -(define-key sun-raw-prefix "231z" [f8]) -(define-key sun-raw-prefix "232z" [f9]) -(define-key sun-raw-prefix "233z" [f10]) -(define-key sun-raw-prefix "234z" [f11]) -(define-key sun-raw-prefix "235z" [f12]) -(define-key sun-raw-prefix "A" [up]) ; R8 -(define-key sun-raw-prefix "B" [down]) ; R14 -(define-key sun-raw-prefix "C" [right]) ; R12 -(define-key sun-raw-prefix "D" [left]) ; R10 - -(global-set-key [r3] 'backward-page) -(global-set-key [r6] 'forward-page) -(global-set-key [r7] 'beginning-of-buffer) -(global-set-key [r9] 'scroll-down) -(global-set-key [r11] 'recenter) -(global-set-key [r13] 'end-of-buffer) -(global-set-key [r15] 'scroll-up) -(global-set-key [redo] 'redraw-display) ;FIXME: collides with default. -(global-set-key [props] 'list-buffers) -(global-set-key [put] 'sun-select-region) -(global-set-key [get] 'sun-yank-selection) -(global-set-key [find] 'exchange-point-and-mark) -(global-set-key [f3] 'scroll-down-in-place) -(global-set-key [f4] 'scroll-up-in-place) -(global-set-key [f6] 'shrink-window) -(global-set-key [f7] 'enlarge-window) - ;; Since .emacs gets loaded before this file, a hook is supplied ;; for you to put your own bindings in. @@ -152,13 +100,6 @@ (defvar sun-raw-prefix-hooks nil "List of forms to evaluate after setting sun-raw-prefix.") -(when sun-raw-prefix-hooks - (message "sun-raw-prefix-hooks is obsolete! Use term-setup-hook instead!") - (let ((hooks sun-raw-prefix-hooks)) - (while hooks - (eval (car hooks)) - (setq hooks (cdr hooks))))) - ;;; This section adds definitions for the emacstool users ;; emacstool event filter converts function keys to C-x*{c}{lrt} @@ -188,44 +129,6 @@ (defvar suntool-map (make-sparse-keymap) "*Keymap for Emacstool bindings.") -(define-key suntool-map "gr" 'beginning-of-buffer) ; r7 -(define-key suntool-map "iR" 'backward-page) ; R9 -(define-key suntool-map "ir" 'scroll-down) ; r9 -(define-key suntool-map "kr" 'recenter) ; r11 -(define-key suntool-map "mr" 'end-of-buffer) ; r13 -(define-key suntool-map "oR" 'forward-page) ; R15 -(define-key suntool-map "or" 'scroll-up) ; r15 -(define-key suntool-map "b\M-L" 'rerun-prev-command) ; M-AGAIN -(define-key suntool-map "b\M-l" 'prev-complex-command) ; M-Again -(define-key suntool-map "bl" 'redraw-display) ; Again -(define-key suntool-map "cl" 'list-buffers) ; Props -(define-key suntool-map "dl" 'undo) ; Undo -(define-key suntool-map "el" 'ignore) ; Expose-Open -(define-key suntool-map "fl" 'sun-select-region) ; Put -(define-key suntool-map "f," 'copy-region-as-kill) ; C-Put -(define-key suntool-map "gl" 'ignore) ; Open-Open -(define-key suntool-map "hl" 'sun-yank-selection) ; Get -(define-key suntool-map "h," 'yank) ; C-Get -(define-key suntool-map "il" 'research-forward) ; Find -(define-key suntool-map "i," 're-search-forward) ; C-Find -(define-key suntool-map "i\M-l" 'research-backward) ; M-Find -(define-key suntool-map "i\M-," 're-search-backward) ; C-M-Find - -(define-key suntool-map "jL" 'yank) ; DELETE -(define-key suntool-map "jl" 'kill-region-and-unmark) ; Delete -(define-key suntool-map "j\M-l" 'exchange-point-and-mark); M-Delete -(define-key suntool-map "j," - (lambda () (interactive) (pop-mark))) ; C-Delete - -(define-key suntool-map "fT" 'shrink-window-horizontally) ; T6 -(define-key suntool-map "gT" 'enlarge-window-horizontally) ; T7 -(define-key suntool-map "ft" 'shrink-window) ; t6 -(define-key suntool-map "gt" 'enlarge-window) ; t7 -(define-key suntool-map "cT" (lambda (n) (interactive "p") (scroll-down n))) -(define-key suntool-map "dT" (lambda (n) (interactive "p") (scroll-up n))) -(define-key suntool-map "ct" 'scroll-down-in-place) ; t3 -(define-key suntool-map "dt" 'scroll-up-in-place) ; t4 -(define-key ctl-x-map "*" suntool-map) ;; Since .emacs gets loaded before this file, a hook is supplied ;; for you to put your own bindings in. @@ -233,13 +136,6 @@ (defvar suntool-map-hooks nil "List of forms to evaluate after setting suntool-map.") -(when suntool-map-hooks - (message "suntool-map-hooks is obsolete! Use term-setup-hook instead!") - (let ((hooks suntool-map-hooks)) - (while hooks - (eval (car hooks)) - (setq hooks (cdr hooks))))) - ;; ;; If running under emacstool, arrange to call suspend-emacstool ;; instead of suspend-emacs. @@ -251,6 +147,115 @@ (autoload 'sun-mouse-handler "sun-mouse" "Sun Emacstool handler for mouse blips (not loaded)." t) +(defun terminal-init-sun () + "Terminal initialization function for sun." + (define-key function-key-map "\e[" sun-raw-prefix) + + (define-key sun-raw-prefix "210z" [r3]) + (define-key sun-raw-prefix "213z" [r6]) + (define-key sun-raw-prefix "214z" [r7]) + (define-key sun-raw-prefix "216z" [r9]) + (define-key sun-raw-prefix "218z" [r11]) + (define-key sun-raw-prefix "220z" [r13]) + (define-key sun-raw-prefix "222z" [r15]) + (define-key sun-raw-prefix "193z" [redo]) + (define-key sun-raw-prefix "194z" [props]) + (define-key sun-raw-prefix "195z" [undo]) + ;; (define-key sun-raw-prefix "196z" 'ignore) ; Expose-down + ;; (define-key sun-raw-prefix "197z" [put]) + ;; (define-key sun-raw-prefix "198z" 'ignore) ; Open-down + ;; (define-key sun-raw-prefix "199z" [get]) + (define-key sun-raw-prefix "200z" [find]) + ;; (define-key sun-raw-prefix "201z" 'kill-region-and-unmark) ; Delete + (define-key sun-raw-prefix "224z" [f1]) + (define-key sun-raw-prefix "225z" [f2]) + (define-key sun-raw-prefix "226z" [f3]) + (define-key sun-raw-prefix "227z" [f4]) + (define-key sun-raw-prefix "228z" [f5]) + (define-key sun-raw-prefix "229z" [f6]) + (define-key sun-raw-prefix "230z" [f7]) + (define-key sun-raw-prefix "231z" [f8]) + (define-key sun-raw-prefix "232z" [f9]) + (define-key sun-raw-prefix "233z" [f10]) + (define-key sun-raw-prefix "234z" [f11]) + (define-key sun-raw-prefix "235z" [f12]) + (define-key sun-raw-prefix "A" [up]) ; R8 + (define-key sun-raw-prefix "B" [down]) ; R14 + (define-key sun-raw-prefix "C" [right]) ; R12 + (define-key sun-raw-prefix "D" [left]) ; R10 + + (global-set-key [r3] 'backward-page) + (global-set-key [r6] 'forward-page) + (global-set-key [r7] 'beginning-of-buffer) + (global-set-key [r9] 'scroll-down) + (global-set-key [r11] 'recenter) + (global-set-key [r13] 'end-of-buffer) + (global-set-key [r15] 'scroll-up) + (global-set-key [redo] 'redraw-display) ;FIXME: collides with default. + (global-set-key [props] 'list-buffers) + (global-set-key [put] 'sun-select-region) + (global-set-key [get] 'sun-yank-selection) + (global-set-key [find] 'exchange-point-and-mark) + (global-set-key [f3] 'scroll-down-in-place) + (global-set-key [f4] 'scroll-up-in-place) + (global-set-key [f6] 'shrink-window) + (global-set-key [f7] 'enlarge-window) + + (when sun-raw-prefix-hooks + (message "sun-raw-prefix-hooks is obsolete! Use term-setup-hook instead!") + (let ((hooks sun-raw-prefix-hooks)) + (while hooks + (eval (car hooks)) + (setq hooks (cdr hooks))))) + + (define-key suntool-map "gr" 'beginning-of-buffer) ; r7 + (define-key suntool-map "iR" 'backward-page) ; R9 + (define-key suntool-map "ir" 'scroll-down) ; r9 + (define-key suntool-map "kr" 'recenter) ; r11 + (define-key suntool-map "mr" 'end-of-buffer) ; r13 + (define-key suntool-map "oR" 'forward-page) ; R15 + (define-key suntool-map "or" 'scroll-up) ; r15 + (define-key suntool-map "b\M-L" 'rerun-prev-command) ; M-AGAIN + (define-key suntool-map "b\M-l" 'prev-complex-command) ; M-Again + (define-key suntool-map "bl" 'redraw-display) ; Again + (define-key suntool-map "cl" 'list-buffers) ; Props + (define-key suntool-map "dl" 'undo) ; Undo + (define-key suntool-map "el" 'ignore) ; Expose-Open + (define-key suntool-map "fl" 'sun-select-region) ; Put + (define-key suntool-map "f," 'copy-region-as-kill) ; C-Put + (define-key suntool-map "gl" 'ignore) ; Open-Open + (define-key suntool-map "hl" 'sun-yank-selection) ; Get + (define-key suntool-map "h," 'yank) ; C-Get + (define-key suntool-map "il" 'research-forward) ; Find + (define-key suntool-map "i," 're-search-forward) ; C-Find + (define-key suntool-map "i\M-l" 'research-backward) ; M-Find + (define-key suntool-map "i\M-," 're-search-backward) ; C-M-Find + + (define-key suntool-map "jL" 'yank) ; DELETE + (define-key suntool-map "jl" 'kill-region-and-unmark) ; Delete + (define-key suntool-map "j\M-l" 'exchange-point-and-mark) ; M-Delete + (define-key suntool-map "j," + (lambda () (interactive) (pop-mark))) ; C-Delete + + (define-key suntool-map "fT" 'shrink-window-horizontally) ; T6 + (define-key suntool-map "gT" 'enlarge-window-horizontally) ; T7 + (define-key suntool-map "ft" 'shrink-window) ; t6 + (define-key suntool-map "gt" 'enlarge-window) ; t7 + (define-key suntool-map "cT" (lambda (n) (interactive "p") (scroll-down n))) + (define-key suntool-map "dT" (lambda (n) (interactive "p") (scroll-up n))) + (define-key suntool-map "ct" 'scroll-down-in-place) ; t3 + (define-key suntool-map "dt" 'scroll-up-in-place) ; t4 + (define-key ctl-x-map "*" suntool-map) + + (when suntool-map-hooks + (message "suntool-map-hooks is obsolete! Use term-setup-hook instead!") + (let ((hooks suntool-map-hooks)) + (while hooks + (eval (car hooks)) + (setq hooks (cdr hooks))))) + + (define-key ctl-x-map "\C-@" 'sun-mouse-once)) + (defun emacstool-init () "Set up Emacstool window, if you know you are in an emacstool." ;; Make sure sun-mouse and sun-fns are loaded. @@ -272,7 +277,6 @@ (interactive) (emacstool-init) (sun-mouse-handler)) ; Now, execute this mouse blip. -(define-key ctl-x-map "\C-@" 'sun-mouse-once) ;;; arch-tag: db761d47-fd7d-42b4-aae1-04fa116b6ba6 ;;; sun.el ends here diff --git a/lisp/term/tvi970.el b/lisp/term/tvi970.el index c24464fbbd5..f7bc8c852a9 100644 --- a/lisp/term/tvi970.el +++ b/lisp/term/tvi970.el @@ -3,7 +3,7 @@ ;; Author: Jim Blandy <jimb@occs.cs.oberlin.edu>, January 1992 ;; Keywords: terminals -;; Copyright (C) 1992 Free Software Foundation, Inc. +;; Copyright (C) 1992, 2005 Free Software Foundation, Inc. ;; This file is part of GNU Emacs. @@ -28,77 +28,80 @@ ;;; Code: -(or (lookup-key function-key-map "\e[") - (define-key function-key-map "\e[" (make-keymap))) -;; (or (lookup-key function-key-map "\eO") -;; (define-key function-key-map "\eO" (make-keymap))) - -;; Miscellaneous keys -(mapcar (function (lambda (key-binding) - (define-key function-key-map - (car key-binding) (nth 1 key-binding)))) - '( - ;; These are set up by termcap or terminfo - ;; ("\eOP" [kp-f1]) - ;; ("\eOQ" [kp-f2]) - ;; ("\eOR" [kp-f3]) - ;; ("\eOS" [kp-f4]) - - ;; These might br set by terminfo - ("\e[H" [home]) - ("\e[Z" [backtab]) - ("\e[i" [print]) - ("\e[@" [insert]) - ("\e[L" [insertline]) - ("\e[M" [deleteline]) - ("\e[U" [next]) ;; actually the `page' key - - ;; These won't be set up by either - ("\eOm" [kp-subtract]) - ("\eOl" [kp-separator]) - ("\eOn" [kp-decimal]) - ("\eOM" [kp-enter]) - - ;; These won't be set up by either either - ("\e[K" [key_eol]) ;; Not an X keysym - ("\e[J" [key_eos]) ;; Not an X keysym - ("\e[2J" [key_clear]) ;; Not an X keysym - ("\e[P" [key_dc]) ;; Not an X keysym - ("\e[g" [S-tab]) ;; Not an X keysym - ("\e[2N" [clearentry]) ;; Not an X keysym - ("\e[2K" [S-clearentry]) ;; Not an X keysym - ("\e[E" [?\C-j]) ;; Not an X keysym - ("\e[g" [S-backtab]) ;; Not an X keysym - ("\e[?1i" [key_sprint]) ;; Not an X keysym - ("\e[4h" [key_sic]) ;; Not an X keysym - ("\e[4l" [S-delete]) ;; Not an X keysym - ("\e[Q" [S-insertline]) ;; Not an X keysym - ("\e[1Q" [key_sdl]) ;; Not an X keysym - ("\e[19l" [key_seol]) ;; Not an X keysym - ("\e[19h" [S-erasepage]) ;; Not an X keysym - ("\e[V" [S-page]) ;; Not an X keysym - ("\eS" [send]) ;; Not an X keysym - ("\e5" [S-send]) ;; Not an X keysym - )) - -;; The numeric keypad keys. -(let ((i 0)) - (while (< i 10) - (define-key function-key-map - (format "\eO%c" (+ i ?p)) - (vector (intern (format "kp-%d" i)))) - (setq i (1+ i)))) -;; The numbered function keys. -(let ((i 0)) - (while (< i 16) - (define-key function-key-map - (format "\e?%c" (+ i ?a)) - (vector (intern (format "f%d" (1+ i))))) - (define-key function-key-map - (format "\e?%c" (+ i ?A)) - (vector (intern (format "S-f%d" (1+ i))))) - (setq i (1+ i)))) - +(defun terminal-init-tvi970 () + "Terminal initialization function for tvi970." + (or (lookup-key function-key-map "\e[") + (define-key function-key-map "\e[" (make-keymap))) + ;; (or (lookup-key function-key-map "\eO") + ;; (define-key function-key-map "\eO" (make-keymap))) + + ;; Miscellaneous keys + (mapcar (function (lambda (key-binding) + (define-key function-key-map + (car key-binding) (nth 1 key-binding)))) + '( + ;; These are set up by termcap or terminfo + ;; ("\eOP" [kp-f1]) + ;; ("\eOQ" [kp-f2]) + ;; ("\eOR" [kp-f3]) + ;; ("\eOS" [kp-f4]) + + ;; These might br set by terminfo + ("\e[H" [home]) + ("\e[Z" [backtab]) + ("\e[i" [print]) + ("\e[@" [insert]) + ("\e[L" [insertline]) + ("\e[M" [deleteline]) + ("\e[U" [next]) ;; actually the `page' key + + ;; These won't be set up by either + ("\eOm" [kp-subtract]) + ("\eOl" [kp-separator]) + ("\eOn" [kp-decimal]) + ("\eOM" [kp-enter]) + + ;; These won't be set up by either either + ("\e[K" [key_eol]) ;; Not an X keysym + ("\e[J" [key_eos]) ;; Not an X keysym + ("\e[2J" [key_clear]) ;; Not an X keysym + ("\e[P" [key_dc]) ;; Not an X keysym + ("\e[g" [S-tab]) ;; Not an X keysym + ("\e[2N" [clearentry]) ;; Not an X keysym + ("\e[2K" [S-clearentry]) ;; Not an X keysym + ("\e[E" [?\C-j]) ;; Not an X keysym + ("\e[g" [S-backtab]) ;; Not an X keysym + ("\e[?1i" [key_sprint]) ;; Not an X keysym + ("\e[4h" [key_sic]) ;; Not an X keysym + ("\e[4l" [S-delete]) ;; Not an X keysym + ("\e[Q" [S-insertline]) ;; Not an X keysym + ("\e[1Q" [key_sdl]) ;; Not an X keysym + ("\e[19l" [key_seol]) ;; Not an X keysym + ("\e[19h" [S-erasepage]) ;; Not an X keysym + ("\e[V" [S-page]) ;; Not an X keysym + ("\eS" [send]) ;; Not an X keysym + ("\e5" [S-send]) ;; Not an X keysym + )) + + ;; The numeric keypad keys. + (let ((i 0)) + (while (< i 10) + (define-key function-key-map + (format "\eO%c" (+ i ?p)) + (vector (intern (format "kp-%d" i)))) + (setq i (1+ i)))) + ;; The numbered function keys. + (let ((i 0)) + (while (< i 16) + (define-key function-key-map + (format "\e?%c" (+ i ?a)) + (vector (intern (format "f%d" (1+ i))))) + (define-key function-key-map + (format "\e?%c" (+ i ?A)) + (vector (intern (format "S-f%d" (1+ i))))) + (setq i (1+ i)))) + + (tvi970-set-keypad-mode 1)) ;;; Should keypad numbers send ordinary digits or distinct escape sequences? (defvar tvi970-keypad-numeric nil @@ -121,7 +124,5 @@ With a negative argument, select numeric keypad mode." (> (prefix-numeric-value arg) 0))) (send-string-to-terminal (if tvi970-keypad-numeric "\e=" "\e>"))) -(tvi970-set-keypad-mode 1) - ;;; arch-tag: c1334cf0-1462-41c3-a963-c077d175f8f0 ;;; tvi970.el ends here diff --git a/lisp/term/vt100.el b/lisp/term/vt100.el index dfe011c0f6e..6b44e941813 100644 --- a/lisp/term/vt100.el +++ b/lisp/term/vt100.el @@ -36,8 +36,12 @@ ;;; Code: ;; Set up function-key-map entries that termcap and terminfo don't know. -(load "term/lk201" nil t) + +(defun terminal-init-vt100 () + "Terminal initialization function for vt100." + (load "term/lk201" nil t)) + ;;; Controlling the screen width. (defvar vt100-wide-mode (= (frame-width) 132) "t if vt100 is in 132-column mode.") diff --git a/lisp/term/vt102.el b/lisp/term/vt102.el index 887f63837eb..ad780ed5081 100644 --- a/lisp/term/vt102.el +++ b/lisp/term/vt102.el @@ -1,6 +1,8 @@ ;; -*- no-byte-compile: t -*- -(load "term/vt100" nil t) +(defun terminal-init-vt102 () + "Terminal initialization function for vt102." + (load "term/vt100" nil t)) ;;; arch-tag: 6e839cfc-125a-4574-82f1-c23a51f7c50f ;;; vt102.el ends here diff --git a/lisp/term/vt125.el b/lisp/term/vt125.el index 458e0dafc22..2221e597aed 100644 --- a/lisp/term/vt125.el +++ b/lisp/term/vt125.el @@ -1,6 +1,8 @@ ;; -*- no-byte-compile: t -*- -(load "term/vt100" nil t) +(defun terminal-init-vt125 () + "Terminal initialization function for vt125." + (load "term/vt100" nil t)) ;;; arch-tag: 1d92d70f-dd55-4a1d-9088-e215a4883801 ;;; vt125.el ends here diff --git a/lisp/term/vt200.el b/lisp/term/vt200.el index 0ff0a30f567..e1215d15023 100644 --- a/lisp/term/vt200.el +++ b/lisp/term/vt200.el @@ -1,10 +1,12 @@ ;; -*- no-byte-compile: t -*- ;; For our purposes we can treat the vt200 and vt100 almost alike. ;; Most differences are handled by the termcap entry. -(load "term/vt100" nil t) -;; Make F11 an escape key. -(define-key function-key-map "\e[23~" [?\e]) +(defun terminal-init-vt200 () + "Terminal initialization function for vt200." + (load "term/vt100" nil t) + ;; Make F11 an escape key. + (define-key function-key-map "\e[23~" [?\e])) ;;; arch-tag: 0f78f583-9f32-4237-b106-28bcfff21d89 ;;; vt200.el ends here diff --git a/lisp/term/vt201.el b/lisp/term/vt201.el index d7deeaf11c7..315030ab687 100644 --- a/lisp/term/vt201.el +++ b/lisp/term/vt201.el @@ -1,10 +1,11 @@ ;; -*- no-byte-compile: t -*- ;; For our purposes we can treat the vt200 and vt100 almost alike. ;; Most differences are handled by the termcap entry. -(load "term/vt100" nil t) - -;; Make F11 an escape key. -(define-key function-key-map "\e[23~" [?\e]) +(defun terminal-init-vt201 () + "Terminal initialization function for vt201." + (load "term/vt100" nil t) + ;; Make F11 an escape key. + (define-key function-key-map "\e[23~" [?\e])) ;;; arch-tag: a6abb38f-60ea-449e-a9e9-3fb8572c52ae ;;; vt201.el ends here diff --git a/lisp/term/vt220.el b/lisp/term/vt220.el index 7ea1e3b57fa..cccd2a6dfb7 100644 --- a/lisp/term/vt220.el +++ b/lisp/term/vt220.el @@ -1,10 +1,11 @@ ;; -*- no-byte-compile: t -*- ;; For our purposes we can treat the vt200 and vt100 almost alike. ;; Most differences are handled by the termcap entry. -(load "term/vt100" nil t) - -;; Make F11 an escape key. -(define-key function-key-map "\e[23~" [?\e]) +(defun terminal-init-vt220 () + "Terminal initialization function for vt220." + (load "term/vt100" nil t) + ;; Make F11 an escape key. + (define-key function-key-map "\e[23~" [?\e])) ;;; arch-tag: 98fc4867-a20d-46a1-a276-d7be31e49871 ;;; vt220.el ends here diff --git a/lisp/term/vt240.el b/lisp/term/vt240.el index 05f0bebe50f..bb3931edac8 100644 --- a/lisp/term/vt240.el +++ b/lisp/term/vt240.el @@ -1,10 +1,11 @@ ;; -*- no-byte-compile: t -*- ;; For our purposes we can treat the vt200 and vt100 almost alike. ;; Most differences are handled by the termcap entry. -(load "term/vt100" nil t) - -;; Make F11 an escape key. -(define-key function-key-map "\e[23~" [?\e]) +(defun terminal-init-vt240 () + "Terminal initialization function for vt240." + (load "term/vt100" nil t) + ;; Make F11 an escape key. + (define-key function-key-map "\e[23~" [?\e])) ;;; arch-tag: d9f88e9c-02dc-49ff-871c-a415f08e4eb7 ;;; vt240.el ends here diff --git a/lisp/term/vt300.el b/lisp/term/vt300.el index 871ed234bc6..ff600f47a1e 100644 --- a/lisp/term/vt300.el +++ b/lisp/term/vt300.el @@ -1,8 +1,9 @@ ;; -*- no-byte-compile: t -*- -(load "term/vt100" nil t) - -;; Make F11 an escape key. -(define-key function-key-map "\e[23~" [?\e]) +(defun terminal-init-vt300 () + "Terminal initialization function for vt300." + (load "term/vt100" nil t) + ;; Make F11 an escape key. + (define-key function-key-map "\e[23~" [?\e])) ;;; arch-tag: 876831c9-a6f2-444a-b033-706e6fbc149f ;;; vt300.el ends here diff --git a/lisp/term/vt320.el b/lisp/term/vt320.el index c99b8672fc1..fb7772c7b5b 100644 --- a/lisp/term/vt320.el +++ b/lisp/term/vt320.el @@ -1,8 +1,9 @@ ;; -*- no-byte-compile: t -*- -(load "term/vt100" nil t) - -;; Make F11 an escape key. -(define-key function-key-map "\e[23~" [?\e]) +(defun terminal-init-vt320 () + "Terminal initialization function for vt320." + (load "term/vt100" nil t) + ;; Make F11 an escape key. + (define-key function-key-map "\e[23~" [?\e])) ;;; arch-tag: f9f4c954-0b9e-45f9-b450-a320d32abd9c ;;; vt320.el ends here diff --git a/lisp/term/vt400.el b/lisp/term/vt400.el index 666266e2bf5..97c0c5d7372 100644 --- a/lisp/term/vt400.el +++ b/lisp/term/vt400.el @@ -1,8 +1,9 @@ ;; -*- no-byte-compile: t -*- -(load "term/vt100" nil t) - -;; Make F11 an escape key. -(define-key function-key-map "\e[23~" [?\e]) +(defun terminal-init-vt400 () + "Terminal initialization function for vt400." + (load "term/vt100" nil t) + ;; Make F11 an escape key. + (define-key function-key-map "\e[23~" [?\e])) ;;; arch-tag: a70809c5-6b21-42cc-ba20-536683e5e7d5 ;;; vt400.el ends here diff --git a/lisp/term/vt420.el b/lisp/term/vt420.el index 9ed5fbe135b..65ffa759c17 100644 --- a/lisp/term/vt420.el +++ b/lisp/term/vt420.el @@ -1,8 +1,9 @@ ;; -*- no-byte-compile: t -*- -(load "term/vt100" nil t) - -;; Make F11 an escape key. -(define-key function-key-map "\e[23~" [?\e]) +(defun terminal-init-vt420 () + "Terminal initialization function for vt420." + (load "term/vt100" nil t) + ;; Make F11 an escape key. + (define-key function-key-map "\e[23~" [?\e])) ;;; arch-tag: df2f897c-3a12-4b3c-9259-df089f96c160 ;;; vt420.el ends here diff --git a/lisp/term/wyse50.el b/lisp/term/wyse50.el index 562f5c728c0..64c489d7204 100644 --- a/lisp/term/wyse50.el +++ b/lisp/term/wyse50.el @@ -1,6 +1,6 @@ ;;; wyse50.el --- terminal support code for Wyse 50 -*- no-byte-compile: t -*- -;; Copyright (C) 1989, 1993, 1994 Free Software Foundation, Inc. +;; Copyright (C) 1989, 1993, 1994, 2005 Free Software Foundation, Inc. ;; Author: Daniel Pfeiffer <occitan@esperanto.org>, ;; Jim Blandy <jimb@occs.cs.oberlin.edu> @@ -37,74 +37,92 @@ ;;; Code: -(define-key function-key-map "\C-a" (make-keymap)) -(mapcar (function (lambda (key-definition) - (define-key function-key-map - (car key-definition) (nth 1 key-definition)))) - '( - ;; These might be set up by termcap and terminfo - ("\C-k" [up]) - ("\C-j" [down]) - ("\C-l" [right]) - ("\C-h" [left]) - ("\^a@\^m" [f1]) - ("\^aA\^m" [f2]) - ("\^aB\^m" [f3]) - ("\^aC\^m" [f4]) - ("\^aD\^m" [f5]) - ("\^aE\^m" [f6]) - ("\^aF\^m" [f7]) - ("\^aG\^m" [f8]) - ("\^aH\^m" [f9]) - - ;; These might be set up by terminfo - ("\eK" [next]) - ("\eT" [clearline]) - ("\^^" [home]) - ("\e\^^" [end]) - ("\eQ" [insert]) - ("\eE" [insertline]) - ("\eR" [deleteline]) - ("\eP" [print]) - ("\er" [replace]) - ("\^aI\^m" [f10]) - ("\^aJ\^m" [f11]) - ("\^aK\^m" [f12]) - ("\^aL\^m" [f13]) - ("\^aM\^m" [f14]) - ("\^aN\^m" [f15]) - ("\^aO\^m" [f16]) - ("\^a`\^m" [f17]) - ("\^aa\^m" [f18]) - ("\^ab\^m" [f19]) - ("\^ac\^m" [f20]) - ("\^ad\^m" [f21]) - ("\^ae\^m" [f22]) - ("\^af\^m" [f23]) - ("\^ag\^m" [f24]) - ("\^ah\^m" [f25]) - ("\^ai\^m" [f26]) - ("\^aj\^m" [f27]) - ("\^ak\^m" [f28]) - ("\^al\^m" [f29]) - ("\^am\^m" [f30]) - ("\^an\^m" [f31]) - ("\^ao\^m" [f32]) - - ;; Terminfo may know about these, but X won't - ("\eI" [key-stab]) ;; Not an X keysym - ("\eJ" [key-snext]) ;; Not an X keysym - ("\eY" [key-clear]) ;; Not an X keysym - - ;; These are totally strange :-) - ("\eW" [?\C-?]) ;; Not an X keysym - ("\^a\^k\^m" [funct-up]) ;; Not an X keysym - ("\^a\^j\^m" [funct-down]) ;; Not an X keysym - ("\^a\^l\^m" [funct-right]) ;; Not an X keysym - ("\^a\^h\^m" [funct-left]) ;; Not an X keysym - ("\^a\^m\^m" [funct-return]) ;; Not an X keysym - ("\^a\^i\^m" [funct-tab]) ;; Not an X keysym -)) +(defun terminal-init-wyse50 () + "Terminal initialization function for wyse50." + (define-key function-key-map "\C-a" (make-keymap)) + (mapcar (function (lambda (key-definition) + (define-key function-key-map + (car key-definition) (nth 1 key-definition)))) + '( + ;; These might be set up by termcap and terminfo + ("\C-k" [up]) + ("\C-j" [down]) + ("\C-l" [right]) + ("\C-h" [left]) + ("\^a@\^m" [f1]) + ("\^aA\^m" [f2]) + ("\^aB\^m" [f3]) + ("\^aC\^m" [f4]) + ("\^aD\^m" [f5]) + ("\^aE\^m" [f6]) + ("\^aF\^m" [f7]) + ("\^aG\^m" [f8]) + ("\^aH\^m" [f9]) + + ;; These might be set up by terminfo + ("\eK" [next]) + ("\eT" [clearline]) + ("\^^" [home]) + ("\e\^^" [end]) + ("\eQ" [insert]) + ("\eE" [insertline]) + ("\eR" [deleteline]) + ("\eP" [print]) + ("\er" [replace]) + ("\^aI\^m" [f10]) + ("\^aJ\^m" [f11]) + ("\^aK\^m" [f12]) + ("\^aL\^m" [f13]) + ("\^aM\^m" [f14]) + ("\^aN\^m" [f15]) + ("\^aO\^m" [f16]) + ("\^a`\^m" [f17]) + ("\^aa\^m" [f18]) + ("\^ab\^m" [f19]) + ("\^ac\^m" [f20]) + ("\^ad\^m" [f21]) + ("\^ae\^m" [f22]) + ("\^af\^m" [f23]) + ("\^ag\^m" [f24]) + ("\^ah\^m" [f25]) + ("\^ai\^m" [f26]) + ("\^aj\^m" [f27]) + ("\^ak\^m" [f28]) + ("\^al\^m" [f29]) + ("\^am\^m" [f30]) + ("\^an\^m" [f31]) + ("\^ao\^m" [f32]) + + ;; Terminfo may know about these, but X won't + ("\eI" [key-stab]) ;; Not an X keysym + ("\eJ" [key-snext]) ;; Not an X keysym + ("\eY" [key-clear]) ;; Not an X keysym + + ;; These are totally strange :-) + ("\eW" [?\C-?]) ;; Not an X keysym + ("\^a\^k\^m" [funct-up]) ;; Not an X keysym + ("\^a\^j\^m" [funct-down]) ;; Not an X keysym + ("\^a\^l\^m" [funct-right]) ;; Not an X keysym + ("\^a\^h\^m" [funct-left]) ;; Not an X keysym + ("\^a\^m\^m" [funct-return]) ;; Not an X keysym + ("\^a\^i\^m" [funct-tab]) ;; Not an X keysym + )) + + ;; Miscellaneous hacks + + ;; This is an ugly hack for a nasty problem: + ;; Wyse 50 takes one character cell to store video attributes (which seems to + ;; explain width 79 rather than 80, column 1 is not used!!!). + ;; On killing (C-x C-c) the end inverse code (on column 1 of line 24) + ;; of the mode line is overwritten AFTER all the y-or-n questions. + ;; This causes the attribute to remain in effect until the mode line has + ;; scrolled of the screen. Suspending (C-z) does not cause this problem. + ;; On such terminals, Emacs should sacrifice the first and last character of + ;; each mode line, rather than a whole screen column! + (add-hook 'kill-emacs-hook + (function (lambda () (interactive) + (send-string-to-terminal + (concat "\ea23R" (1+ (frame-width)) "C\eG0")))))) (defun enable-arrow-keys () "To be called by term-setup-hook. Overrides 6 Emacs standard keys @@ -131,22 +149,5 @@ M-r M-x move-to-window-line, Funct up-arrow or down-arrow are similar ("\er" nil))) (fset 'enable-arrow-keys nil)) - -;;; Miscellaneous hacks - -;;; This is an ugly hack for a nasty problem: -;;; Wyse 50 takes one character cell to store video attributes (which seems to -;;; explain width 79 rather than 80, column 1 is not used!!!). -;;; On killing (C-x C-c) the end inverse code (on column 1 of line 24) -;;; of the mode line is overwritten AFTER all the y-or-n questions. -;;; This causes the attribute to remain in effect until the mode line has -;;; scrolled of the screen. Suspending (C-z) does not cause this problem. -;;; On such terminals, Emacs should sacrifice the first and last character of -;;; each mode line, rather than a whole screen column! -(add-hook 'kill-emacs-hook - (function (lambda () (interactive) - (send-string-to-terminal - (concat "\ea23R" (1+ (frame-width)) "C\eG0"))))) - ;;; arch-tag: b6a05d37-eead-4cf6-b997-0f956c68881c ;;; wyse50.el ends here diff --git a/lisp/term/xterm.el b/lisp/term/xterm.el index 1d700b727d3..d0c26aa4b94 100644 --- a/lisp/term/xterm.el +++ b/lisp/term/xterm.el @@ -26,229 +26,238 @@ ;;; Code: -;;; rxvt terminals sometimes set the TERM variable to "xterm", but -;;; rxvt's keybindings that are incompatible with xterm's. It is -;;; better in that case to load rxvt's terminal initialization file. -(if (and (getenv "COLORTERM") - (string-match "\\`rxvt" (getenv "COLORTERM"))) - (load "term/rxvt") - -;;; The terminal intialization C code file might have initialized -;;; function keys F13->F60 from the termcap/terminfo information. On -;;; a PC-style keyboard these keys correspond to -;;; MODIFIER-FUNCTION_KEY, where modifier is S-, C, A-, C-S-. The -;;; code here subsitutes the corresponding defintions in -;;; function-key-map. This substitution is needed because if a key -;;; definition if found in function-key-map, there are no further -;;; lookups in other keymaps. -(substitute-key-definition [f13] [S-f1] function-key-map) -(substitute-key-definition [f14] [S-f2] function-key-map) -(substitute-key-definition [f15] [S-f3] function-key-map) -(substitute-key-definition [f16] [S-f4] function-key-map) -(substitute-key-definition [f17] [S-f5] function-key-map) -(substitute-key-definition [f18] [S-f6] function-key-map) -(substitute-key-definition [f19] [S-f7] function-key-map) -(substitute-key-definition [f20] [S-f8] function-key-map) -(substitute-key-definition [f21] [S-f9] function-key-map) -(substitute-key-definition [f22] [S-f10] function-key-map) -(substitute-key-definition [f23] [S-f11] function-key-map) -(substitute-key-definition [f24] [S-f12] function-key-map) - -(substitute-key-definition [f25] [C-f1] function-key-map) -(substitute-key-definition [f26] [C-f2] function-key-map) -(substitute-key-definition [f27] [C-f3] function-key-map) -(substitute-key-definition [f28] [C-f4] function-key-map) -(substitute-key-definition [f29] [C-f5] function-key-map) -(substitute-key-definition [f30] [C-f6] function-key-map) -(substitute-key-definition [f31] [C-f7] function-key-map) -(substitute-key-definition [f32] [C-f8] function-key-map) -(substitute-key-definition [f33] [C-f9] function-key-map) -(substitute-key-definition [f34] [C-f10] function-key-map) -(substitute-key-definition [f35] [C-f11] function-key-map) -(substitute-key-definition [f36] [C-f12] function-key-map) - -(substitute-key-definition [f37] [C-S-f1] function-key-map) -(substitute-key-definition [f38] [C-S-f2] function-key-map) -(substitute-key-definition [f39] [C-S-f3] function-key-map) -(substitute-key-definition [f40] [C-S-f4] function-key-map) -(substitute-key-definition [f41] [C-S-f5] function-key-map) -(substitute-key-definition [f42] [C-S-f6] function-key-map) -(substitute-key-definition [f43] [C-S-f7] function-key-map) -(substitute-key-definition [f44] [C-S-f8] function-key-map) -(substitute-key-definition [f45] [C-S-f9] function-key-map) -(substitute-key-definition [f46] [C-S-f10] function-key-map) -(substitute-key-definition [f47] [C-S-f11] function-key-map) -(substitute-key-definition [f48] [C-S-f12] function-key-map) - -(substitute-key-definition [f49] [A-f1] function-key-map) -(substitute-key-definition [f50] [A-f2] function-key-map) -(substitute-key-definition [f51] [A-f3] function-key-map) -(substitute-key-definition [f52] [A-f4] function-key-map) -(substitute-key-definition [f53] [A-f5] function-key-map) -(substitute-key-definition [f54] [A-f6] function-key-map) -(substitute-key-definition [f55] [A-f7] function-key-map) -(substitute-key-definition [f56] [A-f8] function-key-map) -(substitute-key-definition [f57] [A-f9] function-key-map) -(substitute-key-definition [f58] [A-f10] function-key-map) -(substitute-key-definition [f59] [A-f11] function-key-map) -(substitute-key-definition [f60] [A-f12] function-key-map) - -(let ((map (make-sparse-keymap))) - (define-key map "\e[A" [up]) - (define-key map "\e[B" [down]) - (define-key map "\e[C" [right]) - (define-key map "\e[D" [left]) - (define-key map "\e[1~" [home]) - (define-key map "\e[2~" [insert]) - (define-key map "\e[3~" [delete]) - (define-key map "\e[4~" [select]) - (define-key map "\e[5~" [prior]) - (define-key map "\e[6~" [next]) - (define-key map "\e[11~" [f1]) - (define-key map "\e[12~" [f2]) - (define-key map "\e[13~" [f3]) - (define-key map "\e[14~" [f4]) - (define-key map "\e[15~" [f5]) - (define-key map "\e[17~" [f6]) - (define-key map "\e[18~" [f7]) - (define-key map "\e[19~" [f8]) - (define-key map "\e[20~" [f9]) - (define-key map "\e[21~" [f10]) - (define-key map "\e[23~" [f11]) - (define-key map "\e[24~" [f12]) - (define-key map "\e[29~" [print]) - - (define-key map "\eOP" [f1]) - (define-key map "\eOQ" [f2]) - (define-key map "\eOR" [f3]) - (define-key map "\eOS" [f4]) - - (define-key map "\eO2P" [S-f1]) - (define-key map "\eO2Q" [S-f2]) - (define-key map "\eO2R" [S-f3]) - (define-key map "\eO2S" [S-f4]) - (define-key map "\e[15;2~" [S-f5]) - (define-key map "\e[17;2~" [S-f6]) - (define-key map "\e[18;2~" [S-f7]) - (define-key map "\e[19;2~" [S-f8]) - (define-key map "\e[20;2~" [S-f9]) - (define-key map "\e[21;2~" [S-f10]) - (define-key map "\e[23;2~" [S-f11]) - (define-key map "\e[24;2~" [S-f12]) - - (define-key map "\eO5P" [C-f1]) - (define-key map "\eO5Q" [C-f2]) - (define-key map "\eO5R" [C-f3]) - (define-key map "\eO5S" [C-f4]) - (define-key map "\e[15;5~" [C-f5]) - (define-key map "\e[17;5~" [C-f6]) - (define-key map "\e[18;5~" [C-f7]) - (define-key map "\e[19;5~" [C-f8]) - (define-key map "\e[20;5~" [C-f9]) - (define-key map "\e[21;5~" [C-f10]) - (define-key map "\e[23;5~" [C-f11]) - (define-key map "\e[24;5~" [C-f12]) - - (define-key map "\eO6P" [C-S-f1]) - (define-key map "\eO6Q" [C-S-f2]) - (define-key map "\eO6R" [C-S-f3]) - (define-key map "\eO6S" [C-S-f4]) - (define-key map "\e[15;6~" [C-S-f5]) - (define-key map "\e[17;6~" [C-S-f6]) - (define-key map "\e[18;6~" [C-S-f7]) - (define-key map "\e[19;6~" [C-S-f8]) - (define-key map "\e[20;6~" [C-S-f9]) - (define-key map "\e[21;6~" [C-S-f10]) - (define-key map "\e[23;6~" [C-S-f11]) - (define-key map "\e[24;6~" [C-S-f12]) - - (define-key map "\eO3P" [A-f1]) - (define-key map "\eO3Q" [A-f2]) - (define-key map "\eO3R" [A-f3]) - (define-key map "\eO3S" [A-f4]) - (define-key map "\e[15;3~" [A-f5]) - (define-key map "\e[17;3~" [A-f6]) - (define-key map "\e[18;3~" [A-f7]) - (define-key map "\e[19;3~" [A-f8]) - (define-key map "\e[20;3~" [A-f9]) - (define-key map "\e[21;3~" [A-f10]) - (define-key map "\e[23;3~" [A-f11]) - (define-key map "\e[24;3~" [A-f12]) - - (define-key map "\e[1;2A" [S-up]) - (define-key map "\e[1;2B" [S-down]) - (define-key map "\e[1;2C" [S-right]) - (define-key map "\e[1;2D" [S-left]) - (define-key map "\e[1;2F" [S-end]) - (define-key map "\e[1;2H" [S-home]) - - (define-key map "\e[1;5A" [C-up]) - (define-key map "\e[1;5B" [C-down]) - (define-key map "\e[1;5C" [C-right]) - (define-key map "\e[1;5D" [C-left]) - (define-key map "\e[1;5F" [C-end]) - (define-key map "\e[1;5H" [C-home]) - - (define-key map "\e[1;6A" [C-S-up]) - (define-key map "\e[1;6B" [C-S-down]) - (define-key map "\e[1;6C" [C-S-right]) - (define-key map "\e[1;6D" [C-S-left]) - (define-key map "\e[1;6F" [C-S-end]) - (define-key map "\e[1;6H" [C-S-home]) - - (define-key map "\e[1;3A" [A-up]) - (define-key map "\e[1;3B" [A-down]) - (define-key map "\e[1;3C" [A-right]) - (define-key map "\e[1;3D" [A-left]) - (define-key map "\e[1;3F" [A-end]) - (define-key map "\e[1;3H" [A-home]) - - (define-key map "\e[2;2~" [S-insert]) - (define-key map "\e[3;2~" [S-delete]) - (define-key map "\e[5;2~" [S-prior]) - (define-key map "\e[6;2~" [S-next]) - - (define-key map "\e[2;5~" [C-insert]) - (define-key map "\e[3;5~" [C-delete]) - (define-key map "\e[5;5~" [C-prior]) - (define-key map "\e[6;5~" [C-next]) - - (define-key map "\e[2;6~" [C-S-insert]) - (define-key map "\e[3;6~" [C-S-delete]) - (define-key map "\e[5;6~" [C-S-prior]) - (define-key map "\e[6;6~" [C-S-next]) - - (define-key map "\e[2;3~" [A-insert]) - (define-key map "\e[3;3~" [A-delete]) - (define-key map "\e[5;3~" [A-prior]) - (define-key map "\e[6;3~" [A-next]) - - (define-key map "\eOA" [up]) - (define-key map "\eOB" [down]) - (define-key map "\eOC" [right]) - (define-key map "\eOD" [left]) - (define-key map "\eOF" [end]) - (define-key map "\eOH" [home]) - - (define-key map "\eO2A" [S-up]) - (define-key map "\eO2B" [S-down]) - (define-key map "\eO2C" [S-right]) - (define-key map "\eO2D" [S-left]) - (define-key map "\eO2F" [S-end]) - (define-key map "\eO2H" [S-home]) - - (define-key map "\eO5A" [C-up]) - (define-key map "\eO5B" [C-down]) - (define-key map "\eO5C" [C-right]) - (define-key map "\eO5D" [C-left]) - (define-key map "\eO5F" [C-end]) - (define-key map "\eO5H" [C-home]) - - ;; Use inheritance to let the main keymap override those defaults. - ;; This way we don't override terminfo-derived settings or settings - ;; made in the .emacs file. - (set-keymap-parent map (keymap-parent function-key-map)) - (set-keymap-parent function-key-map map)) +(defun terminal-init-xterm () + "Terminal initialization function for xterm." + ;; rxvt terminals sometimes set the TERM variable to "xterm", but + ;; rxvt's keybindings that are incompatible with xterm's. It is + ;; better in that case to use rxvt's initializion function. + (if (and (getenv "COLORTERM") + (string-match "\\`rxvt" (getenv "COLORTERM"))) + (progn + (load "term/rxvt") + (terminal-init-rxvt)) + + ;; The terminal intialization C code file might have initialized + ;; function keys F13->F60 from the termcap/terminfo information. On + ;; a PC-style keyboard these keys correspond to + ;; MODIFIER-FUNCTION_KEY, where modifier is S-, C, A-, C-S-. The + ;; code here subsitutes the corresponding defintions in + ;; function-key-map. This substitution is needed because if a key + ;; definition if found in function-key-map, there are no further + ;; lookups in other keymaps. + (substitute-key-definition [f13] [S-f1] function-key-map) + (substitute-key-definition [f14] [S-f2] function-key-map) + (substitute-key-definition [f15] [S-f3] function-key-map) + (substitute-key-definition [f16] [S-f4] function-key-map) + (substitute-key-definition [f17] [S-f5] function-key-map) + (substitute-key-definition [f18] [S-f6] function-key-map) + (substitute-key-definition [f19] [S-f7] function-key-map) + (substitute-key-definition [f20] [S-f8] function-key-map) + (substitute-key-definition [f21] [S-f9] function-key-map) + (substitute-key-definition [f22] [S-f10] function-key-map) + (substitute-key-definition [f23] [S-f11] function-key-map) + (substitute-key-definition [f24] [S-f12] function-key-map) + + (substitute-key-definition [f25] [C-f1] function-key-map) + (substitute-key-definition [f26] [C-f2] function-key-map) + (substitute-key-definition [f27] [C-f3] function-key-map) + (substitute-key-definition [f28] [C-f4] function-key-map) + (substitute-key-definition [f29] [C-f5] function-key-map) + (substitute-key-definition [f30] [C-f6] function-key-map) + (substitute-key-definition [f31] [C-f7] function-key-map) + (substitute-key-definition [f32] [C-f8] function-key-map) + (substitute-key-definition [f33] [C-f9] function-key-map) + (substitute-key-definition [f34] [C-f10] function-key-map) + (substitute-key-definition [f35] [C-f11] function-key-map) + (substitute-key-definition [f36] [C-f12] function-key-map) + + (substitute-key-definition [f37] [C-S-f1] function-key-map) + (substitute-key-definition [f38] [C-S-f2] function-key-map) + (substitute-key-definition [f39] [C-S-f3] function-key-map) + (substitute-key-definition [f40] [C-S-f4] function-key-map) + (substitute-key-definition [f41] [C-S-f5] function-key-map) + (substitute-key-definition [f42] [C-S-f6] function-key-map) + (substitute-key-definition [f43] [C-S-f7] function-key-map) + (substitute-key-definition [f44] [C-S-f8] function-key-map) + (substitute-key-definition [f45] [C-S-f9] function-key-map) + (substitute-key-definition [f46] [C-S-f10] function-key-map) + (substitute-key-definition [f47] [C-S-f11] function-key-map) + (substitute-key-definition [f48] [C-S-f12] function-key-map) + + (substitute-key-definition [f49] [A-f1] function-key-map) + (substitute-key-definition [f50] [A-f2] function-key-map) + (substitute-key-definition [f51] [A-f3] function-key-map) + (substitute-key-definition [f52] [A-f4] function-key-map) + (substitute-key-definition [f53] [A-f5] function-key-map) + (substitute-key-definition [f54] [A-f6] function-key-map) + (substitute-key-definition [f55] [A-f7] function-key-map) + (substitute-key-definition [f56] [A-f8] function-key-map) + (substitute-key-definition [f57] [A-f9] function-key-map) + (substitute-key-definition [f58] [A-f10] function-key-map) + (substitute-key-definition [f59] [A-f11] function-key-map) + (substitute-key-definition [f60] [A-f12] function-key-map) + + (let ((map (make-sparse-keymap))) + (define-key map "\e[A" [up]) + (define-key map "\e[B" [down]) + (define-key map "\e[C" [right]) + (define-key map "\e[D" [left]) + (define-key map "\e[1~" [home]) + (define-key map "\e[2~" [insert]) + (define-key map "\e[3~" [delete]) + (define-key map "\e[4~" [select]) + (define-key map "\e[5~" [prior]) + (define-key map "\e[6~" [next]) + (define-key map "\e[11~" [f1]) + (define-key map "\e[12~" [f2]) + (define-key map "\e[13~" [f3]) + (define-key map "\e[14~" [f4]) + (define-key map "\e[15~" [f5]) + (define-key map "\e[17~" [f6]) + (define-key map "\e[18~" [f7]) + (define-key map "\e[19~" [f8]) + (define-key map "\e[20~" [f9]) + (define-key map "\e[21~" [f10]) + (define-key map "\e[23~" [f11]) + (define-key map "\e[24~" [f12]) + (define-key map "\e[29~" [print]) + + (define-key map "\eOP" [f1]) + (define-key map "\eOQ" [f2]) + (define-key map "\eOR" [f3]) + (define-key map "\eOS" [f4]) + + (define-key map "\eO2P" [S-f1]) + (define-key map "\eO2Q" [S-f2]) + (define-key map "\eO2R" [S-f3]) + (define-key map "\eO2S" [S-f4]) + (define-key map "\e[15;2~" [S-f5]) + (define-key map "\e[17;2~" [S-f6]) + (define-key map "\e[18;2~" [S-f7]) + (define-key map "\e[19;2~" [S-f8]) + (define-key map "\e[20;2~" [S-f9]) + (define-key map "\e[21;2~" [S-f10]) + (define-key map "\e[23;2~" [S-f11]) + (define-key map "\e[24;2~" [S-f12]) + + (define-key map "\eO5P" [C-f1]) + (define-key map "\eO5Q" [C-f2]) + (define-key map "\eO5R" [C-f3]) + (define-key map "\eO5S" [C-f4]) + (define-key map "\e[15;5~" [C-f5]) + (define-key map "\e[17;5~" [C-f6]) + (define-key map "\e[18;5~" [C-f7]) + (define-key map "\e[19;5~" [C-f8]) + (define-key map "\e[20;5~" [C-f9]) + (define-key map "\e[21;5~" [C-f10]) + (define-key map "\e[23;5~" [C-f11]) + (define-key map "\e[24;5~" [C-f12]) + + (define-key map "\eO6P" [C-S-f1]) + (define-key map "\eO6Q" [C-S-f2]) + (define-key map "\eO6R" [C-S-f3]) + (define-key map "\eO6S" [C-S-f4]) + (define-key map "\e[15;6~" [C-S-f5]) + (define-key map "\e[17;6~" [C-S-f6]) + (define-key map "\e[18;6~" [C-S-f7]) + (define-key map "\e[19;6~" [C-S-f8]) + (define-key map "\e[20;6~" [C-S-f9]) + (define-key map "\e[21;6~" [C-S-f10]) + (define-key map "\e[23;6~" [C-S-f11]) + (define-key map "\e[24;6~" [C-S-f12]) + + (define-key map "\eO3P" [A-f1]) + (define-key map "\eO3Q" [A-f2]) + (define-key map "\eO3R" [A-f3]) + (define-key map "\eO3S" [A-f4]) + (define-key map "\e[15;3~" [A-f5]) + (define-key map "\e[17;3~" [A-f6]) + (define-key map "\e[18;3~" [A-f7]) + (define-key map "\e[19;3~" [A-f8]) + (define-key map "\e[20;3~" [A-f9]) + (define-key map "\e[21;3~" [A-f10]) + (define-key map "\e[23;3~" [A-f11]) + (define-key map "\e[24;3~" [A-f12]) + + (define-key map "\e[1;2A" [S-up]) + (define-key map "\e[1;2B" [S-down]) + (define-key map "\e[1;2C" [S-right]) + (define-key map "\e[1;2D" [S-left]) + (define-key map "\e[1;2F" [S-end]) + (define-key map "\e[1;2H" [S-home]) + + (define-key map "\e[1;5A" [C-up]) + (define-key map "\e[1;5B" [C-down]) + (define-key map "\e[1;5C" [C-right]) + (define-key map "\e[1;5D" [C-left]) + (define-key map "\e[1;5F" [C-end]) + (define-key map "\e[1;5H" [C-home]) + + (define-key map "\e[1;6A" [C-S-up]) + (define-key map "\e[1;6B" [C-S-down]) + (define-key map "\e[1;6C" [C-S-right]) + (define-key map "\e[1;6D" [C-S-left]) + (define-key map "\e[1;6F" [C-S-end]) + (define-key map "\e[1;6H" [C-S-home]) + + (define-key map "\e[1;3A" [A-up]) + (define-key map "\e[1;3B" [A-down]) + (define-key map "\e[1;3C" [A-right]) + (define-key map "\e[1;3D" [A-left]) + (define-key map "\e[1;3F" [A-end]) + (define-key map "\e[1;3H" [A-home]) + + (define-key map "\e[2;2~" [S-insert]) + (define-key map "\e[3;2~" [S-delete]) + (define-key map "\e[5;2~" [S-prior]) + (define-key map "\e[6;2~" [S-next]) + + (define-key map "\e[2;5~" [C-insert]) + (define-key map "\e[3;5~" [C-delete]) + (define-key map "\e[5;5~" [C-prior]) + (define-key map "\e[6;5~" [C-next]) + + (define-key map "\e[2;6~" [C-S-insert]) + (define-key map "\e[3;6~" [C-S-delete]) + (define-key map "\e[5;6~" [C-S-prior]) + (define-key map "\e[6;6~" [C-S-next]) + + (define-key map "\e[2;3~" [A-insert]) + (define-key map "\e[3;3~" [A-delete]) + (define-key map "\e[5;3~" [A-prior]) + (define-key map "\e[6;3~" [A-next]) + + (define-key map "\eOA" [up]) + (define-key map "\eOB" [down]) + (define-key map "\eOC" [right]) + (define-key map "\eOD" [left]) + (define-key map "\eOF" [end]) + (define-key map "\eOH" [home]) + + (define-key map "\eO2A" [S-up]) + (define-key map "\eO2B" [S-down]) + (define-key map "\eO2C" [S-right]) + (define-key map "\eO2D" [S-left]) + (define-key map "\eO2F" [S-end]) + (define-key map "\eO2H" [S-home]) + + (define-key map "\eO5A" [C-up]) + (define-key map "\eO5B" [C-down]) + (define-key map "\eO5C" [C-right]) + (define-key map "\eO5D" [C-left]) + (define-key map "\eO5F" [C-end]) + (define-key map "\eO5H" [C-home]) + + ;; Use inheritance to let the main keymap override those defaults. + ;; This way we don't override terminfo-derived settings or settings + ;; made in the .emacs file. + (set-keymap-parent map (keymap-parent function-key-map)) + (set-keymap-parent function-key-map map)) + + ;; Do it! + (xterm-register-default-colors) + ;; This recomputes all the default faces given the colors we've just set up. + (tty-set-up-initial-frame-faces))) ;; Set up colors, for those versions of xterm that support it. (defvar xterm-standard-colors @@ -366,11 +375,5 @@ versions of xterm." ;; right colors, so clear them. (clear-face-cache))) -;; Do it! -(xterm-register-default-colors) -;; This recomputes all the default faces given the colors we've just set up. -(tty-set-up-initial-frame-faces) - -) ;; arch-tag: 12e7ebdd-1e6c-4b25-b0f9-35ace25e855a ;;; xterm.el ends here |