summaryrefslogtreecommitdiffstats
path: root/samples/lynx-keymaps
blob: 2801bb7aad4a50c3aca6781c1455763c4607afe6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
# $LynxId: lynx-keymaps,v 1.7 2013/10/13 20:40:00 tom Exp $
#
# This is a sample key sequence definition file.  It is used by Lynx when
# built with ncurses or slang, to augment the definitions from your terminal's
# termcap or terminfo description.

# (Lynx implements this mechanism only if USE_KEYMAPS is defined during
# compilation, which has nothing to do with the KEYMAP directives in lynx.cfg,
# see source file LYCurses.h.)

# Lines that start with a '#' are comment lines.  Blank lines are ignored.

# The 'setkey' function may be used in two ways:
#
#   1.  setkey ESC-SEQUENCE  KEYSYM
#   2.  setkey ESC-SEQUENCE  KEYSYM_NAME
#
# where KEYSYM is an integer.  A keysym is essentially with the lynx.cfg
# file calls a 'keystroke', but I think that keysym is a more appropriate
# name.  The keysym is an integer and may be expressed in various ways:
#
#       as a decimal integer:  97
#       hexadecimal:           0x61
#       Octal:                 0141
#       as an ASCII character: 'a'
#
# Some keysyms may be expressed symbolically as a keysym name using the
# second form.  The currently recognized symbolic names are:
#
#       UPARROW
#       DNARROW
#       RTARROW
#       LTARROW
#       PGDOWN
#       PGUP
#       HOME
#       END
#       F1
#       F2
#       F3
#       F4
#       F5
#       F6
#       F7
#       F8
#       F9
#       F10
#       F11
#       F12
#       DO_KEY
#       FIND_KEY
#       SELECT_KEY
#       INSERT_KEY
#       REMOVE_KEY
#       DO_NOTHING
#
# It does not matter if your keyboard does not have some of the keys
# implied by the above names.  The fact is that lynx uses these keys as an
# an intermediate representation.
#
# The ESC-SEQUENCE should be enclosed in double quotes.  The '^' character
# is special and indicates a control character, e.g., ^K is Ctrl-K.  An ESC
# character (ascii 27) may be represented as ^[.  As an example, many
# terminals have arrow keys that emit 'ESC [ A' for the UP arrow.  This may
# be represented as the escape sequence "^[[A".  The default keymapping is
# given below:
#
setkey "\033[A"		UPARROW
setkey "\033OA"		UPARROW
setkey "\033[B"		DNARROW
setkey "\033OB"		DNARROW
setkey "\033[C"		RTARROW
setkey "\033OC"		RTARROW
setkey "\033[D"		LTARROW
setkey "\033OD"		LTARROW
setkey "\033[1~"	FIND_KEY
setkey "\033[2~"	INSERT_KEY
setkey "\033[3~"	REMOVE_KEY
setkey "\033[4~"	SELECT_KEY
setkey "\033[5~"	PGUP
setkey "\033[6~"	PGDOWN
setkey "\033[8~"	END
setkey "\033[7~"	HOME
setkey "\033[28~"	F1
setkey "\033[29~"	DO_KEY
#
# All other keys map to themselves, e.g,
#
setkey "a"		'a'
#
# Now suppose that your terminal produces different escape sequences for
# HOME and END.  In particular, suppose that the home key produces 'ESC [
# H' and that the end key produces 'ESC [ K'.  Then these may be defined to
# map to lynx HOME and END keys via
#
setkey "^[[H"		HOME
setkey "^[[K"		END
#
# Similarly, we may map emacs-like sequences to these functions:
#
setkey "^[<"		HOME
setkey "^[>"		END
#
# Note that it may be impossible to map several sequences to the same
# keysym (NCURSES only?), in that case the mapping occurring last wins.
#
# The following maps a sequence commonly used for Shift+Tab to the
# corresponding code.  It should not be needed if the terminfo file
# has the correct info for kcbt.
#
setkey "^[[Z"		0x10F
#
# Other special escapes:
#	\a		bell
#	\b		backspace
#	\f		form-feed
#	\n		newline (line-feed)
#	\r		carriage-return
#	\t		tab
#	\v		vertical tab
#	\<number>	octal number, up to 3 digits, e.g., "\033".
#	\d<number>	decimal number, up to 3 digits, e.g., "\d99"
#	\x<number>	hexadecimal number, up to 2 digits, e.g., "\xFF"
#
# For Unix-systems (which have termcap or terminfo) you may also use symbols
# that refer to the termcap/terminfo, by referencing the name bracketed by
# "^(" and ")", e.g.,
setkey "^(cuu1)"	UPARROW
setkey "^(up)"		UPARROW
#
# The following extension, introduced after lynx2.8.2, allows to force
# recognition of meta (ESC) prefixes - especially useful with the
# "Bash-like" lineeditor binding.  Its use is unnecessary in most
# cases if Lynx was built with ncurses, but is probably necessary for
# all keys that should recognize ESC as a prefix if Lynx was built with
# slang.
#
#       setkey ESC-SEQUENCE  Meta-LETTER
#       setkey ESC-SEQUENCE  Meta-KEYSYM
#       setkey ESC-SEQUENCE  Meta-KEYSYM_NAME
#
# for example
#setkey "\033b"          Meta-b
#setkey "\033e"          Meta-'e'
#setkey "\033\033[28~"   Meta-F1
#
# The following extensions, introduced after lynx2.8.2, allow mapping
# escape sequences directly to key commands (lynxactioncodes).
#
#       setkey ESC-SEQUENCE  LAC:LYNX_ACTION
#       setkey ESC-SEQUENCE  LAC:LYNX_ACTION:LYNX_EDITACTION
#
# where LYNX_ACTION is a key command specified as for lynx.cfg KEYMAP
# options and as listed on the KEYMAP ('K') screen, and LYNX_EDITACTION
# is a line-editor action specified as for KEYMAP and as listed in Line
# Editor help pages.  Using this form makes remapping according to user
# preference with KEYMAP impossible, and should thus be used sparingly
# (in general, use KEYMAP with PASS instead, if the goal is to force
# recognition of a key in form text fields).  For example:
#
#setkey "\033e"          LAC:EDITTEXTAREA:PASS