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