terminfo revision a5ae21e4
1# $XTermId: terminfo,v 1.200 2021/09/21 20:22:27 tom Exp $
2#
3# Updates/notes/new entries (e.g., xterm-8bit, xterm-16color, xterm-256color)
4# - Thomas E. Dickey
5#
6#------------------------------------------------------------------------------
7# Copyright 1996-2020,2021 by Thomas E. Dickey
8#
9#                         All Rights Reserved
10#
11# Permission is hereby granted, free of charge, to any person obtaining a
12# copy of this software and associated documentation files (the
13# "Software"), to deal in the Software without restriction, including
14# without limitation the rights to use, copy, modify, merge, publish,
15# distribute, sublicense, and/or sell copies of the Software, and to
16# permit persons to whom the Software is furnished to do so, subject to
17# the following conditions:
18#
19# The above copyright notice and this permission notice shall be included
20# in all copies or substantial portions of the Software.
21#
22# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
23# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
25# IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
26# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
27# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
28# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29#
30# Except as contained in this notice, the name(s) of the above copyright
31# holders shall not be used in advertising or otherwise to promote the
32# sale, use or other dealings in this Software without prior written
33# authorization.
34#------------------------------------------------------------------------------
35# format (ncurses 6.1): tic -I -W -1 -f -x terminfo
36#------------------------------------------------------------------------------
37#
38# Special Capabilities:
39# --------------------
40# ich has a corresponding capability that inserts a single blank.  We could
41#	have used ich1=\E[@, which works with ncurses, but that is not standard
42#	behavior.  If it is set, then SVr4 vi (e.g., Solaris 2.6) emits both
43#	smir/rmir and ich1.
44# meml locks memory above the cursor; memu unlocks (ala HP terminals).  This
45#	is not recognized by some older (e.g., SVr3) tic programs, but none
46#	do more than warn about it.  Ignore the warning.
47# smcup clears memory before switching to the alternate screen.  The older
48#	(deprecated) \E[?47h did not do this, requiring applications to
49#	embed a \E[2J in the rmcup string.  However, that behavior cannot
50#	be disabled via titeInhibit, making that resource not function as
51#	intended on systems with terminfo.
52# rs2/is2 are shorter with XFree86 xterm because it supports DECSTR.  We
53#	use the shorter sequence for compatibility with the termcap, which
54#	is trimmed to keep it shorter than 1023 characters.  It (escape \E[!p)
55#	replaces these in the conventional vt100 reset-string:
56#		\E7	- save cursor (fixes origin-mode side-effect)
57#		\E[r	- reset scrolling margins
58#		\E[m	- reset SGR (including color)
59#		\E[?7h	- reset wraparound mode (DECAWM)
60#		\E[?1l	- reset application cursor keys (DECCKM)
61#		\E[?6l	- reset origin mode (DECOM)
62#		\E8	- restore cursor
63#	DECSTR is recognized by XFree86 xterm even in vt52 mode.
64#
65# Editing Keypad:
66# --------------
67# XFree86 xterm emulates vt220 if the decTerminalID resource is set to 200 or
68# higher.  Otherwise it emulates a vt100 or vt52 depending on the value of the
69# resource.  When emulating a vt220, we support the editing keypad.  Sun and PC
70# keyboards have an editing keypad which is similar to the vt220:
71#
72#	VT220 editing keypad
73#	----------------------------
74#	Find      Insert      Remove
75#	Select    Prev        Next
76#	----------------------------
77#
78#	Sun/PC editing keypad
79#	----------------------------
80#	Insert    Home        PageUp
81#	Delete    End         PageDn
82#	----------------------------
83#
84# If the sunKeyboard resource is true, we map it this way (adjusting the values
85# of Home, End and Delete):
86#	VT220		      Sun/PC
87#	----------------------------
88#	Find		      Home
89#	Select		      End
90#	Insert		      Insert
91#	Remove		      Delete
92#	Prev		      PageUp
93#	Next		      PageDn
94#	----------------------------
95#
96# Note that all of the keys on the editing keypad transmit escape sequences.  A
97# vt220 does this only when in vt220 mode; when emulating a vt100 the editing
98# keypad is inactive.
99#
100# Alternative keycodes:
101# --------------------
102# Several of the function keys have alternative names, depending on the type of
103# host which your xterm is connected to.  DEC (i.e., the VMS system) uses F15
104# as the HELP key, F16 as the DO key.  Unix applications generally do not do
105# this.  Curses applications in particular, assign a unique keycode to each
106# capability string.  These terminal descriptions do not have conflicting
107# definitions, to ensure that Unix curses applications use a consistent set of
108# keycodes.  To get a VMS-bias, make these substitutions:
109#	1. change khome to kfnd
110#	2. change kend to kslt
111# The original xterm-r6 entry does in fact have a VMS bias.
112#
113# Some legacy applications using the termcap emulation may expect kll where
114# we have specified kend.
115#
116# Function keys with modifiers (Sun/PC):
117# -------------------------------------
118#	Shift-Fx          - kf{12+x}
119#	Control-Fx        - kf{24+x}
120#	Shift-Control-Fx  - kf{36+x}
121#
122# The terminfo defines some special keys which are documented as "shifted",
123# e.g., kDC is shifted-delete-character.
124#
125# Note however, that even though the terminfo says a key might be sent, there
126# may be conflicts which prevent this.  For example, it is common to use
127# shifted pageup and pagedown for window manager functions.  The default
128# translation for xterm since X11R4 has overridden shifted Insert, Select,
129# PageUp and PageDown, which correspond to terminfo kIC, kEND, kPRV and kNXT
130# respectively.
131#
132xterm-new|modern xterm terminal emulator,
133	npc,
134	indn=\E[%p1%dS,
135	kcbt=\E[Z,
136	kent=\EOM,
137	nel=\EE,
138	use=ecma+index,
139	use=xterm+keypad,
140	use=vt420+lrmm,
141	use=xterm+sm+1006,
142	use=ansi+rep,
143	use=ecma+strikeout,
144	use=xterm+pcfkeys,
145	use=xterm+tmux,
146	use=xterm+nofkeys,
147
148# Left/right margins are supported in xterm since patch #279 (2012/05/10)
149vt420+lrmm|VT420 left/right margins,
150	mgc=\E[?69l, smglp=\E[?69h\E[%i%p1%ds,
151	smglr=\E[?69h\E[%i%p1%d;%p2%ds,
152	smgrp=\E[?69h\E[%i;%p1%ds,
153
154# These "ansi+XXX" blocks were added in ncurses 5.0:
155ansi+rep,
156	rep=%p1%c\E[%p2%{1}%-%db,
157
158ansi+enq|ncurses extension for ANSI ENQ,
159	u6=\E[%i%d;%dR,
160	u7=\E[6n,
161	u8=\E[?%[;0123456789]c,
162	u9=\E[c,
163
164# Encode modifiers using parameters (see "Xterm Control Sequences" ctlseqs.ms).
165# Note that this is unrelated to PCTERM.
166#
167# Some names are extensions allowed by ncurses, e.g.,
168#	kDN, kDN5, kDN6, kLFT5, kLFT6, kRIT5, kRIT6, kUP, kUP5, kUP6
169#
170# The uppercase names are made up, since there are no standards that apply.
171# If they were limited to two characters, they could in principle be translated
172# to termcap.  However, termcap sizes are limited to 1023 bytes, so there is
173# little point in ensuring that extended key names can be translated to
174# termcap.  A terminfo file can be up to 4096 bytes; using all extended keys
175# that xterm can generate would in fact exceed that limit.
176#
177# The numbers correspond to the modifier parameters documented in Xterm
178# Control Sequences:
179#
180#	2	Shift
181#	3	Alt
182#	4	Shift + Alt
183#	5	Control
184#	6	Shift + Control
185#	7	Alt + Control
186#	8	Shift + Alt + Control
187#
188# X/Open Curses defines some shift combinations, which are also used here
189# where applicable.  Since it does define some shift combinations, no number
190# (2) is used for suffixing the made-up names.  Some combinations are not
191# useful, e.g., they may reboot your computer, or they may require too many
192# fingers.  I stopped at modifier 7, just to keep things simple -TD
193#
194# XTerm resources:
195# ---------------
196# The xterm+pcfn, xterm+pcf0, xterm+pcf1, xterm+pcf2 and xterm+pcf3 fragments
197# correspond to default resource settings for xterm on a 104-key PC keyboard
198# with 12 function-keys:
199#
200#	*sunKeyboard:false
201#	*oldXtermFKeys:false
202#	*modifyCursorKeys:2
203#	*modifyFunctionKeys:2
204#	*ctrlFKeys:10
205#
206# The key numbers are computed based on the modifiers:
207#
208#	kf1-kf12 are F1-F12
209#	kf13-kf24 are shift F1-F12
210#	kf25-kf36 are control F1-F12
211#	kf37-kf48 are control+shift F1-F12
212#	kf49-kf60 are alt F1-F12
213#	kf61-kf63 are shift-alt F1-F3
214#
215# Note that ncurses would allow definition of kf64 and beyond, if there were
216# an application that required it.
217#
218xterm+pcfkeys|fragment for PC-style keys,
219	use=xterm+app,
220	use=xterm+pcf2,
221	use=xterm+pce2,
222	use=xterm+pcc2,
223
224# This chunk is based on suggestions by Ailin Nemui and Nicholas Marriott, who
225# asked for some of xterm's advanced features to be added to its terminfo
226# entry.  It defines extended capabilities not found in standard terminfo or
227# termcap.  These are useful in tmux, for instance, hence the name.
228#
229# One caveat in adding extended capabilities in ncurses is that if the names
230# are longer than two characters, then they will not be visible through the
231# termcap interface.
232#
233# Ms modifies the selection/clipboard.  Its parameters are
234#	p1 = the storage unit (clipboard, selection or cut buffer)
235#	p2 = the base64-encoded clipboard content.
236#
237# Ss is used to set the cursor style as described by the DECSCUSR
238#	function to a block or underline.
239# Se resets the cursor style to the terminal power-on default.
240#
241# Cs and Ce set and reset the cursor colour.
242xterm+tmux|advanced xterm features used in tmux,
243	Cr=\E]112\007,
244	Cs=\E]12;%p1%s\007,
245	Ms=\E]52;%p1%s;%p2%s
246	   \007,
247	Se=\E[2\sq,
248	Ss=\E[%p1%d\sq,
249#
250# The ctrlFKeys resource is only relevant to the xterm+pcfn and xterm+pcfN
251# entries, since the modifyFunctionKeys resource overrides ctrlFKeys when it is
252# positive.  A different choice of ctrlFKeys would give a different set of
253# function-key strings.
254xterm+pcfn|fragment with modifyFunctionKeys:-1 and ctrlFKeys:10,
255	kf1=\EOP,
256	kf10=\E[21~,
257	kf11=\E[23~,
258	kf12=\E[24~,
259	kf13=\E[25~,
260	kf14=\E[26~,
261	kf15=\E[28~,
262	kf16=\E[29~,
263	kf17=\E[31~,
264	kf18=\E[32~,
265	kf19=\E[33~,
266	kf2=\EOQ,
267	kf20=\E[34~,
268	kf21=\E[42~,
269	kf22=\E[43~,
270	kf23=\E[44~,
271	kf24=\E[45~,
272	kf25=\E[46~,
273	kf26=\E[47~,
274	kf27=\E[48~,
275	kf28=\E[49~,
276	kf29=\E[50~,
277	kf3=\EOR,
278	kf30=\E[51~,
279	kf31=\E[52~,
280	kf32=\E[53~,
281	kf33=\E[54~,
282	kf34=\E[55~,
283	kf35=\E[56~,
284	kf36=\E[57~,
285	kf37=\E[58~,
286	kf38=\E[59~,
287	kf39=\E[60~,
288	kf4=\EOS,
289	kf40=\E[61~,
290	kf41=\E[62~,
291	kf42=\E[63~,
292	kf43=\E[64~,
293	kf44=\E[65~,
294	kf45=\E[66~,
295	kf46=\E[67~,
296	kf47=\E[68~,
297	kf48=\E[69~,
298	kf5=\E[15~,
299	kf6=\E[17~,
300	kf7=\E[18~,
301	kf8=\E[19~,
302	kf9=\E[20~,
303
304# Changing ctrlFKeys to 12 would let us number the keys using just shift- and
305# control- modifiers:
306#	kf1-kf12 are F1-F12
307#	kf13-kf24 are shift F1-F12
308#	kf25-kf36 are control F1-F12
309#	kf37-kf48 are control+shift F1-F12
310xterm+pcfN|fragment with modifyFunctionKeys:-1 and ctrlFKeys:12,
311	kf1=\EOP,
312	kf10=\E[21~,
313	kf11=\E[23~,
314	kf12=\E[24~,
315	kf13=\E[25~,
316	kf14=\E[26~,
317	kf15=\E[28~,
318	kf16=\E[29~,
319	kf17=\E[31~,
320	kf18=\E[32~,
321	kf19=\E[33~,
322	kf2=\EOQ,
323	kf20=\E[34~,
324	kf21=\E[42~,
325	kf22=\E[43~,
326	kf23=\E[44~,
327	kf24=\E[45~,
328	kf25=\E[46~,
329	kf26=\E[47~,
330	kf27=\E[48~,
331	kf28=\E[49~,
332	kf29=\E[50~,
333	kf3=\EOR,
334	kf30=\E[51~,
335	kf31=\E[52~,
336	kf32=\E[53~,
337	kf33=\E[54~,
338	kf34=\E[55~,
339	kf35=\E[56~,
340	kf36=\E[57~,
341	kf37=\E[58~,
342	kf38=\E[59~,
343	kf39=\E[60~,
344	kf4=\EOS,
345	kf40=\E[61~,
346	kf41=\E[62~,
347	kf42=\E[63~,
348	kf43=\E[64~,
349	kf44=\E[65~,
350	kf45=\E[66~,
351	kf46=\E[67~,
352	kf47=\E[68~,
353	kf48=\E[69~,
354	kf5=\E[15~,
355	kf6=\E[17~,
356	kf7=\E[18~,
357	kf8=\E[19~,
358	kf9=\E[20~,
359
360xterm+pcf0|fragment with modifyFunctionKeys:0,
361	kf1=\EOP,
362	kf10=\E[21~,
363	kf11=\E[23~,
364	kf12=\E[24~,
365	kf13=\EO2P,
366	kf14=\EO2Q,
367	kf15=\EO2R,
368	kf16=\EO2S,
369	kf17=\E[15;2~,
370	kf18=\E[17;2~,
371	kf19=\E[18;2~,
372	kf2=\EOQ,
373	kf20=\E[19;2~,
374	kf21=\E[20;2~,
375	kf22=\E[21;2~,
376	kf23=\E[23;2~,
377	kf24=\E[24;2~,
378	kf25=\EO5P,
379	kf26=\EO5Q,
380	kf27=\EO5R,
381	kf28=\EO5S,
382	kf29=\E[15;5~,
383	kf3=\EOR,
384	kf30=\E[17;5~,
385	kf31=\E[18;5~,
386	kf32=\E[19;5~,
387	kf33=\E[20;5~,
388	kf34=\E[21;5~,
389	kf35=\E[23;5~,
390	kf36=\E[24;5~,
391	kf37=\EO6P,
392	kf38=\EO6Q,
393	kf39=\EO6R,
394	kf4=\EOS,
395	kf40=\EO6S,
396	kf41=\E[15;6~,
397	kf42=\E[17;6~,
398	kf43=\E[18;6~,
399	kf44=\E[19;6~,
400	kf45=\E[20;6~,
401	kf46=\E[21;6~,
402	kf47=\E[23;6~,
403	kf48=\E[24;6~,
404	kf49=\EO3P,
405	kf5=\E[15~,
406	kf50=\EO3Q,
407	kf51=\EO3R,
408	kf52=\EO3S,
409	kf53=\E[15;3~,
410	kf54=\E[17;3~,
411	kf55=\E[18;3~,
412	kf56=\E[19;3~,
413	kf57=\E[20;3~,
414	kf58=\E[21;3~,
415	kf59=\E[23;3~,
416	kf6=\E[17~,
417	kf60=\E[24;3~,
418	kf61=\EO4P,
419	kf62=\EO4Q,
420	kf63=\EO4R,
421	kf7=\E[18~,
422	kf8=\E[19~,
423	kf9=\E[20~,
424
425# This is almost the same as xterm+pcf2 because the unmodified keys all happen
426# to have a pattern that forces the modifier to the same position.
427xterm+pcf1|fragment with modifyFunctionKeys:1,
428	kf1=\EOP,
429	kf10=\E[21~,
430	kf11=\E[23~,
431	kf12=\E[24~,
432	kf13=\E[2P,
433	kf14=\E[2Q,
434	kf15=\E[2R,
435	kf16=\E[2S,
436	kf17=\E[15;2~,
437	kf18=\E[17;2~,
438	kf19=\E[18;2~,
439	kf2=\EOQ,
440	kf20=\E[19;2~,
441	kf21=\E[20;2~,
442	kf22=\E[21;2~,
443	kf23=\E[23;2~,
444	kf24=\E[24;2~,
445	kf25=\E[5P,
446	kf26=\E[5Q,
447	kf27=\E[5R,
448	kf28=\E[5S,
449	kf29=\E[15;5~,
450	kf3=\EOR,
451	kf30=\E[17;5~,
452	kf31=\E[18;5~,
453	kf32=\E[19;5~,
454	kf33=\E[20;5~,
455	kf34=\E[21;5~,
456	kf35=\E[23;5~,
457	kf36=\E[24;5~,
458	kf37=\E[6P,
459	kf38=\E[6Q,
460	kf39=\E[6R,
461	kf4=\EOS,
462	kf40=\E[6S,
463	kf41=\E[15;6~,
464	kf42=\E[17;6~,
465	kf43=\E[18;6~,
466	kf44=\E[19;6~,
467	kf45=\E[20;6~,
468	kf46=\E[21;6~,
469	kf47=\E[23;6~,
470	kf48=\E[24;6~,
471	kf49=\E[3P,
472	kf5=\E[15~,
473	kf50=\E[3Q,
474	kf51=\E[3R,
475	kf52=\E[3S,
476	kf53=\E[15;3~,
477	kf54=\E[17;3~,
478	kf55=\E[18;3~,
479	kf56=\E[19;3~,
480	kf57=\E[20;3~,
481	kf58=\E[21;3~,
482	kf59=\E[23;3~,
483	kf6=\E[17~,
484	kf60=\E[24;3~,
485	kf61=\E[4P,
486	kf62=\E[4Q,
487	kf63=\E[4R,
488	kf7=\E[18~,
489	kf8=\E[19~,
490	kf9=\E[20~,
491
492xterm+pcf2|fragment with modifyFunctionKeys:2,
493	kf1=\EOP,
494	kf10=\E[21~,
495	kf11=\E[23~,
496	kf12=\E[24~,
497	kf13=\E[1;2P,
498	kf14=\E[1;2Q,
499	kf15=\E[1;2R,
500	kf16=\E[1;2S,
501	kf17=\E[15;2~,
502	kf18=\E[17;2~,
503	kf19=\E[18;2~,
504	kf2=\EOQ,
505	kf20=\E[19;2~,
506	kf21=\E[20;2~,
507	kf22=\E[21;2~,
508	kf23=\E[23;2~,
509	kf24=\E[24;2~,
510	kf25=\E[1;5P,
511	kf26=\E[1;5Q,
512	kf27=\E[1;5R,
513	kf28=\E[1;5S,
514	kf29=\E[15;5~,
515	kf3=\EOR,
516	kf30=\E[17;5~,
517	kf31=\E[18;5~,
518	kf32=\E[19;5~,
519	kf33=\E[20;5~,
520	kf34=\E[21;5~,
521	kf35=\E[23;5~,
522	kf36=\E[24;5~,
523	kf37=\E[1;6P,
524	kf38=\E[1;6Q,
525	kf39=\E[1;6R,
526	kf4=\EOS,
527	kf40=\E[1;6S,
528	kf41=\E[15;6~,
529	kf42=\E[17;6~,
530	kf43=\E[18;6~,
531	kf44=\E[19;6~,
532	kf45=\E[20;6~,
533	kf46=\E[21;6~,
534	kf47=\E[23;6~,
535	kf48=\E[24;6~,
536	kf49=\E[1;3P,
537	kf5=\E[15~,
538	kf50=\E[1;3Q,
539	kf51=\E[1;3R,
540	kf52=\E[1;3S,
541	kf53=\E[15;3~,
542	kf54=\E[17;3~,
543	kf55=\E[18;3~,
544	kf56=\E[19;3~,
545	kf57=\E[20;3~,
546	kf58=\E[21;3~,
547	kf59=\E[23;3~,
548	kf6=\E[17~,
549	kf60=\E[24;3~,
550	kf61=\E[1;4P,
551	kf62=\E[1;4Q,
552	kf63=\E[1;4R,
553	kf7=\E[18~,
554	kf8=\E[19~,
555	kf9=\E[20~,
556
557xterm+pcf3|fragment with modifyFunctionKeys:3,
558	kf1=\EOP,
559	kf10=\E[21~,
560	kf11=\E[23~,
561	kf12=\E[24~,
562	kf13=\E[>1;2P,
563	kf14=\E[>1;2Q,
564	kf15=\E[>1;2R,
565	kf16=\E[>1;2S,
566	kf17=\E[>15;2~,
567	kf18=\E[>17;2~,
568	kf19=\E[>18;2~,
569	kf2=\EOQ,
570	kf20=\E[>19;2~,
571	kf21=\E[>20;2~,
572	kf22=\E[>21;2~,
573	kf23=\E[>23;2~,
574	kf24=\E[>24;2~,
575	kf25=\E[>1;5P,
576	kf26=\E[>1;5Q,
577	kf27=\E[>1;5R,
578	kf28=\E[>1;5S,
579	kf29=\E[>15;5~,
580	kf3=\EOR,
581	kf30=\E[>17;5~,
582	kf31=\E[>18;5~,
583	kf32=\E[>19;5~,
584	kf33=\E[>20;5~,
585	kf34=\E[>21;5~,
586	kf35=\E[>23;5~,
587	kf36=\E[>24;5~,
588	kf37=\E[>1;6P,
589	kf38=\E[>1;6Q,
590	kf39=\E[>1;6R,
591	kf4=\EOS,
592	kf40=\E[>1;6S,
593	kf41=\E[>15;6~,
594	kf42=\E[>17;6~,
595	kf43=\E[>18;6~,
596	kf44=\E[>19;6~,
597	kf45=\E[>20;6~,
598	kf46=\E[>21;6~,
599	kf47=\E[>23;6~,
600	kf48=\E[>24;6~,
601	kf49=\E[>1;3P,
602	kf5=\E[15~,
603	kf50=\E[>1;3Q,
604	kf51=\E[>1;3R,
605	kf52=\E[>1;3S,
606	kf53=\E[>15;3~,
607	kf54=\E[>17;3~,
608	kf55=\E[>18;3~,
609	kf56=\E[>19;3~,
610	kf57=\E[>20;3~,
611	kf58=\E[>21;3~,
612	kf59=\E[>23;3~,
613	kf6=\E[17~,
614	kf60=\E[>24;3~,
615	kf61=\E[>1;4P,
616	kf62=\E[>1;4Q,
617	kf63=\E[>1;4R,
618	kf7=\E[18~,
619	kf8=\E[19~,
620	kf9=\E[20~,
621#
622# The "PC-style" modifier scheme was introduced in xterm patch #94 (1999/3/27)
623# and revised in patch #167 (2002/8/24).
624#
625# The original assignments from patch #94 for cursor-keys had some technical
626# issues:
627#
628#	A parameter for a function-key to represent a modifier is just more
629#	bits.  But for a cursor-key it may change the behavior of the
630#	application.  For instance, emacs decodes the first parameter of a
631#	cursor-key as a repeat count.
632#
633#	A parameterized string should (really) not begin with SS3 (\EO).
634#	Rather, CSI (\E[) should be used.
635#
636# For these reasons, the original assignments were deprecated.  For
637# compatibility reasons, they are still available as a setting of xterm's
638# modifyCursorKeys resource.  These fragments list the modified cursor-keys
639# that might apply to xterm+pcfkeys with different values of that resource.
640xterm+pcc3|fragment with modifyCursorKeys:3,
641	kLFT=\E[>1;2D,
642	kRIT=\E[>1;2C,
643	kind=\E[>1;2B,
644	kri=\E[>1;2A,
645	kDN=\E[>1;2B,
646	kDN3=\E[>1;3B,
647	kDN4=\E[>1;4B,
648	kDN5=\E[>1;5B,
649	kDN6=\E[>1;6B,
650	kDN7=\E[>1;7B,
651	kLFT3=\E[>1;3D,
652	kLFT4=\E[>1;4D,
653	kLFT5=\E[>1;5D,
654	kLFT6=\E[>1;6D,
655	kLFT7=\E[>1;7D,
656	kRIT3=\E[>1;3C,
657	kRIT4=\E[>1;4C,
658	kRIT5=\E[>1;5C,
659	kRIT6=\E[>1;6C,
660	kRIT7=\E[>1;7C,
661	kUP=\E[>1;2A,
662	kUP3=\E[>1;3A,
663	kUP4=\E[>1;4A,
664	kUP5=\E[>1;5A,
665	kUP6=\E[>1;6A,
666	kUP7=\E[>1;7A,
667
668xterm+pcc2|fragment with modifyCursorKeys:2,
669	kLFT=\E[1;2D,
670	kRIT=\E[1;2C,
671	kind=\E[1;2B,
672	kri=\E[1;2A,
673	kDN=\E[1;2B,
674	kDN3=\E[1;3B,
675	kDN4=\E[1;4B,
676	kDN5=\E[1;5B,
677	kDN6=\E[1;6B,
678	kDN7=\E[1;7B,
679	kLFT3=\E[1;3D,
680	kLFT4=\E[1;4D,
681	kLFT5=\E[1;5D,
682	kLFT6=\E[1;6D,
683	kLFT7=\E[1;7D,
684	kRIT3=\E[1;3C,
685	kRIT4=\E[1;4C,
686	kRIT5=\E[1;5C,
687	kRIT6=\E[1;6C,
688	kRIT7=\E[1;7C,
689	kUP=\E[1;2A,
690	kUP3=\E[1;3A,
691	kUP4=\E[1;4A,
692	kUP5=\E[1;5A,
693	kUP6=\E[1;6A,
694	kUP7=\E[1;7A,
695
696xterm+pcc1|fragment with modifyCursorKeys:1,
697	kLFT=\E[2D,
698	kRIT=\E[2C,
699	kind=\E[2B,
700	kri=\E[2A,
701	kDN=\E[2B,
702	kDN3=\E[3B,
703	kDN4=\E[4B,
704	kDN5=\E[5B,
705	kDN6=\E[6B,
706	kDN7=\E[7B,
707	kLFT3=\E[3D,
708	kLFT4=\E[4D,
709	kLFT5=\E[5D,
710	kLFT6=\E[6D,
711	kLFT7=\E[7D,
712	kRIT3=\E[3C,
713	kRIT4=\E[4C,
714	kRIT5=\E[5C,
715	kRIT6=\E[6C,
716	kRIT7=\E[7C,
717	kUP=\E[2A,
718	kUP3=\E[3A,
719	kUP4=\E[4A,
720	kUP5=\E[5A,
721	kUP6=\E[6A,
722	kUP7=\E[7A,
723
724xterm+pcc0|fragment with modifyCursorKeys:0,
725	kLFT=\EO2D,
726	kRIT=\EO2C,
727	kind=\EO2B,
728	kri=\EO2A,
729	kDN=\EO2B,
730	kDN3=\EO3B,
731	kDN4=\EO4B,
732	kDN5=\EO5B,
733	kDN6=\EO6B,
734	kDN7=\EO7B,
735	kLFT3=\EO3D,
736	kLFT4=\EO4D,
737	kLFT5=\EO5D,
738	kLFT6=\EO6D,
739	kLFT7=\EO7D,
740	kRIT3=\EO3C,
741	kRIT4=\EO4C,
742	kRIT5=\EO5C,
743	kRIT6=\EO6C,
744	kRIT7=\EO7C,
745	kUP=\EO2A,
746	kUP3=\EO3A,
747	kUP4=\EO4A,
748	kUP5=\EO5A,
749	kUP6=\EO6A,
750	kUP7=\EO7A,
751
752# The home/end keys on the editing keypad are also treated as cursor keys.
753xterm+pce3|fragment with modifyCursorKeys:3,
754	kDC=\E[>3;2~,
755	kEND=\E[>1;2F,
756	kHOM=\E[>1;2H,
757	kIC=\E[>2;2~,
758	kNXT=\E[>6;2~,
759	kPRV=\E[>5;2~,
760	kDC3=\E[>3;3~,
761	kDC4=\E[>3;4~,
762	kDC5=\E[>3;5~,
763	kDC6=\E[>3;6~,
764	kDC7=\E[>3;7~,
765	kEND3=\E[>1;3F,
766	kEND4=\E[>1;4F,
767	kEND5=\E[>1;5F,
768	kEND6=\E[>1;6F,
769	kEND7=\E[>1;7F,
770	kHOM3=\E[>1;3H,
771	kHOM4=\E[>1;4H,
772	kHOM5=\E[>1;5H,
773	kHOM6=\E[>1;6H,
774	kHOM7=\E[>1;7H,
775	kIC3=\E[>2;3~,
776	kIC4=\E[>2;4~,
777	kIC5=\E[>2;5~,
778	kIC6=\E[>2;6~,
779	kIC7=\E[>2;7~,
780	kNXT3=\E[>6;3~,
781	kNXT4=\E[>6;4~,
782	kNXT5=\E[>6;5~,
783	kNXT6=\E[>6;6~,
784	kNXT7=\E[>6;7~,
785	kPRV3=\E[>5;3~,
786	kPRV4=\E[>5;4~,
787	kPRV5=\E[>5;5~,
788	kPRV6=\E[>5;6~,
789	kPRV7=\E[>5;7~,
790	use=xterm+pce0,
791
792xterm+pce2|fragment with modifyCursorKeys:2,
793	kDC=\E[3;2~,
794	kEND=\E[1;2F,
795	kHOM=\E[1;2H,
796	kIC=\E[2;2~,
797	kNXT=\E[6;2~,
798	kPRV=\E[5;2~,
799	kDC3=\E[3;3~,
800	kDC4=\E[3;4~,
801	kDC5=\E[3;5~,
802	kDC6=\E[3;6~,
803	kDC7=\E[3;7~,
804	kEND3=\E[1;3F,
805	kEND4=\E[1;4F,
806	kEND5=\E[1;5F,
807	kEND6=\E[1;6F,
808	kEND7=\E[1;7F,
809	kHOM3=\E[1;3H,
810	kHOM4=\E[1;4H,
811	kHOM5=\E[1;5H,
812	kHOM6=\E[1;6H,
813	kHOM7=\E[1;7H,
814	kIC3=\E[2;3~,
815	kIC4=\E[2;4~,
816	kIC5=\E[2;5~,
817	kIC6=\E[2;6~,
818	kIC7=\E[2;7~,
819	kNXT3=\E[6;3~,
820	kNXT4=\E[6;4~,
821	kNXT5=\E[6;5~,
822	kNXT6=\E[6;6~,
823	kNXT7=\E[6;7~,
824	kPRV3=\E[5;3~,
825	kPRV4=\E[5;4~,
826	kPRV5=\E[5;5~,
827	kPRV6=\E[5;6~,
828	kPRV7=\E[5;7~,
829	use=xterm+pce0,
830
831xterm+pce1|fragment with modifyCursorKeys:1,
832	kDC=\E[3;2~,
833	kEND=\E[2F,
834	kHOM=\E[2H,
835	kIC=\E[2;2~,
836	kNXT=\E[6;2~,
837	kPRV=\E[5;2~,
838	kDC3=\E[3;3~,
839	kDC4=\E[3;4~,
840	kDC5=\E[3;5~,
841	kDC6=\E[3;6~,
842	kDC7=\E[3;7~,
843	kEND3=\E[3F,
844	kEND4=\E[4F,
845	kEND5=\E[5F,
846	kEND6=\E[6F,
847	kEND7=\E[7F,
848	kHOM3=\E[3H,
849	kHOM4=\E[4H,
850	kHOM5=\E[5H,
851	kHOM6=\E[6H,
852	kHOM7=\E[7H,
853	kIC3=\E[2;3~,
854	kIC4=\E[2;4~,
855	kIC5=\E[2;5~,
856	kIC6=\E[2;6~,
857	kIC7=\E[2;7~,
858	kNXT3=\E[6;3~,
859	kNXT4=\E[6;4~,
860	kNXT5=\E[6;5~,
861	kNXT6=\E[6;6~,
862	kNXT7=\E[6;7~,
863	kPRV3=\E[5;3~,
864	kPRV4=\E[5;4~,
865	kPRV5=\E[5;5~,
866	kPRV6=\E[5;6~,
867	kPRV7=\E[5;7~,
868	use=xterm+pce0,
869
870xterm+pce0|fragment with modifyCursorKeys:0,
871	kDC=\E[3;2~,
872	kEND=\EO2F,
873	kHOM=\EO2H,
874	kIC=\E[2;2~,
875	kNXT=\E[6;2~,
876	kPRV=\E[5;2~,
877	kDC3=\E[3;3~,
878	kDC4=\E[3;4~,
879	kDC5=\E[3;5~,
880	kDC6=\E[3;6~,
881	kDC7=\E[3;7~,
882	kEND3=\EO3F,
883	kEND4=\EO4F,
884	kEND5=\EO5F,
885	kEND6=\EO6F,
886	kEND7=\EO7F,
887	kHOM3=\EO3H,
888	kHOM4=\EO4H,
889	kHOM5=\EO5H,
890	kHOM6=\EO6H,
891	kHOM7=\EO7H,
892	kIC3=\E[2;3~,
893	kIC4=\E[2;4~,
894	kIC5=\E[2;5~,
895	kIC6=\E[2;6~,
896	kIC7=\E[2;7~,
897	kNXT3=\E[6;3~,
898	kNXT4=\E[6;4~,
899	kNXT5=\E[6;5~,
900	kNXT6=\E[6;6~,
901	kNXT7=\E[6;7~,
902	kPRV3=\E[5;3~,
903	kPRV4=\E[5;4~,
904	kPRV5=\E[5;5~,
905	kPRV6=\E[5;6~,
906	kPRV7=\E[5;7~,
907	use=xterm+edit,
908
909ecma+italics|ECMA-48 italics,
910	ritm=\E[23m,
911	sitm=\E[3m,
912
913# The rmxx/smxx capabilities are an ncurses extension
914ecma+strikeout|ECMA-48 strikeout/crossed-out,
915	rmxx=\E[29m,
916	smxx=\E[9m,
917
918# ECMA-48 does not include the VT100 indexing and scroll-margins.  It has its
919# own variation.
920ecma+index|ECMA-48 scroll up/down,
921	indn=\E[%p1%dS,
922	rin=\E[%p1%dT,
923
924# The XM capability is an ncurses extension
925xterm+sm+1006|xterm SGR-mouse,
926	kmous=\E[<,
927	XM=\E[?1006;1000
928		%?
929			%p1%{1}%=
930			%th
931		%e
932			l
933		%;,
934	xm=\E[<%i
935		%p3%d;%p1%d;%p2%d;
936		%?
937			%p4
938			%tM
939		%e
940			m
941		%;,
942
943# By default, ncurses knows that xterm private mode 1000 enables/disables
944# the X11 xterm mouse protocol.  So XM is not needed here, except for clarity.
945xterm+x11mouse|X11 xterm mouse protocol,
946	kmous=\E[M,
947	XM=\E[?1000
948		%?
949			%p1%{1}%=
950			%th
951		%e
952			l
953		%;,
954	xm=\E[M
955		%?
956			%p4
957			%t%p3
958		%e%{3}
959		%;
960		%'\s'%+%c
961		%p2%'!'%+%c%p1%'!'%+%c,
962
963# This chunk is used for building the VT220/Sun/PC keyboard variants.
964xterm-basic|modern xterm terminal emulator - common,
965	OTbs,
966	am,
967	bce,
968	km,
969	mc5i,
970	mir,
971	msgr,
972	xenl,
973	AX,
974	XT,
975	colors#8,
976	cols#80,
977	it#8,
978	lines#24,
979	pairs#64,
980	acsc=``aaffggiijjkkllmmnnooppqqr
981	     rssttuuvvwwxxyyzz{{||}}~~,
982	bel=^G,
983	blink=\E[5m,
984	bold=\E[1m,
985	cbt=\E[Z,
986	civis=\E[?25l,
987	clear=\E[H\E[2J,
988	cnorm=\E[?12l\E[?25h,
989	cr=\r,
990	csr=\E[%i%p1%d;%p2%dr,
991	cub=\E[%p1%dD,
992	cub1=^H,
993	cud=\E[%p1%dB,
994	cud1=\n,
995	cuf=\E[%p1%dC,
996	cuf1=\E[C,
997	cup=\E[%i%p1%d;%p2%dH,
998	cuu=\E[%p1%dA,
999	cuu1=\E[A,
1000	cvvis=\E[?12;25h,
1001	dch=\E[%p1%dP,
1002	dch1=\E[P,
1003	dim=\E[2m,
1004	dl=\E[%p1%dM,
1005	dl1=\E[M,
1006	ech=\E[%p1%dX,
1007	ed=\E[J,
1008	el=\E[K,
1009	el1=\E[1K,
1010	flash=\E[?5h$<100/>\E[?5l,
1011	home=\E[H,
1012	hpa=\E[%i%p1%dG,
1013	ht=^I,
1014	hts=\EH,
1015	ich=\E[%p1%d@,
1016	il=\E[%p1%dL,
1017	il1=\E[L,
1018	ind=\n,
1019	invis=\E[8m,
1020	is2=\E[!p\E[?3;4l\E[4l\E>,
1021	kmous=\E[M,
1022	mc0=\E[i,
1023	mc4=\E[4i,
1024	mc5=\E[5i,
1025	meml=\El,
1026	memu=\Em,
1027	op=\E[39;49m,
1028	rc=\E8,
1029	rev=\E[7m,
1030	ri=\EM,
1031	rmacs=\E(B,
1032	rmam=\E[?7l,
1033	rmir=\E[4l,
1034	rmkx=\E[?1l\E>,
1035	rmm=\E[?1034l,
1036	rmso=\E[27m,
1037	rmul=\E[24m,
1038	rs1=\Ec,
1039	rs2=\E[!p\E[?3;4l\E[4l\E>,
1040	sc=\E7,
1041	setab=\E[4%p1%dm,
1042	setaf=\E[3%p1%dm,
1043	setb=\E[4
1044		%?
1045			%p1%{1}%=
1046			%t4
1047		%e
1048			%p1%{3}%=
1049			%t6
1050		%e
1051			%p1%{4}%=
1052			%t1
1053		%e
1054			%p1%{6}%=
1055			%t3
1056		%e
1057			%p1%d
1058		%;
1059		m,
1060	setf=\E[3
1061		%?
1062			%p1%{1}%=
1063			%t4
1064		%e
1065			%p1%{3}%=
1066			%t6
1067		%e
1068			%p1%{4}%=
1069			%t1
1070		%e
1071			%p1%{6}%=
1072			%t3
1073		%e
1074			%p1%d
1075		%;
1076		m,
1077	sgr=
1078		%?
1079			%p9
1080			%t\E(0
1081		%e
1082			\E(B
1083		%;
1084		\E[0
1085		%?
1086			%p6
1087			%t;1
1088		%;
1089		%?
1090			%p5
1091			%t;2
1092		%;
1093		%?
1094			%p2
1095			%t;4
1096		%;
1097		%?
1098			%p1%p3%|
1099			%t;7
1100		%;
1101		%?
1102			%p4
1103			%t;5
1104		%;
1105		%?
1106			%p7
1107			%t;8
1108		%;
1109		m,
1110	sgr0=\E(B\E[m,
1111	smacs=\E(0,
1112	smam=\E[?7h,
1113	smir=\E[4h,
1114	smkx=\E[?1h\E=,
1115	smm=\E[?1034h,
1116	smso=\E[7m,
1117	smul=\E[4m,
1118	tbc=\E[3g,
1119	vpa=\E[%i%p1%dd,
1120	E3=\E[3J,
1121	use=ansi+enq,
1122	use=xterm+alt+title,
1123	use=xterm+kbs,
1124
1125xterm+nofkeys|building block for xterm fkey-variants,
1126	npc,
1127	kcbt=\E[Z,
1128	kent=\EOM,
1129	nel=\EE,
1130	use=ecma+index,
1131	use=ansi+rep,
1132	use=ecma+strikeout,
1133	use=vt420+lrmm,
1134	use=xterm+sm+1006,
1135	use=xterm+tmux,
1136	use=ecma+italics,
1137	use=xterm+keypad,
1138	use=xterm-basic,
1139#
1140# The xterm-new description has all of the features, but is not completely
1141# compatible with vt220.  If you are using a Sun or PC keyboard, set the
1142# sunKeyboard resource to true:
1143#	+ maps the editing keypad
1144#	+ interprets control-function-key as a second array of keys, so a
1145#	  12-fkey keyboard can support vt220's 20-fkeys.
1146#	+ maps numeric keypad "+" to ",".
1147#	+ uses DEC-style control sequences for the application keypad.
1148#
1149# Some packagers modify xterm's resource definitions to provide extra function
1150# keys by using the shift-modifier in the translations resource.  However, that
1151# interferes with the DECUDK functionality.
1152#
1153xterm-vt220|xterm emulating vt220,
1154	npc,
1155	kcbt=\E[Z,
1156	kcub1=\EOD,
1157	kcud1=\EOB,
1158	kcuf1=\EOC,
1159	kcuu1=\EOA,
1160	kend=\E[4~,
1161	kent=\EOM,
1162	kf10=\E[21~,
1163	kf11=\E[23~,
1164	kf12=\E[24~,
1165	kf13=\E[25~,
1166	kf14=\E[26~,
1167	kf15=\E[28~,
1168	kf16=\E[29~,
1169	kf17=\E[31~,
1170	kf18=\E[32~,
1171	kf19=\E[33~,
1172	kf20=\E[34~,
1173	kf5=\E[15~,
1174	kf6=\E[17~,
1175	kf7=\E[18~,
1176	kf8=\E[19~,
1177	kf9=\E[20~,
1178	khome=\E[1~,
1179	kich1=\E[2~,
1180	kmous=\E[M,
1181	knp=\E[6~,
1182	kpp=\E[5~,
1183	nel=\EE,
1184	use=xterm+app,
1185	use=xterm+edit,
1186	use=vt220+keypad,
1187	use=ecma+italics,
1188	use=ecma+index,
1189	use=ansi+rep,
1190	use=ecma+strikeout,
1191	use=xterm+sm+1006,
1192	use=xterm+tmux,
1193	use=xterm+keypad,
1194	use=xterm-basic,
1195#
1196xterm-vt52|xterm emulating dec vt52,
1197	cols#80,
1198	it#8,
1199	lines#24,
1200	acsc=``aaffggjjkkllmmnnooppqqrrs
1201	     sttuuvvwwxxyyzz{{||}}~~,
1202	bel=^G,
1203	clear=\EH\EJ,
1204	cr=\r,
1205	cub1=\ED,
1206	cud1=\EB,
1207	cuf1=\EC,
1208	cup=\EY%p1%'\s'%+%c%p2%'\s'%+%c,
1209	cuu1=\EA,
1210	ed=\EJ,
1211	el=\EK,
1212	home=\EH,
1213	ht=^I,
1214	ind=\n,
1215	kcub1=\ED,
1216	kcud1=\EB,
1217	kcuf1=\EC,
1218	kcuu1=\EA,
1219	nel=\r\n,
1220	ri=\EI,
1221	rmacs=\EG,
1222	smacs=\EF,
1223	use=xterm+kbs,
1224	use=vt52+keypad,
1225
1226# from ncurses 6.2:
1227# DECScope of course had no "function keys", but this building block assigns
1228# the three blank keys at the top of the auxiliary (numeric) keypad, using
1229# the same analogy as vt100 (also lacking function-keys).
1230#
1231# These assignments use the same layout for 0-9 as vt100+keypad; the vt52
1232# keypad had its cursor-keys on the right-column as shown -TD
1233#   _______________________________________
1234#  |   PF1   |   PF2   |   PF3   | c-up    |
1235#  |   \EP   |   \EQ   |   \ER   |   \EA   |
1236#  |_kf1__k1_|_kf2__k2_|_kf3__k3_|kcuu1_k4_|
1237#  |    7         8         9      c-down  |
1238#  |   \E?w  |   \E?x  |   \E?y  |   \EB   |
1239#  |_kf9__k9_|_kf10_k;_|_kf0__k0_|kcud1____|
1240#  |    4    |    5    |    6    | c-right |
1241#  |   \E?t  |   \E?u  |   \E?v  |   \EC   |
1242#  |_kf5__k5_|_kf6__k6_|_kf7__k7_|kcuf1_k8_|
1243#  |    1    |    2    |    3    | c-left  |
1244#  |   \E?q  |   \E?r  |   \E?s  |   \ED   |
1245#  |_ka1__K1_|_kb2__K2_|_ka3__K3_|kcub1____|
1246#  |         0         |   .     |  enter  |
1247#  |        \E?p       |  \E?n   |  \E?M   |
1248#  |___kc1_______K4____|_kc3__K5_|_kent_@8_|
1249#
1250vt52+keypad|DECScope auxiliary keypad,
1251	ka1=\E?q,
1252	ka3=\E?s,
1253	kb2=\E?r,
1254	kc1=\E?p,
1255	kc3=\E?n,
1256	kf0=\E?y,
1257	kf1=\EP,
1258	kf2=\EQ,
1259	kf3=\ER,
1260	kf5=\E?t,
1261	kf6=\E?u,
1262	kf7=\E?v,
1263	kf8=\E?w,
1264	kf9=\E?x,
1265#
1266# Sun does not number the function keys this way in their sparse termcap; their
1267# terminal descriptions ignore the keypads.  kb(7M) states that there are codes
1268# reserved for 64 function keys, 16 each in left, right, top and bottom.  Each
1269# keyboard type has a different number of function keys in different
1270# arrangements.  Using xkeycaps for reference:
1271#
1272# Type 3:  left 10, top 9, right 15
1273# ------
1274# kf1-kf9 are XK_F1-XK_F9
1275# There is no kf10 on this keyboard type.
1276# kf11-kf20 are keysyms XK_L1 through XK_L10.
1277# kf31-kf45 are keysyms XK_R1 through XK_R15.
1278#
1279# However, X's keysymdef.h is hard-coded to make
1280#	XK_L1==XK_F11 and
1281#	XK_R1==XK_F21,
1282# by someone who was unfamiliar with terminal types other than Sun's.  So
1283# xterm uses the internal X keysymbols, but the terminfo entry uses the Sun
1284# numbering scheme.
1285#
1286# Type 4:  left 11, top 12, right 15
1287# ------
1288# The left-keypad contains an unnumbered Help-key.
1289# The right-keypad also contains NumLock, Ins, Del, Enter, + and - keys which
1290# do not appear to be part of the R-sequence.
1291#
1292# Type 5:  left 9, top 12, right (more than one keypad)
1293# ------
1294# These keyboards do not use the same naming convention, look like a hybrid of
1295# the type 4 and IBM keyboards.
1296#
1297# XTerm resources:
1298# ---------------
1299# Set the modifyFunctionKeys resource to negative (-1) to make it simple to
1300# enter the higher function-key values using shift- and control-modifiers.
1301#
1302xterm-sun|xterm with sun function keys,
1303	kb2=\E[218z,
1304	kcpy=\E[197z,
1305	kcub1=\EOD,
1306	kcud1=\EOB,
1307	kcuf1=\EOC,
1308	kcuu1=\EOA,
1309	kdch1=\E[3z,
1310	kend=\E[220z,
1311	kent=\EOM,
1312	kf1=\E[224z,
1313	kf10=\E[233z,
1314	kf11=\E[192z,
1315	kf12=\E[193z,
1316	kf13=\E[194z,
1317	kf14=\E[195z,
1318	kf15=\E[196z,
1319	kf17=\E[198z,
1320	kf18=\E[199z,
1321	kf19=\E[200z,
1322	kf2=\E[225z,
1323	kf20=\E[201z,
1324	kf3=\E[226z,
1325	kf31=\E[208z,
1326	kf32=\E[209z,
1327	kf33=\E[210z,
1328	kf34=\E[211z,
1329	kf35=\E[212z,
1330	kf36=\E[213z,
1331	kf38=\E[215z,
1332	kf4=\E[227z,
1333	kf40=\E[217z,
1334	kf42=\E[219z,
1335	kf44=\E[221z,
1336	kf45=\E[222z,
1337	kf46=\E[234z,
1338	kf47=\E[235z,
1339	kf5=\E[228z,
1340	kf6=\E[229z,
1341	kf7=\E[230z,
1342	kf8=\E[231z,
1343	kf9=\E[232z,
1344	kfnd=\E[200z,
1345	khlp=\E[196z,
1346	khome=\E[214z,
1347	kich1=\E[2z,
1348	knp=\E[222z,
1349	kpp=\E[216z,
1350	kund=\E[195z,
1351	use=xterm+nopcfkeys,
1352	use=xterm+nofkeys,
1353
1354# Note: normally xterm supports modified function-keys as described in
1355#	XTerm - "Other" modified keys
1356#	https://invisible-island.net/xterm/modified-keys.html
1357#
1358# However, xterm-hp, xterm-sco and xterm-sun assume no modifiers.  Here is
1359# a simple script which demonstrates these descriptions:
1360#	#!/bin/sh
1361#	export TERM=xterm-$1
1362#	xterm \
1363#		-kt $1 \
1364#		-fs 16 -fa mono \
1365#		-title $TERM \
1366#		-tn $TERM \
1367#		-xrm '*modifyCursorKeys:-1' \
1368#		-xrm '*modifyFunctionKeys:-1' \
1369#		-e tack
1370# e.g., "foo sun" if the script is named "foo" -TD
1371
1372xterm-hp|xterm with hpterm function keys,
1373	kclr=\EJ,
1374	kcub1=\ED,
1375	kcud1=\EB,
1376	kcuf1=\EC,
1377	kcuu1=\EA,
1378	kdch1=\EP,
1379	kend=\EF,
1380	kf1=\Ep,
1381	kf2=\Eq,
1382	kf3=\Er,
1383	kf4=\Es,
1384	kf5=\Et,
1385	kf6=\Eu,
1386	kf7=\Ev,
1387	kf8=\Ew,
1388	khome=\Eh,
1389	kich1=\EQ,
1390	knp=\ES,
1391	kpp=\ET,
1392	use=xterm+nofkeys,
1393	use=xterm+nopcfkeys,
1394#
1395# scoterm implements 48 function-keys using shift- and control-modifiers to
1396# multiple 12 function-keys.  X has a hard-coded limit of 35 function-keys,
1397# but xterm can represent larger values.
1398#
1399# XTerm resources:
1400# ---------------
1401# Set the modifyFunctionKeys resource to negative (-1) to make it simple to
1402# enter the higher function-key values using shift- and control-modifiers.
1403#
1404# Also, set ctrlFKeys resource to 12 (the default is 10) to make xterm see 48
1405# function-keys on a keyboard with 12 function-keys and 4 control/shift
1406# modifier combinations.
1407#
1408xterm-sco|xterm with SCO function keys,
1409	kbeg=\E[E,
1410	kdch1=^?,
1411	kf1=\E[M,
1412	kf10=\E[V,
1413	kf11=\E[W,
1414	kf12=\E[X,
1415	kf13=\E[Y,
1416	kf14=\E[Z,
1417	kf15=\E[a,
1418	kf16=\E[b,
1419	kf17=\E[c,
1420	kf18=\E[d,
1421	kf19=\E[e,
1422	kf2=\E[N,
1423	kf20=\E[f,
1424	kf21=\E[g,
1425	kf22=\E[h,
1426	kf23=\E[i,
1427	kf24=\E[j,
1428	kf25=\E[k,
1429	kf26=\E[l,
1430	kf27=\E[m,
1431	kf28=\E[n,
1432	kf29=\E[o,
1433	kf3=\E[O,
1434	kf30=\E[p,
1435	kf31=\E[q,
1436	kf32=\E[r,
1437	kf33=\E[s,
1438	kf34=\E[t,
1439	kf35=\E[u,
1440	kf36=\E[v,
1441	kf37=\E[w,
1442	kf38=\E[x,
1443	kf39=\E[y,
1444	kf4=\E[P,
1445	kf40=\E[z,
1446	kf41=\E[@,
1447	kf42=\E[[,
1448	kf43=\E[\\,
1449	kf44=\E[],
1450	kf45=\E[\^,
1451	kf46=\E[_,
1452	kf47=\E[`,
1453	kf48=\E[{,
1454	kf5=\E[Q,
1455	kf6=\E[R,
1456	kf7=\E[S,
1457	kf8=\E[T,
1458	kf9=\E[U,
1459	kich1=\E[L,
1460	kmous=\E[>M,
1461	knp=\E[G,
1462	kpp=\E[I,
1463	use=xterm+noapp,
1464	use=xterm+nofkeys,
1465#
1466# Other variants (these are all very old entries, from X11R5):
1467xterm-24|xterms|vs100|xterm terminal emulator (X Window System),
1468	lines#24,
1469	use=xterm-old,
1470xterm-65|xterm with tall window 65x80 (X Window System),
1471	lines#65,
1472	use=xterm-old,
1473xterm-bold|xterm with bold instead of underline (X Window System),
1474	sgr=
1475		%?
1476			%p9
1477			%t\016
1478		%e
1479			\017
1480		%;
1481		B\E[0
1482		%?
1483			%p6
1484			%t;1
1485		%;
1486		%?
1487			%p2
1488			%t;1
1489		%;
1490		%?
1491			%p1%p3%|
1492			%t;7
1493		%;
1494		m,
1495	smso=\E[7m,
1496	smul=\E[1m,
1497	use=xterm-old,
1498xterm-boldso|xterm with bold for standout (X Window System),
1499	rmso=\E[m,
1500	smso=\E[1m,
1501	use=xterm-old,
1502xterm-mono|monochrome xterm,
1503	use=xterm-old,
1504#
1505# VTxxx terminals are usually set up so that full-screen applications will use
1506# the cursor application mode strings.  This is good for full-screen
1507# applications, including legacy applications which may have hard-coded
1508# behavior, but bad for interactive shells (e.g., tcsh, bash) which use arrow
1509# keys to scroll through a history of command strings.
1510#
1511# To see the difference between normal/application modes, consider this example:
1512#	+ In normal (non-application) mode, the terminal transmits a down-arrow
1513#	  as \E[C, which happens to echo as a down-arrow.
1514#	+ In application mode the terminal transmits \EOC, which echoes as C.
1515#	  That is because the \EO is the SS3 control, which says to use the
1516#	  character from the G3 character set for the next cell.
1517#
1518# One example of hard-coded behavior would be for applications written to work
1519# with VT52 and VT100 terminals.  If the application's parser ignores 'O' and
1520# '?' characters after the escape, then the cursor and keypad strings for the
1521# two terminals are the same.  (Indeed, one of the first curses applications
1522# which I used did something like this to cover "ANSI" terminals -TD).
1523#
1524# To make this work (leaving the cursor keys in normal mode), we have to adjust
1525# the terminal initialization sequences:
1526#
1527#	smkx/rmkx set/reset the cursor and keypad application modes.  We retain
1528#		the latter (otherwise many applications fail).
1529#
1530#	smcup/rmcup set/restore cursor-addressing mode for full-screen
1531#		applications.  For xterm, this normally means the alternate
1532#		screen, which is not compatible with interactive shells.  Some
1533#		programs are "smart" and disable these.
1534#
1535xterm-noapp|xterm with cursor keys in normal mode,
1536	rmcup@,
1537	rmkx=\E>,
1538	smcup@,
1539	smkx=\E=,
1540	use=xterm+noapp,
1541	use=xterm,
1542
1543xterm+noapp|fragment with cursor keys in normal mode,
1544	kcub1=\E[D,
1545	kcud1=\E[B,
1546	kcuf1=\E[C,
1547	kcuu1=\E[A,
1548	use=xterm+noapp+pc,
1549
1550xterm+app|fragment with cursor keys in application mode,
1551	kcub1=\EOD,
1552	kcud1=\EOB,
1553	kcuf1=\EOC,
1554	kcuu1=\EOA,
1555	use=xterm+app+pc,
1556
1557xterm+noapp+pc|fragment for noapp pc-style home/end,
1558	kend=\E[F,
1559	khome=\E[H,
1560
1561xterm+app+pc|fragment for app pc-style home/end,
1562	kend=\EOF,
1563	khome=\EOH,
1564
1565xterm+edit|fragment for 6-key editing-keypad,
1566	kdch1=\E[3~,
1567	kich1=\E[2~,
1568	knp=\E[6~,
1569	kpp=\E[5~,
1570	use=xterm+pc+edit,
1571
1572xterm+decedit|fragment for vt220 6-key editing-keypad,
1573	kdch1=\E[3~,
1574	kich1=\E[2~,
1575	knp=\E[6~,
1576	kpp=\E[5~,
1577	use=xterm+vt+edit,
1578
1579xterm+pc+edit|fragment for pc-style editing keypad,
1580	kend=\E[4~,
1581	khome=\E[1~,
1582
1583xterm+vt+edit|fragment for vt220-style editing keypad,
1584	kfnd=\E[1~,
1585	kslt=\E[4~,
1586
1587xterm+noalt|xterm without altscreen,
1588	rmcup@,
1589	smcup@,
1590
1591xterm+alt1049|xterm 90 feature,
1592	rmcup=\E[?1049l,
1593	smcup=\E[?1049h,
1594
1595xterm+titlestack|xterm 251 feature,
1596	rmcup=\E[23;0;0t,
1597	smcup=\E[22;0;0t,
1598
1599xterm+alt+title|xterm 90 and 251 features combined,
1600	rmcup=\E[?1049l\E[23;0;0t,
1601	smcup=\E[?1049h\E[22;0;0t,
1602
1603# The xterm ctrlFKeys resource defaults to 10, so without the "pc-style"
1604# feature, e.g., setting the modifyCursorKeys and modifyFunctionKeys resources
1605# to -1 to disable them, one gets 42 function-keys on a 12-function-key
1606# keyboard, e.g.,
1607# kf1                   = \E[11~
1608# kf11 shift f1         = \E[23~
1609# kf21 control f1       = \E[42~
1610# kf31 shift control f1 = \E[52~
1611xterm+nopcfkeys|fragment without PC-style fkeys,
1612	kf1=\E[11~,
1613	kf10=\E[21~,
1614	kf11=\E[23~,
1615	kf12=\E[24~,
1616	kf13=\E[25~,
1617	kf14=\E[26~,
1618	kf15=\E[28~,
1619	kf16=\E[29~,
1620	kf17=\E[31~,
1621	kf18=\E[32~,
1622	kf19=\E[33~,
1623	kf2=\E[12~,
1624	kf20=\E[34~,
1625	kf21=\E[42~,
1626	kf22=\E[43~,
1627	kf23=\E[44~,
1628	kf24=\E[45~,
1629	kf25=\E[46~,
1630	kf26=\E[47~,
1631	kf27=\E[48~,
1632	kf28=\E[49~,
1633	kf29=\E[50~,
1634	kf3=\E[13~,
1635	kf30=\E[51~,
1636	kf31=\E[52~,
1637	kf32=\E[53~,
1638	kf33=\E[54~,
1639	kf34=\E[55~,
1640	kf35=\E[56~,
1641	kf36=\E[57~,
1642	kf37=\E[58~,
1643	kf38=\E[59~,
1644	kf39=\E[60~,
1645	kf4=\E[14~,
1646	kf40=\E[61~,
1647	kf41=\E[62~,
1648	kf42=\E[63~,
1649	kf5=\E[15~,
1650	kf6=\E[17~,
1651	kf7=\E[18~,
1652	kf8=\E[19~,
1653	kf9=\E[20~,
1654
1655# from development after ncurses 6.1:
1656# Xterm's emulation of the VT100 numeric keypad on a PC-keyboard runs into the
1657# problem that the keypad layout is different, and that the natural choice for
1658# PF1 is NumLock (which happens to be reserved for other use).  To work around
1659# that, PF1-PF4 are emulated via F1-F4, which leaves the "/", "*" and "+" not
1660# directly related to VT100.
1661#
1662# With the VT220 keypad block that uses the 1-9 keys as suggested in
1663# terminfo(5), the other keys can be handled with user-defined capabilities:
1664#
1665#   _______________________________________
1666#  | NumLock |    /    |    *    |    -    |
1667#  |         |   $Oo   |   $Oj   |   $OS   |
1668#  |_________|__kpDIV__|__kpMUL__|__kpSUB__|
1669#  |    7         8         9    |    +    |
1670#  |   $Ow   |   $Ox   |   $Oy   |   $Ok   |
1671#  |_ka1__K1_|_________|_ka3__K3_|  kpADD  |
1672#  |    4    |    5    |    6    |         |
1673#  |   $Ot   |   $Ou   |   $Ov   |         |
1674#  |_________|_kb2__K2_|_________|_________|
1675#  |    1    |    2    |    3    |         |
1676#  |   $Oq   |   $Or   |   $Os   |         |
1677#  |_kc1__K4_|_________|_kc3__K5_|  enter  |
1678#  |         0         |    .    |   $OM   |
1679#  |        $Op        |   $On   |         |
1680#  |_______kpZRO_______|__kpDOT__|_kent_@8_|
1681#
1682# ka2, kb1, kb3 and kc2 are extensions, as are the mixed-case names.
1683# There are no termcap equivalents for these extensions.
1684#
1685# kpCMA (comma) is used here for the VT100 keypad, which xterm emulates with
1686# shifted-keypad-plus, though normally that invokes a font-size change.
1687#
1688# Old versions of xterm, e.g., xterm-xfree86, documented \EOE as kb2, which
1689# does not fit into this layout.  The extension kp5 fits, but is not visible
1690# to termcap applications.  As an alternative, kbeg (which does have a termcap
1691# equivalent) is provided.
1692
1693xterm+keypad|xterm emulating VT100/VT220 numeric keypad,
1694	kbeg=\EOE, 
1695	kp5=\EOE,
1696	kpADD=\EOk,
1697	kpCMA=\EOl,
1698	kpDIV=\EOo,
1699	kpDOT=\EOn,
1700	kpMUL=\EOj,
1701	kpSUB=\EOm,
1702	kpZRO=\EOp,
1703	use=vt220+keypad,
1704
1705# from development after ncurses 5.2:
1706# A better adaptation to modern keyboards such as the PC's, which have a dozen
1707# function keys and the keypad 2,4,6,8 keys are labeled with arrows keys, is to
1708# use the 5-key arrangement to model the arrow keys as suggested in the
1709# terminfo guidelines:
1710#   _______________________________________
1711#  |   PF1   |   PF2   |   PF3   |   PF4   |
1712#  |   $OP   |   $OQ   |   $OR   |   $OS   |
1713#  |_kf1__k1_|_kf2__k2_|_kf3__k3_|_kf4__k4_|
1714#  |    7         8         9         -    |
1715#  |   $Ow   |   $Ox   |   $Oy   |   $Om   |
1716#  |_ka1__K1_|_________|_ka3__K3_|_________|
1717#  |    4    |    5    |    6    |    ,    |
1718#  |   $Ot   |   $Ou   |   $Ov   |   $Ol   |
1719#  |_________|_kb2__K2_|_________|_________|
1720#  |    1    |    2    |    3    |         |
1721#  |   $Oq   |   $Or   |   $Os   |  enter  |
1722#  |_kc1__K4_|_________|_kc3__K5_|  $OM    |
1723#  |         0         |   .     |         |
1724#  |        $Op        |  $On    |         |
1725#  |___________________|_________|_kent_@8_|
1726vt220+keypad|dec vt220 numeric keypad,
1727	ka1=\EOw,
1728	ka3=\EOy,
1729	kb2=\EOu,
1730	kc1=\EOq,
1731	kc3=\EOs,
1732	kent=\EOM,
1733	kf1=\EOP,
1734	kf2=\EOQ,
1735	kf3=\EOR,
1736	kf4=\EOS,
1737	ka2=\EOx,
1738	kb1=\EOt,
1739	kb3=\EOv,
1740	kc2=\EOr,
1741#
1742# This should work for the commonly used "color xterm" variations (XFree86
1743# xterm, color_xterm, nxterm, rxvt).  Note that it does not set 'bce', so for
1744# XFree86 and and rxvt, some applications that use colors will be less
1745# efficient, and in a few special cases (with "smart" optimization) the wrong
1746# color will be painted in spots.
1747xterm-color|generic "ANSI" color xterm (X Window System),
1748	colors#8,
1749	ncv@,
1750	pairs#64,
1751	op=\E[m,
1752	setab=\E[4%p1%dm,
1753	setaf=\E[3%p1%dm,
1754	use=xterm-r6,
1755#
1756# vi may work better with this entry, because vi
1757# doesn't use insert mode much
1758xterm-ic|xterm-vi|xterm with insert character instead of insert mode,
1759	mir@,
1760	ich=\E[%p1%d@,
1761	ich1=\E[@,
1762	rmir@,
1763	smir@,
1764	use=xterm,
1765#
1766# This is used only for testing (it's not relevant to DEC VTxxx terminals, but
1767# to ncurses).
1768xterm-xmc|xterm with magic-cookie glitch,
1769	xmc#1,
1770	use=xterm-new,
1771#
1772# This one was originally for testing ncurses.  While the ISO 6429 defines the
1773# REP control, none of the DEC VTxxx terminals (VT52 through VT525) support it.
1774#
1775# The feature's inclusion in xterm was prompted by changes in ncurses to
1776# support testing repeat_char by Alexander Lukyanov, since no readily-available
1777# terminal supported this:
1778#
1779# + Alexander's patch was integrated in ncurses 1996/09/28
1780# + xterm patch #32 1996/11/21 was released in XFree86 3.2A 1997/01/26
1781#
1782# In July 2017, the feature was added to xterm-new in ncurses, making this
1783# entry obsolete (but it is kept for reference).
1784xterm-rep|xterm with repeat-character control,
1785	rep=%p1%c\E[%p2%{1}%-%db,
1786	use=xterm-new,
1787#
1788# This is mainly for testing xterm; the real VT220 will not let you switch
1789# character sets without first altering the keyboard language in the setup
1790# screen.  Some emulators allow this anyway.  (Note that these strings are
1791# normally used only for printers).  The parameter to csnm and scs is the same
1792# in both cases:  the keyboard language parameter returned by CSI ? 2 6 n.
1793xterm-nrc|xterm with VT220 national replacement character sets,
1794	csnm=
1795		%?
1796			%p1%{1}%=
1797			%tNorth\sAmerican
1798		%e
1799			%p1%{2}%=
1800			%tBritish
1801		%e
1802			%p1%{3}%=
1803			%tFlemish
1804		%e
1805			%p1%{4}%=
1806			%tFrench\sCanadian
1807		%e
1808			%p1%{5}%=
1809			%tDanish
1810		%e
1811			%p1%{6}%=
1812			%tFinnish
1813		%e
1814			%p1%{7}%=
1815			%tGerman
1816		%e
1817			%p1%{8}%=
1818			%tDutch
1819		%e
1820			%p1%{9}%=
1821			%tItalian
1822		%e
1823			%p1%{10}%=
1824			%tSwiss\s(French)
1825		%e
1826			%p1%{11}%=
1827			%tSwiss\s(German)
1828		%e
1829			%p1%{12}%=
1830			%tSwedish
1831		%e
1832			%p1%{13}%=
1833			%tNorwegian
1834		%e
1835			%p1%{14}%=
1836			%tFrench/Belgian
1837		%e
1838			%p1%{15}%=
1839			%tSpanish
1840		%;,
1841	scs=
1842		%?
1843			%p1%{1}%=
1844			%t\E(B
1845		%e
1846			%p1%{2}%=
1847			%t\E(A
1848		%e
1849			%p1%{3}%=
1850			%t\E(R
1851		%e
1852			%p1%{4}%=
1853			%t\E(9
1854		%e
1855			%p1%{5}%=
1856			%t\E(E
1857		%e
1858			%p1%{6}%=
1859			%t\E(5
1860		%e
1861			%p1%{7}%=
1862			%t\E(K
1863		%e
1864			%p1%{8}%=
1865			%t\E(4
1866		%e
1867			%p1%{9}%=
1868			%t\E(Y
1869		%e
1870			%p1%{10}%=
1871			%t\E(=
1872		%e
1873			%p1%{11}%=
1874			%t\E(=
1875		%e
1876			%p1%{12}%=
1877			%t\E(7
1878		%e
1879			%p1%{13}%=
1880			%t\E(E
1881		%e
1882			%p1%{14}%=
1883			%t\E(R
1884		%e
1885			%p1%{15}%=
1886			%t\E(Z
1887		%;,
1888	use=xterm-new,
1889#
1890# Foreground 0-15 maps (with toggles) into 30-37 & 90-97
1891# Background 0-15 maps (with toggles) into 40-47 & 100-107
1892#
1893# Originally I suppressed setaf/setab, since ANSI specifies only 8 colors, but
1894# Stephen Marley persuaded me to allow the "ANSI" color controls to extend to
1895# 16 colors.  (Note that ncurses 4.2 uses setf/setb from this description;
1896# however 5.0 selects either according to their availability).  - T.Dickey
1897#
1898# SVr4 curses does not use more than 8 colors anyway, so using 16 colors is
1899# either for terminfo-level applications or via ncurses.
1900xterm-16color|xterm with 16 colors,
1901	colors#16,
1902	pairs#0x100,
1903	setab=\E[
1904		%?
1905			%p1%{8}%<
1906			%t%p1%{40}%+
1907		%e
1908			%p1%{92}%+
1909		%;
1910		%dm,
1911	setaf=\E[
1912		%?
1913			%p1%{8}%<
1914			%t%p1%{30}%+
1915		%e
1916			%p1%{82}%+
1917		%;
1918		%dm,
1919	setb=
1920		%p1%{8}%/%{6}%*%{4}%+\E[%d%p1%{8}%m%Pa
1921		%?%ga%{1}%=
1922			%t4
1923		%e%ga%{3}%=
1924			%t6
1925		%e%ga%{4}%=
1926			%t1
1927		%e%ga%{6}%=
1928			%t3
1929		%e%ga%d
1930		%;
1931		m,
1932	setf=
1933		%p1%{8}%/%{6}%*%{3}%+\E[%d%p1%{8}%m%Pa
1934		%?%ga%{1}%=
1935			%t4
1936		%e%ga%{3}%=
1937			%t6
1938		%e%ga%{4}%=
1939			%t1
1940		%e%ga%{6}%=
1941			%t3
1942		%e%ga%d
1943		%;
1944		m,
1945	use=xterm+256color2,
1946	use=xterm+osc104,
1947	use=xterm-new,
1948
1949# xterm OSC 104 resets the color palette.  Using it as part of xterm+256color
1950# has the drawback that some of the xterm-alikes which use that building block
1951# require a different approach to rs1 -TD
1952xterm+osc104|reset color palette,
1953	oc=\E]104\007,
1954	rs1=\Ec\E]104\007,
1955
1956# "indexed color" is mentioned without definition in ISO 8613-6 (ITU T.416).
1957#
1958# This implementation uses a 256-element color map where the first 16 entries
1959# are shared with the aixterm-compatible colors (and in turn the first 8 are
1960# shared with the ANSI colors).  The three levels (256, 16, 8) account for the
1961# use of a conditional expression in setaf/setab which reduces the number of
1962# characters sent to the screen for typical applications.
1963#
1964# 256 colors should give 65536 pairs, but SVr4 (legacy) terminfo stores numbers
1965# in a signed short.  Most people will not notice problems with only 32767
1966# pairs.  With ncurses 6.1, numbers are stored in a signed integer (at least
1967# 32-bits), and the inconsistency regarding pairs is eliminated.
1968xterm+256color|original xterm 256-color feature,
1969	ccc,
1970	colors#0x100,
1971	pairs#0x10000,
1972	initc=\E]4;
1973		%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\,
1974	oc=\E]104\007,
1975	setab=\E[
1976		%?
1977			%p1%{8}%<
1978			%t4%p1%d
1979		%e
1980			%p1%{16}%<
1981			%t10%p1%{8}%-%d
1982		%e48;5;
1983			%p1%d
1984		%;
1985		m,
1986	setaf=\E[
1987		%?
1988			%p1%{8}%<
1989			%t3%p1%d
1990		%e
1991			%p1%{16}%<
1992			%t9%p1%{8}%-%d
1993		%e38;5;
1994			%p1%d
1995		%;
1996		m,
1997	setb@,
1998	setf@,
1999xterm+256color2|xterm 256-color feature,
2000	setab=\E[
2001		%?
2002			%p1%{8}%<
2003			%t4%p1%d
2004		%e
2005			%p1%{16}%<
2006			%t10%p1%{8}%-%d
2007		%e48\:5\:
2008			%p1%d
2009		%;
2010		m,
2011	setaf=\E[
2012		%?
2013			%p1%{8}%<
2014			%t3%p1%d
2015		%e
2016			%p1%{16}%<
2017			%t9%p1%{8}%-%d
2018		%e38\:5\:
2019			%p1%d
2020		%;
2021		m,
2022	setb@,
2023	setf@,
2024	use=xterm+256color,
2025xterm-256color|xterm with 256 colors,
2026	use=xterm+256color2,
2027	use=xterm+osc104,
2028	use=xterm-new,
2029xterm-88color|xterm with 88 colors,
2030	colors#88,
2031	pairs#7744,
2032	use=xterm-256color,
2033
2034# "direct color" is mentioned without definition in ISO 8613-6 (ITU T.416).
2035#
2036# This is a particular implementation which assume 8-bit values for red, green,
2037# and blue.  Other encodings are possible; none are addressed by that standard.
2038#
2039# The "RGB" flag is an ncurses 6.1 extension which tells the library how to
2040# quickly compute the color-content for a given color value.
2041#
2042# Like xterm+256color, this uses a conditional expression.  But it does that
2043# for a different reason: to make it readily usable for applications which
2044# print text but also use RGB colors, it uses a color map for the usual ANSI
2045# colors (0-7) and RGB colors for the remaining range of the color value.
2046xterm+direct|xterm with direct-color indexing,
2047	RGB,
2048	colors#0x1000000,
2049	pairs#0x10000,
2050	CO#8,
2051	initc@,
2052	op=\E[39;49m,
2053	setab=\E[
2054		%?
2055			%p1%{8}%<
2056			%t4%p1%d
2057		%e48\:2\:\:
2058			%p1%{65536}%/%d\:%p1%{256}%/%{255}%&%d\:%p1%{255}%&%d
2059		%;
2060		m,
2061	setaf=\E[
2062		%?
2063			%p1%{8}%<
2064			%t3%p1%d
2065		%e38\:2\:\:
2066			%p1%{65536}%/%d\:%p1%{256}%/%{255}%&%d\:%p1%{255}%&%d
2067		%;
2068		m,
2069	setb@,
2070	setf@,
2071xterm-direct|xterm with direct-color indexing,
2072	use=xterm+direct,
2073	use=xterm,
2074#
2075# This is an 8-bit version of xterm, which emulates DEC vt220 with ANSI color.
2076# To use it, your decTerminalID resource must be set to 200 or above, and the
2077# sunKeyboard resource set to true.
2078#
2079#	HTS	\E H	\210
2080#	RI	\E M	\215
2081#	SS3	\E O	\217
2082#	CSI	\E [	\233
2083#
2084xterm-8bit|xterm terminal emulator with 8-bit controls (X Window System),
2085	OTbs,
2086	am,
2087	bce,
2088	km,
2089	mc5i,
2090	mir,
2091	msgr,
2092	npc,
2093	xenl,
2094	AX,
2095	colors#8,
2096	cols#80,
2097	it#8,
2098	lines#24,
2099	pairs#64,
2100	acsc=``aaffggiijjkkllmmnnooppqqr
2101	     rssttuuvvwwxxyyzz{{||}}~~,
2102	bel=^G,
2103	blink=\2335m,
2104	bold=\2331m,
2105	cbt=\233Z,
2106	civis=\233?25l,
2107	clear=\233H\2332J,
2108	cnorm=\233?25l\233?25h,
2109	cr=\r,
2110	csr=\233%i%p1%d;%p2%dr,
2111	cub=\233%p1%dD,
2112	cub1=^H,
2113	cud=\233%p1%dB,
2114	cud1=\n,
2115	cuf=\233%p1%dC,
2116	cuf1=\233C,
2117	cup=\233%i%p1%d;%p2%dH,
2118	cuu=\233%p1%dA,
2119	cuu1=\233A,
2120	cvvis=\233?12;25h,
2121	dch=\233%p1%dP,
2122	dch1=\233P,
2123	dl=\233%p1%dM,
2124	dl1=\233M,
2125	ech=\233%p1%dX,
2126	ed=\233J,
2127	el=\233K,
2128	el1=\2331K,
2129	flash=\233?5h$<100/>\233?5l,
2130	home=\233H,
2131	hpa=\233%i%p1%dG,
2132	ht=^I,
2133	hts=\210,
2134	ich=\233%p1%d@,
2135	il=\233%p1%dL,
2136	il1=\233L,
2137	ind=\n,
2138	invis=\2338m,
2139	is2=\E[62"p\E\sG\233m\233?7h\E>
2140	    \E7\233?1;3;4;6l\2334l\233r
2141	    \E8,
2142	ka1=\217w,
2143	ka3=\217u,
2144	kb2=\217y,
2145	kbeg=\217E,
2146	kc1=\217q,
2147	kc3=\217s,
2148	kcbt=\233Z,
2149	kcub1=\217D,
2150	kcud1=\217B,
2151	kcuf1=\217C,
2152	kcuu1=\217A,
2153	kdch1=\2333~,
2154	kend=\2334~,
2155	kent=\217M,
2156	kf1=\23311~,
2157	kf10=\23321~,
2158	kf11=\23323~,
2159	kf12=\23324~,
2160	kf13=\23325~,
2161	kf14=\23326~,
2162	kf15=\23328~,
2163	kf16=\23329~,
2164	kf17=\23331~,
2165	kf18=\23332~,
2166	kf19=\23333~,
2167	kf2=\23312~,
2168	kf20=\23334~,
2169	kf3=\23313~,
2170	kf4=\23314~,
2171	kf5=\23315~,
2172	kf6=\23317~,
2173	kf7=\23318~,
2174	kf8=\23319~,
2175	kf9=\23320~,
2176	khome=\2331~,
2177	kich1=\2332~,
2178	kmous=\233M,
2179	knp=\2336~,
2180	kpp=\2335~,
2181	mc0=\233i,
2182	mc4=\2334i,
2183	mc5=\2335i,
2184	meml=\El,
2185	memu=\Em,
2186	op=\23339;49m,
2187	rc=\E8,
2188	rev=\2337m,
2189	ri=\215,
2190	rmacs=\E(B,
2191	rmam=\233?7l,
2192	rmcup=\233?1049l,
2193	rmir=\2334l,
2194	rmkx=\233?1l\E>,
2195	rmso=\23327m,
2196	rmul=\23324m,
2197	rs1=\Ec,
2198	rs2=\E[62"p\E\sG\233m\233?7h\E>
2199	    \E7\233?1;3;4;6l\2334l\233r
2200	    \E8,
2201	sc=\E7,
2202	setab=\2334%p1%dm,
2203	setaf=\2333%p1%dm,
2204	setb=\2334
2205		%?
2206			%p1%{1}%=
2207			%t4
2208		%e
2209			%p1%{3}%=
2210			%t6
2211		%e
2212			%p1%{4}%=
2213			%t1
2214		%e
2215			%p1%{6}%=
2216			%t3
2217		%e
2218			%p1%d
2219		%;
2220		m,
2221	setf=\2333
2222		%?
2223			%p1%{1}%=
2224			%t4
2225		%e
2226			%p1%{3}%=
2227			%t6
2228		%e
2229			%p1%{4}%=
2230			%t1
2231		%e
2232			%p1%{6}%=
2233			%t3
2234		%e
2235			%p1%d
2236		%;
2237		m,
2238	sgr=\2330
2239		%?
2240			%p6
2241			%t;1
2242		%;
2243		%?
2244			%p2
2245			%t;4
2246		%;
2247		%?
2248			%p1%p3%|
2249			%t;7
2250		%;
2251		%?
2252			%p4
2253			%t;5
2254		%;
2255		%?
2256			%p7
2257			%t;8
2258		%;
2259		m
2260		%?
2261			%p9
2262			%t\E(0
2263		%e
2264			\E(B
2265		%;,
2266	sgr0=\2330m\E(B,
2267	smacs=\E(0,
2268	smam=\233?7h,
2269	smcup=\233?1049h,
2270	smir=\2334h,
2271	smkx=\233?1h\E=,
2272	smso=\2337m,
2273	smul=\2334m,
2274	tbc=\2333g,
2275	u6=\233[%i%d;%dR,
2276	u7=\E[6n,
2277	u8=\233[?%[;0123456789]c,
2278	u9=\E[c,
2279	vpa=\233%i%p1%dd,
2280	use=xterm+kbs,
2281#
2282xterm-xf86-v44|xterm terminal emulator (XFree86 4.4 Window System),
2283	OTbs,
2284	am,
2285	bce,
2286	km,
2287	mc5i,
2288	mir,
2289	msgr,
2290	npc,
2291	xenl,
2292	AX,
2293	XT,
2294	colors#8,
2295	cols#80,
2296	it#8,
2297	lines#24,
2298	pairs#64,
2299	acsc=``aaffggiijjkkllmmnnooppqqr
2300	     rssttuuvvwwxxyyzz{{||}}~~,
2301	bel=^G,
2302	blink=\E[5m,
2303	bold=\E[1m,
2304	cbt=\E[Z,
2305	civis=\E[?25l,
2306	clear=\E[H\E[2J,
2307	cnorm=\E[?12l\E[?25h,
2308	cr=\r,
2309	csr=\E[%i%p1%d;%p2%dr,
2310	cub=\E[%p1%dD,
2311	cub1=^H,
2312	cud=\E[%p1%dB,
2313	cud1=\n,
2314	cuf=\E[%p1%dC,
2315	cuf1=\E[C,
2316	cup=\E[%i%p1%d;%p2%dH,
2317	cuu=\E[%p1%dA,
2318	cuu1=\E[A,
2319	cvvis=\E[?12;25h,
2320	dch=\E[%p1%dP,
2321	dch1=\E[P,
2322	dl=\E[%p1%dM,
2323	dl1=\E[M,
2324	ech=\E[%p1%dX,
2325	ed=\E[J,
2326	el=\E[K,
2327	el1=\E[1K,
2328	enacs=\E(B\E)0,
2329	flash=\E[?5h$<100/>\E[?5l,
2330	home=\E[H,
2331	hpa=\E[%i%p1%dG,
2332	ht=^I,
2333	hts=\EH,
2334	ich=\E[%p1%d@,
2335	il=\E[%p1%dL,
2336	il1=\E[L,
2337	ind=\n,
2338	indn=\E[%p1%dS,
2339	invis=\E[8m,
2340	is2=\E[!p\E[?3;4l\E[4l\E>,
2341	kDC=\E[3;2~,
2342	kEND=\E[1;2F,
2343	kHOM=\E[1;2H,
2344	kIC=\E[2;2~,
2345	kLFT=\E[1;2D,
2346	kNXT=\E[6;2~,
2347	kPRV=\E[5;2~,
2348	kRIT=\E[1;2C,
2349	kb2=\EOE,
2350	kcbt=\E[Z,
2351	kcub1=\EOD,
2352	kcud1=\EOB,
2353	kcuf1=\EOC,
2354	kcuu1=\EOA,
2355	kdch1=\E[3~,
2356	kend=\EOF,
2357	kent=\EOM,
2358	kf1=\EOP,
2359	kf10=\E[21~,
2360	kf11=\E[23~,
2361	kf12=\E[24~,
2362	kf13=\EO2P,
2363	kf14=\EO2Q,
2364	kf15=\EO2R,
2365	kf16=\EO2S,
2366	kf17=\E[15;2~,
2367	kf18=\E[17;2~,
2368	kf19=\E[18;2~,
2369	kf2=\EOQ,
2370	kf20=\E[19;2~,
2371	kf21=\E[20;2~,
2372	kf22=\E[21;2~,
2373	kf23=\E[23;2~,
2374	kf24=\E[24;2~,
2375	kf25=\EO5P,
2376	kf26=\EO5Q,
2377	kf27=\EO5R,
2378	kf28=\EO5S,
2379	kf29=\E[15;5~,
2380	kf3=\EOR,
2381	kf30=\E[17;5~,
2382	kf31=\E[18;5~,
2383	kf32=\E[19;5~,
2384	kf33=\E[20;5~,
2385	kf34=\E[21;5~,
2386	kf35=\E[23;5~,
2387	kf36=\E[24;5~,
2388	kf37=\EO6P,
2389	kf38=\EO6Q,
2390	kf39=\EO6R,
2391	kf4=\EOS,
2392	kf40=\EO6S,
2393	kf41=\E[15;6~,
2394	kf42=\E[17;6~,
2395	kf43=\E[18;6~,
2396	kf44=\E[19;6~,
2397	kf45=\E[20;6~,
2398	kf46=\E[21;6~,
2399	kf47=\E[23;6~,
2400	kf48=\E[24;6~,
2401	kf5=\E[15~,
2402	kf6=\E[17~,
2403	kf7=\E[18~,
2404	kf8=\E[19~,
2405	kf9=\E[20~,
2406	khome=\EOH,
2407	kich1=\E[2~,
2408	kmous=\E[M,
2409	knp=\E[6~,
2410	kpp=\E[5~,
2411	mc0=\E[i,
2412	mc4=\E[4i,
2413	mc5=\E[5i,
2414	meml=\El,
2415	memu=\Em,
2416	op=\E[39;49m,
2417	rc=\E8,
2418	rev=\E[7m,
2419	ri=\EM,
2420	rin=\E[%p1%dT,
2421	rmacs=^O,
2422	rmam=\E[?7l,
2423	rmir=\E[4l,
2424	rmkx=\E[?1l\E>,
2425	rmso=\E[27m,
2426	rmul=\E[24m,
2427	rs1=\Ec,
2428	rs2=\E[!p\E[?3;4l\E[4l\E>,
2429	sc=\E7,
2430	setab=\E[4%p1%dm,
2431	setaf=\E[3%p1%dm,
2432	setb=\E[4
2433		%?
2434			%p1%{1}%=
2435			%t4
2436		%e
2437			%p1%{3}%=
2438			%t6
2439		%e
2440			%p1%{4}%=
2441			%t1
2442		%e
2443			%p1%{6}%=
2444			%t3
2445		%e
2446			%p1%d
2447		%;
2448		m,
2449	setf=\E[3
2450		%?
2451			%p1%{1}%=
2452			%t4
2453		%e
2454			%p1%{3}%=
2455			%t6
2456		%e
2457			%p1%{4}%=
2458			%t1
2459		%e
2460			%p1%{6}%=
2461			%t3
2462		%e
2463			%p1%d
2464		%;
2465		m,
2466	sgr=\E[0
2467		%?
2468			%p6
2469			%t;1
2470		%;
2471		%?
2472			%p2
2473			%t;4
2474		%;
2475		%?
2476			%p1%p3%|
2477			%t;7
2478		%;
2479		%?
2480			%p4
2481			%t;5
2482		%;
2483		%?
2484			%p7
2485			%t;8
2486		%;
2487		m
2488		%?
2489			%p9
2490			%t\016
2491		%e
2492			\017
2493		%;,
2494	sgr0=\E[m\017,
2495	smacs=^N,
2496	smam=\E[?7h,
2497	smir=\E[4h,
2498	smkx=\E[?1h\E=,
2499	smso=\E[7m,
2500	smul=\E[4m,
2501	tbc=\E[3g,
2502	u6=\E[%i%d;%dR,
2503	u7=\E[6n,
2504	u8=\E[?1;2c,
2505	u9=\E[c,
2506	vpa=\E[%i%p1%dd,
2507	ka2=\EOx,
2508	kb1=\EOt,
2509	kb3=\EOv,
2510	kc2=\EOr,
2511	use=xterm+alt1049,
2512	use=xterm+kbs,
2513xterm-xfree86|xterm terminal emulator (XFree86 4.4 Window System),
2514	use=xterm-xf86-v44,
2515#
2516# Compatible with the R6 xterm, with the following changes:
2517#	+ added acsc (perhaps some versions of tic assume the standard vt100
2518#	  alternate character set)
2519#	+ added u6, u7, u8, u9 strings for Daniel Weaver's tack program.
2520#	+ added kmous string for ncurses.
2521#	+ added khome/kend strings (which conflict with kfnd/kslt, see note).
2522xterm-r6|xterm X11R6 version,
2523	OTbs,
2524	am,
2525	km,
2526	mir,
2527	msgr,
2528	xenl,
2529	cols#80,
2530	it#8,
2531	lines#24,
2532	acsc=``aaffggiijjkkllmmnnooppqqr
2533	     rssttuuvvwwxxyyzz{{||}}~~,
2534	bel=^G,
2535	bold=\E[1m,
2536	clear=\E[H\E[2J,
2537	cr=\r,
2538	csr=\E[%i%p1%d;%p2%dr,
2539	cub=\E[%p1%dD,
2540	cub1=^H,
2541	cud=\E[%p1%dB,
2542	cud1=\n,
2543	cuf=\E[%p1%dC,
2544	cuf1=\E[C,
2545	cup=\E[%i%p1%d;%p2%dH,
2546	cuu=\E[%p1%dA,
2547	cuu1=\E[A,
2548	dch=\E[%p1%dP,
2549	dch1=\E[P,
2550	dl=\E[%p1%dM,
2551	dl1=\E[M,
2552	ed=\E[J,
2553	el=\E[K,
2554	enacs=\E)0,
2555	home=\E[H,
2556	ht=^I,
2557	hts=\EH,
2558	il=\E[%p1%dL,
2559	il1=\E[L,
2560	ind=\n,
2561	is2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[
2562	    ?1;3;4;6l\E8,
2563	kcub1=\EOD,
2564	kcud1=\EOB,
2565	kcuf1=\EOC,
2566	kcuu1=\EOA,
2567	kdch1=\E[3~,
2568	kf1=\E[11~,
2569	kf10=\E[21~,
2570	kf11=\E[23~,
2571	kf12=\E[24~,
2572	kf13=\E[25~,
2573	kf14=\E[26~,
2574	kf15=\E[28~,
2575	kf16=\E[29~,
2576	kf17=\E[31~,
2577	kf18=\E[32~,
2578	kf19=\E[33~,
2579	kf2=\E[12~,
2580	kf20=\E[34~,
2581	kf3=\E[13~,
2582	kf4=\E[14~,
2583	kf5=\E[15~,
2584	kf6=\E[17~,
2585	kf7=\E[18~,
2586	kf8=\E[19~,
2587	kf9=\E[20~,
2588	kmous=\E[M,
2589	meml=\El,
2590	memu=\Em,
2591	rc=\E8,
2592	rev=\E[7m,
2593	ri=\EM,
2594	rmacs=^O,
2595	rmcup=\E[2J\E[?47l\E8,
2596	rmir=\E[4l,
2597	rmkx=\E[?1l\E>,
2598	rmso=\E[m,
2599	rmul=\E[m,
2600	rs2=\E[m\E[?7h\E[4l\E>\E7\E[r\E[
2601	    ?1;3;4;6l\E8,
2602	sc=\E7,
2603	sgr0=\E[m,
2604	smacs=^N,
2605	smcup=\E7\E[?47h,
2606	smir=\E[4h,
2607	smkx=\E[?1h\E=,
2608	smso=\E[7m,
2609	smul=\E[4m,
2610	tbc=\E[3g,
2611	u6=\E[%i%d;%dR,
2612	u7=\E[6n,
2613	u8=\E[?1;2c,
2614	u9=\E[c,
2615	use=xterm+kbs,
2616	use=xterm+decedit,
2617xterm-old|antique xterm version,
2618	use=xterm-r6,
2619#
2620# Compatible with the R5 xterm, with the following changes:
2621#	+ changed 'blink=@', to 'blink@' (the former meant that "@" would start
2622#	  a blink, the latter that it is not supported).
2623#	+ changed kf1 through kf4 to correspond with actual usage.  Though X
2624#	  supports keypad symbols for PF1 to PF4, and xterm interprets these
2625#	  correctly, the F1 to F4 codes are commonly (but incorrectly) used.
2626#	+ moved reset string from rs1 to rs2, to correlate better with termcap.
2627#	+ make khome consistent with other entries.
2628#	+ use rmul/smul, rmir/smir from termcap, but not rmcup/smcup because
2629#	  not everyone wants the alternate screen.
2630#	+ added u6, u7, u8, u9 strings for Daniel Weaver's tack program.
2631#	+ added kmous string for ncurses.
2632xterm-r5|xterm R5 version,
2633	OTbs,
2634	am,
2635	km,
2636	msgr,
2637	xenl,
2638	cols#80,
2639	it#8,
2640	lines#24,
2641	bel=^G,
2642	bold=\E[1m,
2643	clear=\E[H\E[2J,
2644	cr=\r,
2645	csr=\E[%i%p1%d;%p2%dr,
2646	cub=\E[%p1%dD,
2647	cub1=^H,
2648	cud=\E[%p1%dB,
2649	cud1=\n,
2650	cuf=\E[%p1%dC,
2651	cuf1=\E[C,
2652	cup=\E[%i%p1%d;%p2%dH,
2653	cuu=\E[%p1%dA,
2654	cuu1=\E[A,
2655	dch=\E[%p1%dP,
2656	dch1=\E[P,
2657	dl=\E[%p1%dM,
2658	dl1=\E[M,
2659	ed=\E[J,
2660	el=\E[K,
2661	home=\E[H,
2662	ht=^I,
2663	hts=\EH,
2664	ich=\E[%p1%d@,
2665	ich1=\E[@,
2666	il=\E[%p1%dL,
2667	il1=\E[L,
2668	ind=\n,
2669	kcub1=\EOD,
2670	kcud1=\EOB,
2671	kcuf1=\EOC,
2672	kcuu1=\EOA,
2673	kdch1=\E[3~,
2674	kdl1=\E[31~,
2675	kel=\E[8~,
2676	kend=\E[4~,
2677	kf0=\EOq,
2678	kf1=\E[11~,
2679	kf10=\E[21~,
2680	kf11=\E[23~,
2681	kf12=\E[24~,
2682	kf2=\E[12~,
2683	kf3=\E[13~,
2684	kf4=\E[14~,
2685	kf5=\E[15~,
2686	kf6=\E[17~,
2687	kf7=\E[18~,
2688	kf8=\E[19~,
2689	kf9=\E[20~,
2690	khome=\E[1~,
2691	kich1=\E[2~,
2692	kil1=\E[30~,
2693	kmous=\E[M,
2694	knp=\E[6~,
2695	kpp=\E[5~,
2696	rc=\E8,
2697	rev=\E[7m,
2698	ri=\EM,
2699	rmir=\E[4l,
2700	rmkx=\E[?1l\E>,
2701	rmso=\E[m,
2702	rmul=\E[m,
2703	rs2=\E>\E[?1;3;4;5;6l\E[4l\E[?7h
2704	    \E[m\E[r\E[2J\E[H,
2705	sc=\E7,
2706	sgr=\E[
2707		%?
2708			%p1
2709			%t;7
2710		%;
2711		%?
2712			%p2
2713			%t;4
2714		%;
2715		%?
2716			%p3
2717			%t;7
2718		%;
2719		%?
2720			%p4
2721			%t;5
2722		%;
2723		%?
2724			%p6
2725			%t;1
2726		%;
2727		m,
2728	sgr0=\E[m,
2729	smir=\E[4h,
2730	smkx=\E[?1h\E=,
2731	smso=\E[7m,
2732	smul=\E[4m,
2733	tbc=\E[3g,
2734	u6=\E[%i%d;%dR,
2735	u7=\E[6n,
2736	u8=\E[?1;2c,
2737	u9=\E[c,
2738	use=xterm+kbs,
2739#
2740#
2741# Customization begins here.
2742#
2743# This is the only entry which you should have to customize, since "xterm"
2744# is widely used for a variety of incompatible terminal emulations including
2745# color_xterm and rxvt.
2746xterm|X11 terminal emulator,
2747	use=xterm-new,
2748#	use=xterm-r6,
2749
2750# This fragment is for people who cannot agree on what the backspace key
2751# should send.
2752xterm+kbs|fragment for backspace key,
2753	kbs=^H,
2754#	kbs=^?,
2755