Skip to content

Commit cfbf62c

Browse files
committed
Build termcap file
1 parent 88854c1 commit cfbf62c

File tree

3 files changed

+198
-1
lines changed

3 files changed

+198
-1
lines changed

build-terminfo

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,14 @@ def generate_terminfo():
3636
os.chdir(base)
3737
sys.path.insert(0, base)
3838

39-
from kitty.terminfo import generate_terminfo
39+
from kitty.terminfo import generate_terminfo, generate_termcap
4040

4141
with open('terminfo/kitty.terminfo', 'w') as f:
4242
f.write(generate_terminfo())
4343

44+
with open('terminfo/kitty.termcap', 'w') as f:
45+
f.write(generate_termcap())
46+
4447
compile_terminfo(os.path.join(base, 'terminfo'))
4548

4649

kitty/terminfo.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -428,6 +428,21 @@ def generate_terminfo():
428428
return ',\n\t'.join(ans) + ',\n'
429429

430430

431+
def generate_termcap():
432+
inv_termcap_aliases = {v: k for k, v in termcap_aliases.items()}
433+
ans = ['|'.join(names)]
434+
for cap in sorted(bool_capabilities):
435+
if cap not in no_termcap_for:
436+
ans.append(inv_termcap_aliases[cap])
437+
for k in sorted(numeric_capabilities):
438+
if k not in no_termcap_for:
439+
ans.append('{}#{}'.format(inv_termcap_aliases[k], numeric_capabilities[k]))
440+
for k in sorted(string_capabilities):
441+
if k not in no_termcap_for:
442+
ans.append('{}={}'.format(inv_termcap_aliases[k], string_capabilities[k]))
443+
return ':\\\n\t:'.join(ans) + ':\n'
444+
445+
431446
octal_escape = re.compile(r'\\([0-7]{3})')
432447
escape_escape = re.compile(r'\\[eE]')
433448

terminfo/kitty.termcap

Lines changed: 179 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,179 @@
1+
xterm-kitty|KovIdTTY:\
2+
:am:\
3+
:cc:\
4+
:hs:\
5+
:km:\
6+
:5i:\
7+
:mi:\
8+
:ms:\
9+
:NP:\
10+
:xn:\
11+
:Co#256:\
12+
:co#80:\
13+
:it#8:\
14+
:li#24:\
15+
:pa#32767:\
16+
:ac=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~:\
17+
:bl=^G:\
18+
:md=\E[1m:\
19+
:bt=\E[Z:\
20+
:vi=\E[?25l:\
21+
:cl=\E[H\E[2J:\
22+
:ve=\E[?12l\E[?25h:\
23+
:cr=^M:\
24+
:cs=\E[%i%p1%d;%p2%dr:\
25+
:LE=\E[%p1%dD:\
26+
:le=^H:\
27+
:DO=\E[%p1%dB:\
28+
:do=^J:\
29+
:RI=\E[%p1%dC:\
30+
:nd=\E[C:\
31+
:cm=\E[%i%p1%d;%p2%dH:\
32+
:UP=\E[%p1%dA:\
33+
:up=\E[A:\
34+
:vs=\E[?12;25h:\
35+
:DC=\E[%p1%dP:\
36+
:dc=\E[P:\
37+
:mh=\E[2m:\
38+
:DL=\E[%p1%dM:\
39+
:dl=\E[M:\
40+
:ds=\E]2;\007:\
41+
:ec=\E[%p1%dX:\
42+
:cd=\E[J:\
43+
:ce=\E[K:\
44+
:cb=\E[1K:\
45+
:vb=\E[?5h$<100/>\E[?5l:\
46+
:fs=^G:\
47+
:ho=\E[H:\
48+
:ch=\E[%i%p1%dG:\
49+
:ta=^I:\
50+
:st=\EH:\
51+
:IC=\E[%p1%d@:\
52+
:AL=\E[%p1%dL:\
53+
:al=\E[L:\
54+
:sf=^J:\
55+
:SF=\E[%p1%dS:\
56+
:Ic=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\:\
57+
:*4=\E[3;2~:\
58+
:*7=\E[1;2F:\
59+
:#2=\E[1;2H:\
60+
:#3=\E[2;2~:\
61+
:#4=\E[1;2D:\
62+
:%c=\E[6;2~:\
63+
:%e=\E[5;2~:\
64+
:%i=\E[1;2C:\
65+
:K1=:\
66+
:K3=:\
67+
:kb=\177:\
68+
:K4=:\
69+
:K5=:\
70+
:kB=\E[Z:\
71+
:kl=\EOD:\
72+
:kd=\EOB:\
73+
:kr=\EOC:\
74+
:ku=\EOA:\
75+
:kD=\E[3~:\
76+
:@7=\EOF:\
77+
:k1=\EOP:\
78+
:k;=\E[21~:\
79+
:F1=\E[23~:\
80+
:F2=\E[24~:\
81+
:F3=\E[1;2P:\
82+
:F4=\E[1;2Q:\
83+
:F5=\E[1;2R:\
84+
:F6=\E[1;2S:\
85+
:F7=\E[15;2~:\
86+
:F8=\E[17;2~:\
87+
:F9=\E[18;2~:\
88+
:k2=\EOQ:\
89+
:FA=\E[19;2~:\
90+
:FB=\E[20;2~:\
91+
:FC=\E[21;2~:\
92+
:FD=\E[23;2~:\
93+
:FE=\E[24;2~:\
94+
:FF=\E[1;5P:\
95+
:FG=\E[1;5Q:\
96+
:FH=\E[1;5R:\
97+
:FI=\E[1;5S:\
98+
:FJ=\E[15;5~:\
99+
:k3=\EOR:\
100+
:FK=\E[17;5~:\
101+
:FL=\E[18;5~:\
102+
:FM=\E[19;5~:\
103+
:FN=\E[20;5~:\
104+
:FO=\E[21;5~:\
105+
:FP=\E[23;5~:\
106+
:FQ=\E[24;5~:\
107+
:FR=\E[1;6P:\
108+
:FS=\E[1;6Q:\
109+
:FT=\E[1;6R:\
110+
:k4=\EOS:\
111+
:FU=\E[1;6S:\
112+
:FV=\E[15;6~:\
113+
:FW=\E[17;6~:\
114+
:FX=\E[18;6~:\
115+
:FY=\E[19;6~:\
116+
:FZ=\E[20;6~:\
117+
:Fa=\E[21;6~:\
118+
:Fb=\E[23;6~:\
119+
:Fc=\E[24;6~:\
120+
:Fd=\E[1;3P:\
121+
:k5=\E[15~:\
122+
:Fe=\E[1;3Q:\
123+
:Ff=\E[1;3R:\
124+
:Fg=\E[1;3S:\
125+
:Fh=\E[15;3~:\
126+
:Fi=\E[17;3~:\
127+
:Fj=\E[18;3~:\
128+
:Fk=\E[19;3~:\
129+
:Fl=\E[20;3~:\
130+
:Fm=\E[21;3~:\
131+
:Fn=\E[23;3~:\
132+
:k6=\E[17~:\
133+
:Fo=\E[24;3~:\
134+
:Fp=\E[1;4P:\
135+
:Fq=\E[1;4Q:\
136+
:Fr=\E[1;4R:\
137+
:k7=\E[18~:\
138+
:k8=\E[19~:\
139+
:k9=\E[20~:\
140+
:%1=:\
141+
:kh=\EOH:\
142+
:kI=\E[2~:\
143+
:kF=\E[1;2B:\
144+
:Km=\E[M:\
145+
:kN=\E[6~:\
146+
:kP=\E[5~:\
147+
:kR=\E[1;2A:\
148+
:&8=:\
149+
:oc=\E]104\007:\
150+
:op=\E[39;49m:\
151+
:rc=\E8:\
152+
:mr=\E[7m:\
153+
:sr=\EM:\
154+
:SR=\E[%p1%dT:\
155+
:ZR=\E[23m:\
156+
:ae=\E(B:\
157+
:RA=\E[?7l:\
158+
:te=\E[?1049l:\
159+
:ei=\E[4l:\
160+
:ke=\E[?1l:\
161+
:se=\E[27m:\
162+
:ue=\E[24m:\
163+
:r1=\E]\E\\\Ec:\
164+
:sc=\E7:\
165+
:AB=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m:\
166+
:AF=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m:\
167+
:sa=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m:\
168+
:me=\E(B\E[m:\
169+
:ZH=\E[3m:\
170+
:as=\E(0:\
171+
:SA=\E[?7h:\
172+
:ti=\E[?1049h:\
173+
:im=\E[4h:\
174+
:ks=\E[?1h:\
175+
:so=\E[7m:\
176+
:us=\E[4m:\
177+
:ct=\E[3g:\
178+
:ts=\E]2;:\
179+
:cv=\E[%i%p1%dd:

0 commit comments

Comments
 (0)