├── .gitignore ├── LICENSE ├── misc ├── modifier-sequences ├── kitty-shortcuts-helper └── attrib ├── default-terminfo ├── screen_default.ti ├── putty-256color_default ├── tmux-256color_default └── xterm-256color_default ├── terminfo ├── xterm-kitty-256color.ti └── tmux-new-256color.ti ├── config └── kitty.ini ├── docs └── kitty-config.md └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | backup/ -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) Aleksander Krynicki 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /misc/modifier-sequences: -------------------------------------------------------------------------------- 1 | https://invisible-island.net/ncurses/ncurses.faq.html#modified_keys 2 | 3 | 2 Shift 4 | 3 Alt 5 | 4 Shift + Alt 6 | 5 Ctrl 7 | 6 Shift + Ctrl 8 | 7 Alt + Ctrl 9 | 8 Shift + Alt + Ctrl 10 | 11 | F keys - omitting in terminfo due to 4096 bytes constraint, clearing up kitty key shortcuts only 12 | 1 ^[[11~^[[12~^[[13~^[[14~ ^[[15~^[[17~^[[18~^[[19~ ^[[20~^[[21~^[[23~^[[24~ 13 | 2 ^[[23 shift-F2-opens-notepad f3-nothing ^[[26~ ^[[28~ f6-port-forwarding ^[[31~ f8-text-input ^[[33~^[[34~ none none 14 | 3 ^[^[[11~^[^[[12~^[^[[13~ f4-obvious ^[^[[15~^[^[[17~^[^[[18~^[^[[19~ ^[^[[20~^[^[[21~^[^[[23~^[^[[24~ 15 | 16 | 5 ^[[11~ f2-openfile f3-sendfile f4-none 17 | 18 | HOME INS DEL END PGUP PGDN - fixed 19 | 1 ^[[1~^[[2~^[[3~^[[4~^[[5~^[[6~ 20 | 2 ^[[1~ paste ^[[3~^[[4~ scroll-buffer-up scroll-buffer-down 21 | 3 ^[^[[1~^[^[[2~^[^[[3~^[^[[4~^[^[[5~^[^[[6~ 22 | 4 ^[[1~ paste ^[[3~^[[4~ scroll-buffer-up scroll-buffer-down 23 | 5 none 24 | 6 none 25 | 7 none (except ctrl+alt+del) 26 | 8 none 27 | 28 | ARROWS - fixed 29 | raw 30 | ^[[A^[[B^[[D^[[C 31 | ^[[1;2A^[[1;2B^[[1;2D^[[1;2C 32 | ^[[1;3A^[[1;3B^[[1;3D^[[1;3C 33 | ^[[1;10A^[[1;10B^[[1;10D^[[1;10C 34 | ^[[1;5A^[[1;5B^[[1;5D^[[1;5C 35 | ^[[1;6A^[[1;6B^[[1;6D^[[1;6C 36 | ^[[1;3A^[[1;3B^[[1;3D^[[1;3C 37 | ^[[1;6A^[[1;6B^[[1;6D^[[1;6C 38 | 39 | tmux 40 | ^[[A^[[B^[[D^[[C 41 | ^[[1;2A^[[1;2B^[[1;2D^[[1;2C 42 | ^[[1;3A^[[1;3B^[[1;3D^[[1;3C 43 | ^[[1;4A^[[1;4B^[[1;4D^[[1;4C 44 | ^[[1;5A^[[1;5B^[[1;5D^[[1;5C 45 | ^[[1;6A^[[1;6B^[[1;6D^[[1;6C 46 | ^[[1;3A^[[1;3B^[[1;3D^[[1;3C 47 | ^[[1;6A^[[1;6B^[[1;6D^[[1;6C -------------------------------------------------------------------------------- /default-terminfo/screen_default.ti: -------------------------------------------------------------------------------- 1 | # Reconstructed via infocmp from file: /lib/terminfo/s/screen 2 | screen|VT 100/ANSI X3.64 virtual terminal, 3 | OTbs, OTpt, am, km, mir, msgr, xenl, AX, G0, 4 | colors#8, cols#80, it#8, lines#24, ncv@, pairs#64, U8#1, 5 | acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, 6 | bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, 7 | clear=\E[H\E[J, cnorm=\E[34h\E[?25h, cr=\r, 8 | csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, 9 | cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C, 10 | cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM, 11 | cvvis=\E[34l, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, 12 | dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, 13 | enacs=\E(B\E)0, flash=\Eg, home=\E[H, hpa=\E[%i%p1%dG, 14 | ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L, 15 | ind=\n, indn=\E[%p1%dS, is2=\E)0, kbs=^?, kcbt=\E[Z, 16 | kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, 17 | kdch1=\E[3~, kend=\E[4~, kf1=\EOP, kf10=\E[21~, 18 | kf11=\E[23~, kf12=\E[24~, kf2=\EOQ, kf3=\EOR, kf4=\EOS, 19 | kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, 20 | khome=\E[1~, kich1=\E[2~, kmous=\E[M, knp=\E[6~, kpp=\E[5~, 21 | nel=\EE, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, rmacs=^O, 22 | rmcup=\E[?1049l, rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[23m, 23 | rmul=\E[24m, rs2=\Ec\E[?1000l\E[?25h, sc=\E7, 24 | setab=\E[4%p1%dm, setaf=\E[3%p1%dm, 25 | sgr=\E[0%?%p6%t;1%;%?%p1%t;3%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;m%?%p9%t\016%e\017%;, 26 | sgr0=\E[m\017, smacs=^N, smcup=\E[?1049h, smir=\E[4h, 27 | smkx=\E[?1h\E=, smso=\E[3m, smul=\E[4m, tbc=\E[3g, 28 | vpa=\E[%i%p1%dd, E0=\E(B, S0=\E(%p1%c, 29 | -------------------------------------------------------------------------------- /default-terminfo/putty-256color_default: -------------------------------------------------------------------------------- 1 | # Reconstructed via infocmp from file: /usr/share/terminfo/p/putty-256color 2 | putty-256color|PuTTY 0.58 with xterm 256-colors, 3 | am, bce, bw, hs, mir, msgr, xenl, xon, XT, 4 | colors#0x100, it#8, ncv#22, pairs#0x10000, U8#1, 5 | acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, 6 | bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, 7 | clear=\E[H\E[J, cnorm=\E[?25h, cr=\r, 8 | csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, 9 | cud=\E[%p1%dB, cud1=\ED, cuf=\E[%p1%dC, cuf1=\E[C, 10 | cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM, 11 | dch=\E[%p1%dP, dch1=\E[P, 12 | dispc=%?%p1%{8}%=%t\E%%G\342\227\230\E%%@%e%p1%{10}%=%t\E%%G\342\227\231\E%%@%e%p1%{12}%=%t\E%%G\342\231\0\E%%@%e%p1%{13}%=%t\E%%G\342\231\252\E%%@%e%p1%{14}%=%t\E%%G\342\231\253\E%%@%e%p1%{15}%=%t\E%%G\342\230\274\E%%@%e%p1%{27}%=%t\E%%G\342\206\220\E%%@%e%p1%{155}%=%t\E%%G\340\202\242\E%%@%e%p1%c%;, 13 | dl=\E[%p1%dM, dl1=\E[M, dsl=\E]0;\007, ech=\E[%p1%dX, 14 | ed=\E[J, el=\E[K, el1=\E[1K, enacs=\E(B\E)0, 15 | flash=\E[?5h$<100/>\E[?5l, fsl=^G, home=\E[H, 16 | hpa=\E[%i%p1%dG, ht=^I, hts=\EH, il=\E[%p1%dL, il1=\E[L, 17 | ind=\n, indn=\E[%p1%dS, 18 | is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>\E]R, 19 | kLFT=\E[D, kRIT=\E[C, kb2=\E[G, kbs=^?, kcbt=\E[Z, 20 | kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, 21 | kdch1=\E[3~, kend=\E[4~, kf1=\E[11~, kf10=\E[21~, 22 | kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, 23 | kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, 24 | kf19=\E[33~, kf2=\E[12~, kf20=\E[34~, kf3=\E[13~, 25 | kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, 26 | kf9=\E[20~, khome=\E[1~, kich1=\E[2~, kind=\E[B, 27 | kmous=\E[M, knp=\E[6~, kpp=\E[5~, kri=\E[A, kspd=^Z, 28 | nel=\r\n, oc=\E]R, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, 29 | rin=\E[%p1%dT, rmacs=^O, rmam=\E[?7l, rmcup=\E[2J\E[?47l, 30 | rmir=\E[4l, rmkx=\E[?1l\E>, rmpch=\E[10m, rmso=\E[27m, 31 | rmul=\E[24m, 32 | rs2=\E<\E["p\E[50;6"p\Ec\E[?3l\E]R\E[?1000l, 33 | s0ds=\E[10m, s1ds=\E[11m, s2ds=\E[12m, sc=\E7, 34 | setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m, 35 | setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m, 36 | sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, 37 | sgr0=\E[m\017, smacs=^N, smam=\E[?7h, smcup=\E[?47h, 38 | smir=\E[4h, smkx=\E[?1h\E=, smpch=\E[11m, smso=\E[7m, 39 | smul=\E[4m, tbc=\E[3g, tsl=\E]0;, u6=\E[%i%d;%dR, u7=\E[6n, 40 | u8=\E[?6c, u9=\E[c, vpa=\E[%i%p1%dd, E3=\E[3J, TS=\E]0;, 41 | -------------------------------------------------------------------------------- /default-terminfo/tmux-256color_default: -------------------------------------------------------------------------------- 1 | # Reconstructed via infocmp from file: /usr/share/terminfo/t/tmux-256color 2 | tmux-256color|tmux with 256 colors, 3 | OTbs, OTpt, am, hs, km, mir, msgr, xenl, AX, G0, 4 | colors#0x100, cols#80, it#8, lines#24, pairs#0x10000, U8#1, 5 | acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, 6 | bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, 7 | clear=\E[H\E[J, cnorm=\E[34h\E[?25h, cr=\r, 8 | csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, 9 | cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C, 10 | cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\EM, 11 | cvvis=\E[34l, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, 12 | dl=\E[%p1%dM, dl1=\E[M, dsl=\E]0;\007, ed=\E[J, el=\E[K, 13 | el1=\E[1K, enacs=\E(B\E)0, flash=\Eg, fsl=^G, home=\E[H, 14 | hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, 15 | il=\E[%p1%dL, il1=\E[L, ind=\n, indn=\E[%p1%dS, 16 | invis=\E[8m, is2=\E)0, kDC=\E[3;2~, kEND=\E[1;2F, 17 | kHOM=\E[1;2H, kIC=\E[2;2~, kLFT=\E[1;2D, kNXT=\E[6;2~, 18 | kPRV=\E[5;2~, kRIT=\E[1;2C, kbs=^?, kcbt=\E[Z, kcub1=\EOD, 19 | kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, kdch1=\E[3~, 20 | kend=\E[4~, kf1=\EOP, kf10=\E[21~, kf11=\E[23~, 21 | kf12=\E[24~, kf13=\E[1;2P, kf14=\E[1;2Q, kf15=\E[1;2R, 22 | kf16=\E[1;2S, kf17=\E[15;2~, kf18=\E[17;2~, 23 | kf19=\E[18;2~, kf2=\EOQ, kf20=\E[19;2~, kf21=\E[20;2~, 24 | kf22=\E[21;2~, kf23=\E[23;2~, kf24=\E[24;2~, 25 | kf25=\E[1;5P, kf26=\E[1;5Q, kf27=\E[1;5R, kf28=\E[1;5S, 26 | kf29=\E[15;5~, kf3=\EOR, kf30=\E[17;5~, kf31=\E[18;5~, 27 | kf32=\E[19;5~, kf33=\E[20;5~, kf34=\E[21;5~, 28 | kf35=\E[23;5~, kf36=\E[24;5~, kf37=\E[1;6P, kf38=\E[1;6Q, 29 | kf39=\E[1;6R, kf4=\EOS, kf40=\E[1;6S, kf41=\E[15;6~, 30 | kf42=\E[17;6~, kf43=\E[18;6~, kf44=\E[19;6~, 31 | kf45=\E[20;6~, kf46=\E[21;6~, kf47=\E[23;6~, 32 | kf48=\E[24;6~, kf49=\E[1;3P, kf5=\E[15~, kf50=\E[1;3Q, 33 | kf51=\E[1;3R, kf52=\E[1;3S, kf53=\E[15;3~, kf54=\E[17;3~, 34 | kf55=\E[18;3~, kf56=\E[19;3~, kf57=\E[20;3~, 35 | kf58=\E[21;3~, kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~, 36 | kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~, 37 | kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~, 38 | kind=\E[1;2B, kmous=\E[M, knp=\E[6~, kpp=\E[5~, 39 | kri=\E[1;2A, nel=\EE, op=\E[39;49m, rc=\E8, rev=\E[7m, 40 | ri=\EM, ritm=\E[23m, rmacs=^O, rmcup=\E[?1049l, rmir=\E[4l, 41 | rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m, 42 | rs2=\Ec\E[?1000l\E[?25h, sc=\E7, 43 | setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m, 44 | setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m, 45 | sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, 46 | sgr0=\E[m\017, sitm=\E[3m, smacs=^N, smcup=\E[?1049h, 47 | smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m, 48 | tbc=\E[3g, tsl=\E]0;, vpa=\E[%i%p1%dd, Cr=\E]112\007, 49 | Cs=\E]12;%p1%s\007, E0=\E(B, E3=\E[3J, 50 | Ms=\E]52;%p1%s;%p2%s\007, S0=\E(%p1%c, Se=\E[2 q, 51 | Ss=\E[%p1%d q, TS=\E]0;, kDC3=\E[3;3~, kDC4=\E[3;4~, 52 | kDC5=\E[3;5~, kDC6=\E[3;6~, kDC7=\E[3;7~, kDN=\E[1;2B, 53 | kDN3=\E[1;3B, kDN4=\E[1;4B, kDN5=\E[1;5B, kDN6=\E[1;6B, 54 | kDN7=\E[1;7B, kEND3=\E[1;3F, kEND4=\E[1;4F, 55 | kEND5=\E[1;5F, kEND6=\E[1;6F, kEND7=\E[1;7F, 56 | kHOM3=\E[1;3H, kHOM4=\E[1;4H, kHOM5=\E[1;5H, 57 | kHOM6=\E[1;6H, kHOM7=\E[1;7H, kIC3=\E[2;3~, kIC4=\E[2;4~, 58 | kIC5=\E[2;5~, kIC6=\E[2;6~, kIC7=\E[2;7~, kLFT3=\E[1;3D, 59 | kLFT4=\E[1;4D, kLFT5=\E[1;5D, kLFT6=\E[1;6D, 60 | kLFT7=\E[1;7D, kNXT3=\E[6;3~, kNXT4=\E[6;4~, 61 | kNXT5=\E[6;5~, kNXT6=\E[6;6~, kNXT7=\E[6;7~, 62 | kPRV3=\E[5;3~, kPRV4=\E[5;4~, kPRV5=\E[5;5~, 63 | kPRV6=\E[5;6~, kPRV7=\E[5;7~, kRIT3=\E[1;3C, 64 | kRIT4=\E[1;4C, kRIT5=\E[1;5C, kRIT6=\E[1;6C, 65 | kRIT7=\E[1;7C, kUP=\E[1;2A, kUP3=\E[1;3A, kUP4=\E[1;4A, 66 | kUP5=\E[1;5A, kUP6=\E[1;6A, kUP7=\E[1;7A, rmxx=\E[29m, 67 | smxx=\E[9m, 68 | -------------------------------------------------------------------------------- /default-terminfo/xterm-256color_default: -------------------------------------------------------------------------------- 1 | # Reconstructed via infocmp from file: /lib/terminfo/x/xterm-256color 2 | xterm-256color|xterm with 256 colors, 3 | OTbs, am, bce, ccc, km, mc5i, mir, msgr, npc, xenl, AX, XT, 4 | colors#0x100, cols#80, it#8, lines#24, pairs#0x10000, 5 | acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, 6 | bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l, 7 | clear=\E[H\E[2J, cnorm=\E[?12l\E[?25h, cr=\r, 8 | csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, 9 | cud=\E[%p1%dB, cud1=\n, cuf=\E[%p1%dC, cuf1=\E[C, 10 | cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, 11 | cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m, 12 | dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, 13 | el1=\E[1K, flash=\E[?5h$<100/>\E[?5l, home=\E[H, 14 | hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, 15 | il=\E[%p1%dL, il1=\E[L, ind=\n, indn=\E[%p1%dS, 16 | initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\, 17 | invis=\E[8m, is2=\E[!p\E[?3;4l\E[4l\E>, kDC=\E[3;2~, 18 | kEND=\E[1;2F, kHOM=\E[1;2H, kIC=\E[2;2~, kLFT=\E[1;2D, 19 | kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\E[1;2C, kb2=\EOE, kbs=^?, 20 | kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC, kcuu1=\EOA, 21 | kdch1=\E[3~, kend=\EOF, kent=\EOM, kf1=\EOP, kf10=\E[21~, 22 | kf11=\E[23~, kf12=\E[24~, kf13=\E[1;2P, kf14=\E[1;2Q, 23 | kf15=\E[1;2R, kf16=\E[1;2S, kf17=\E[15;2~, kf18=\E[17;2~, 24 | kf19=\E[18;2~, kf2=\EOQ, kf20=\E[19;2~, kf21=\E[20;2~, 25 | kf22=\E[21;2~, kf23=\E[23;2~, kf24=\E[24;2~, 26 | kf25=\E[1;5P, kf26=\E[1;5Q, kf27=\E[1;5R, kf28=\E[1;5S, 27 | kf29=\E[15;5~, kf3=\EOR, kf30=\E[17;5~, kf31=\E[18;5~, 28 | kf32=\E[19;5~, kf33=\E[20;5~, kf34=\E[21;5~, 29 | kf35=\E[23;5~, kf36=\E[24;5~, kf37=\E[1;6P, kf38=\E[1;6Q, 30 | kf39=\E[1;6R, kf4=\EOS, kf40=\E[1;6S, kf41=\E[15;6~, 31 | kf42=\E[17;6~, kf43=\E[18;6~, kf44=\E[19;6~, 32 | kf45=\E[20;6~, kf46=\E[21;6~, kf47=\E[23;6~, 33 | kf48=\E[24;6~, kf49=\E[1;3P, kf5=\E[15~, kf50=\E[1;3Q, 34 | kf51=\E[1;3R, kf52=\E[1;3S, kf53=\E[15;3~, kf54=\E[17;3~, 35 | kf55=\E[18;3~, kf56=\E[19;3~, kf57=\E[20;3~, 36 | kf58=\E[21;3~, kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~, 37 | kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~, 38 | kf8=\E[19~, kf9=\E[20~, khome=\EOH, kich1=\E[2~, 39 | kind=\E[1;2B, kmous=\E[M, knp=\E[6~, kpp=\E[5~, 40 | kri=\E[1;2A, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, meml=\El, 41 | memu=\Em, oc=\E]104\007, op=\E[39;49m, rc=\E8, 42 | rep=%p1%c\E[%p2%{1}%-%db, rev=\E[7m, ri=\EM, 43 | rin=\E[%p1%dT, ritm=\E[23m, rmacs=\E(B, rmam=\E[?7l, 44 | rmcup=\E[?1049l\E[23;0;0t, rmir=\E[4l, rmkx=\E[?1l\E>, 45 | rmm=\E[?1034l, rmso=\E[27m, rmul=\E[24m, 46 | rs1=\Ec\E]104\007, rs2=\E[!p\E[?3;4l\E[4l\E>, sc=\E7, 47 | setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m, 48 | setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m, 49 | sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m, 50 | sgr0=\E(B\E[m, sitm=\E[3m, smacs=\E(0, smam=\E[?7h, 51 | smcup=\E[?1049h\E[22;0;0t, smir=\E[4h, smkx=\E[?1h\E=, 52 | smm=\E[?1034h, smso=\E[7m, smul=\E[4m, tbc=\E[3g, 53 | u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?%[;0123456789]c, 54 | u9=\E[c, vpa=\E[%i%p1%dd, Cr=\E]112\007, 55 | Cs=\E]12;%p1%s\007, E3=\E[3J, Ms=\E]52;%p1%s;%p2%s\007, 56 | Se=\E[2 q, Ss=\E[%p1%d q, kDC3=\E[3;3~, kDC4=\E[3;4~, 57 | kDC5=\E[3;5~, kDC6=\E[3;6~, kDC7=\E[3;7~, kDN=\E[1;2B, 58 | kDN3=\E[1;3B, kDN4=\E[1;4B, kDN5=\E[1;5B, kDN6=\E[1;6B, 59 | kDN7=\E[1;7B, kEND3=\E[1;3F, kEND4=\E[1;4F, 60 | kEND5=\E[1;5F, kEND6=\E[1;6F, kEND7=\E[1;7F, 61 | kHOM3=\E[1;3H, kHOM4=\E[1;4H, kHOM5=\E[1;5H, 62 | kHOM6=\E[1;6H, kHOM7=\E[1;7H, kIC3=\E[2;3~, kIC4=\E[2;4~, 63 | kIC5=\E[2;5~, kIC6=\E[2;6~, kIC7=\E[2;7~, kLFT3=\E[1;3D, 64 | kLFT4=\E[1;4D, kLFT5=\E[1;5D, kLFT6=\E[1;6D, 65 | kLFT7=\E[1;7D, kNXT3=\E[6;3~, kNXT4=\E[6;4~, 66 | kNXT5=\E[6;5~, kNXT6=\E[6;6~, kNXT7=\E[6;7~, 67 | kPRV3=\E[5;3~, kPRV4=\E[5;4~, kPRV5=\E[5;5~, 68 | kPRV6=\E[5;6~, kPRV7=\E[5;7~, kRIT3=\E[1;3C, 69 | kRIT4=\E[1;4C, kRIT5=\E[1;5C, kRIT6=\E[1;6C, 70 | kRIT7=\E[1;7C, kUP=\E[1;2A, kUP3=\E[1;3A, kUP4=\E[1;4A, 71 | kUP5=\E[1;5A, kUP6=\E[1;6A, kUP7=\E[1;7A, rmxx=\E[29m, 72 | smxx=\E[9m, 73 | -------------------------------------------------------------------------------- /misc/kitty-shortcuts-helper: -------------------------------------------------------------------------------- 1 | {SHIFT} 2 | {ALT} 3 | {SHIFT}{ALT} 4 | {CONTROL} 5 | {SHIFT}{CONTROL} 6 | {ALT}{CONTROL} 7 | {SHIFT}{ALT}{CONTROL} 8 | 9 | ========= 10 | 11 | {SHIFT}{ALT}{UP}=\x1b[1;4A\ 12 | {SHIFT}{ALT}{DOWN}=\x1b[1;4B\ 13 | {SHIFT}{ALT}{RIGHT}=\x1b[1;4C\ 14 | {SHIFT}{ALT}{LEFT}=\x1b[1;4D\ 15 | 16 | {CONTROL}{ALT}{UP}=\x1b[1;7A\ 17 | {CONTROL}{ALT}{DOWN}=\x1b[1;7B\ 18 | {CONTROL}{ALT}{RIGHT}=\x1b[1;7C\ 19 | {CONTROL}{ALT}{LEFT}=\x1b[1;7D\ 20 | 21 | {SHIFT}{CONTROL}{ALT}{UP}=\x1b[1;8A\ 22 | {SHIFT}{CONTROL}{ALT}{DOWN}=\x1b[1;8B\ 23 | {SHIFT}{CONTROL}{ALT}{RIGHT}=\x1b[1;8C\ 24 | {SHIFT}{CONTROL}{ALT}{LEFT}=\x1b[1;8D\ 25 | 26 | {SHIFT}{INS}=\x1b[2;2~\ 27 | {ALT}{INS}=\x1b[2;3~\ 28 | {SHIFT}{ALT}{INS}=\x1b[2;4~\ 29 | {CONTROL}{INS}=\x1b[2;5~\ 30 | {SHIFT}{CONTROL}{INS}=\x1b[2;6~\ 31 | {ALT}{CONTROL}{INS}=\x1b[2;7~\ 32 | {SHIFT}{ALT}{CONTROL}{INS}=\x1b[2;8~\ 33 | 34 | {SHIFT}{DEL}=\x1b[3;2~\ 35 | {ALT}{DEL}=\x1b[3;3~\ 36 | {SHIFT}{ALT}{DEL}=\x1b[3;4~\ 37 | {CONTROL}{DEL}=\x1b[3;5~\ 38 | {SHIFT}{CONTROL}{DEL}=\x1b[3;6~\ 39 | {ALT}{CONTROL}{DEL}=\x1b[3;7~\ 40 | {SHIFT}{ALT}{CONTROL}{DEL}=\x1b[3;8~\ 41 | 42 | {SHIFT}{HOME}=\x1b[1;2H\ 43 | {ALT}{HOME}=\x1b[1;3H\ 44 | {SHIFT}{ALT}{HOME}=\x1b[1;4H\ 45 | {CONTROL}{HOME}=\x1b[1;5H\ 46 | {SHIFT}{CONTROL}{HOME}=\x1b[1;6H\ 47 | {ALT}{CONTROL}{HOME}=\x1b[1;7H\ 48 | {SHIFT}{ALT}{CONTROL}{HOME}=\x1b[1;8H\ 49 | 50 | {SHIFT}{END}=\x1b[1;2F\ 51 | {ALT}{END}=\x1b[1;3F\ 52 | {SHIFT}{ALT}{END}=\x1b[1;4F\ 53 | {CONTROL}{END}=\x1b[1;5F\ 54 | {SHIFT}{CONTROL}{END}=\x1b[1;6F\ 55 | {ALT}{CONTROL}{END}=\x1b[1;7F\ 56 | {SHIFT}{ALT}{CONTROL}{END}=\x1b[1;8F\ 57 | 58 | {SHIFT}{PRIOR}=\x1b[5;2~\ 59 | {ALT}{PRIOR}=\x1b[5;3~\ 60 | {SHIFT}{ALT}{PRIOR}=\x1b[5;4~\ 61 | {CONTROL}{PRIOR}=\x1b[5;5~\ 62 | {SHIFT}{CONTROL}{PRIOR}=\x1b[5;6~\ 63 | {ALT}{CONTROL}{PRIOR}=\x1b[5;7~\ 64 | {SHIFT}{ALT}{CONTROL}{PRIOR}=\x1b[5;8~\ 65 | 66 | {SHIFT}{NEXT}=\x1b[6;2~\ 67 | {ALT}{NEXT}=\x1b[6;3~\ 68 | {SHIFT}{ALT}{NEXT}=\x1b[6;4~\ 69 | {CONTROL}{NEXT}=\x1b[6;5~\ 70 | {SHIFT}{CONTROL}{NEXT}=\x1b[6;6~\ 71 | {ALT}{CONTROL}{NEXT}=\x1b[6;7~\ 72 | {SHIFT}{ALT}{CONTROL}{NEXT}=\x1b[6;8~\ 73 | 74 | {SHIFT}{F1}=\ 75 | {ALT}{F1}=\ 76 | {SHIFT}{ALT}{F1}=\ 77 | {CONTROL}{F1}=\ 78 | {SHIFT}{CONTROL}{F1}=\ 79 | {ALT}{CONTROL}{F1}=\ 80 | {SHIFT}{ALT}{CONTROL}{F1}=\ 81 | 82 | {SHIFT}{F2}=\ 83 | {ALT}{F2}=\ 84 | {SHIFT}{ALT}{F2}=\ 85 | {CONTROL}{F2}=\ 86 | {SHIFT}{CONTROL}{F2}=\ 87 | {ALT}{CONTROL}{F2}=\ 88 | {SHIFT}{ALT}{CONTROL}{F2}=\ 89 | 90 | {SHIFT}{F3}=\ 91 | {ALT}{F3}=\ 92 | {SHIFT}{ALT}{F3}=\ 93 | {CONTROL}{F3}=\ 94 | {SHIFT}{CONTROL}{F3}=\ 95 | {ALT}{CONTROL}{F3}=\ 96 | {SHIFT}{ALT}{CONTROL}{F3}=\ 97 | 98 | {SHIFT}{F4}=\ 99 | 100 | {SHIFT}{ALT}{F4}=\ 101 | {CONTROL}{F4}=\ 102 | {SHIFT}{CONTROL}{F4}=\ 103 | {ALT}{CONTROL}{F4}=\ 104 | {SHIFT}{ALT}{CONTROL}{F4}=\ 105 | 106 | {SHIFT}{F5}=\ 107 | {ALT}{F5}=\ 108 | {SHIFT}{ALT}{F5}=\ 109 | {CONTROL}{F5}=\ 110 | {SHIFT}{CONTROL}{F5}=\ 111 | {ALT}{CONTROL}{F5}=\ 112 | {SHIFT}{ALT}{CONTROL}{F5}=\ 113 | 114 | {ALT}{F6}=\ 115 | {SHIFT}{ALT}{F6}=\ 116 | {CONTROL}{F6}=\ 117 | {SHIFT}{CONTROL}{F6}=\ 118 | {ALT}{CONTROL}{F6}=\ 119 | {SHIFT}{ALT}{CONTROL}{F6}=\ 120 | 121 | {SHIFT}{F7}=\ 122 | {ALT}{F7}=\ 123 | {SHIFT}{ALT}{F7}=\ 124 | {CONTROL}{F7}=\ 125 | {SHIFT}{CONTROL}{F7}=\ 126 | {ALT}{CONTROL}{F7}=\ 127 | {SHIFT}{ALT}{CONTROL}{F7}=\ 128 | 129 | {ALT}{F8}=\ 130 | {SHIFT}{ALT}{F8}=\ 131 | {CONTROL}{F8}=\ 132 | {SHIFT}{CONTROL}{F8}=\ 133 | {ALT}{CONTROL}{F8}=\ 134 | {SHIFT}{ALT}{CONTROL}{F8}=\ 135 | 136 | {SHIFT}{F9}=\ 137 | {ALT}{F9}=\ 138 | {SHIFT}{ALT}{F9}=\ 139 | {CONTROL}{F9}=\ 140 | {SHIFT}{CONTROL}{F9}=\ 141 | {ALT}{CONTROL}{F9}=\ 142 | {SHIFT}{ALT}{CONTROL}{F9}=\ 143 | 144 | {SHIFT}{F10}=\ 145 | {ALT}{F10}=\ 146 | {SHIFT}{ALT}{F10}=\ 147 | {CONTROL}{F10}=\ 148 | {SHIFT}{CONTROL}{F10}=\ 149 | {ALT}{CONTROL}{F10}=\ 150 | {SHIFT}{ALT}{CONTROL}{F10}=\ 151 | 152 | {SHIFT}{F11}=\ 153 | {ALT}{F11}=\ 154 | {SHIFT}{ALT}{F11}=\ 155 | {CONTROL}{F11}=\ 156 | {SHIFT}{CONTROL}{F11}=\ 157 | {ALT}{CONTROL}{F11}=\ 158 | {SHIFT}{ALT}{CONTROL}{F11}=\ 159 | 160 | {SHIFT}{F12}=\ 161 | {ALT}{F12}=\ 162 | {SHIFT}{ALT}{F12}=\ 163 | {CONTROL}{F12}=\ 164 | {SHIFT}{CONTROL}{F12}=\ 165 | {ALT}{CONTROL}{F12}=\ 166 | {SHIFT}{ALT}{CONTROL}{F12}=\ 167 | -------------------------------------------------------------------------------- /terminfo/xterm-kitty-256color.ti: -------------------------------------------------------------------------------- 1 | # Reconstructed via infocmp from file: /lib/terminfo/x/xterm-256color 2 | xterm-kitty-256color|xterm-style terminfo for KiTTY with 256 colors, 3 | OTpt, 4 | OTbs, 5 | am, 6 | bce, 7 | bw, 8 | km, 9 | mir, 10 | msgr, 11 | xenl, 12 | xon, 13 | AX, 14 | XT, 15 | hs, 16 | colors#0x100, 17 | it#8, 18 | pairs#0x10000, 19 | ncv#22, 20 | U8#1, 21 | acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, 22 | bel=^G, 23 | blink=\E[5m, 24 | bold=\E[1m, 25 | cbt=\E[Z, 26 | civis=\E[?25l, 27 | cvvis=\E[34l, 28 | clear=\E[H\E[J, 29 | cnorm=\E[34h\E[?25h, 30 | cr=\r, 31 | csr=\E[%i%p1%d;%p2%dr, 32 | cub1=\E[D, 33 | cub=\E[%p1%dD, 34 | cud1=\E[B, 35 | cud=\E[%p1%dB, 36 | cuf1=\E[C, 37 | cuf=\E[%p1%dC, 38 | cup=\E[%i%p1%d;%p2%dH, 39 | smcup=\E[?1049h, 40 | rmcup=\E[?1049l, 41 | cuu1=\E[A, 42 | cuu=\E[%p1%dA, 43 | dch1=\E[P, 44 | dch=\E[%p1%dP, 45 | is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>\E]R, 46 | dim=\E[2m, 47 | dl1=\E[M, 48 | dl=\E[%p1%dM, 49 | dispc=%?%p1%{8}%=%t\E%%G\342\227\230\E%%@%e%p1%{10}%=%t\E%%G\342\227\231\E%%@%e%p1%{12}%=%t\E%%G\342\231\0\E%%@%e%p1%{13}%=%t\E%%G\342\231\252\E%%@%e%p1%{14}%=%t\E%%G\342\231\253\E%%@%e%p1%{15}%=%t\E%%G\342\230\274\E%%@%e%p1%{27}%=%t\E%%G\342\206\220\E%%@%e%p1%{155}%=%t\E%%G\340\202\242\E%%@%e%p1%c%;, 50 | ech=\E[%p1%dX, 51 | ed=\E[J, 52 | el1=\E[1K, 53 | el=\E[K, 54 | smacs=\E(0, 55 | rmacs=\E(B, 56 | sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, 57 | flash=\E[?5h$<100/>\E[?5l, 58 | home=\E[H, 59 | vpa=\E[%i%p1%dd, 60 | hpa=\E[%i%p1%dG, 61 | ht=^I, 62 | hts=\EH, 63 | ich=\E[%p1%d@, 64 | il1=\E[L, 65 | il=\E[%p1%dL, 66 | ind=\n, 67 | indn=\E[%p1%dS, 68 | invis=\E[8m, 69 | kb2=\E[G, 70 | kbs=^?, 71 | kcbt=\E[Z, 72 | kcuu1=\EOA, 73 | kcud1=\EOB, 74 | kcuf1=\EOC, 75 | kcub1=\EOD, 76 | kri=\E[1;2A, 77 | kind=\E[1;2B, 78 | kdch1=\E[3~, 79 | kend=\E[4~, 80 | kf1=\E[11~, 81 | kf2=\E[12~, 82 | kf3=\E[13~, 83 | kf4=\E[14~, 84 | kf5=\E[15~, 85 | kf6=\E[17~, 86 | kf7=\E[18~, 87 | kf8=\E[19~, 88 | kf9=\E[20~, 89 | kf10=\E[21~, 90 | kf11=\E[23~, 91 | kf12=\E[24~, 92 | khome=\E[1~, 93 | kich1=\E[2~, 94 | kmous=\E[M, 95 | knp=\E[6~, 96 | kpp=\E[5~, 97 | kspd=^Z, 98 | lf=\n, 99 | nel=\r\n, 100 | oc=\E]R, 101 | op=\E[39;49m, 102 | rc=\E8, 103 | rev=\E[7m, 104 | ri=\EM, 105 | rin=\E[%p1%dT, 106 | smam=\E[?7h, 107 | rmam=\E[?7l, 108 | smpch=\E[11m, 109 | rmpch=\E[10m, 110 | smir=\E[4h, 111 | rmir=\E[4l, 112 | smkx=\E[?1h\E=, 113 | rmkx=\E[?1l\E>, 114 | smso=\E[7m, 115 | rmso=\E[27m, 116 | smul=\E[4m, 117 | rmul=\E[24m, 118 | rs1=\Ec\E]104\007, 119 | rs2=\E<\E["p\E[50;6"p\Ec\E[?3l\E]R\E[?1000l, 120 | sc=\E7, 121 | setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m, 122 | setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m, 123 | sgr0=\E[m\017, 124 | tbc=\E[3g, 125 | u6=\E[%i%d;%dR, 126 | u7=\E[6n, 127 | u8=\E[?6c, 128 | u9=\E[c, 129 | E3=\E[3J, 130 | TS=\E]0; 131 | dsl=\E]0;\007, 132 | fsl=^G, 133 | tsl=\E]0;, 134 | kUP=\E[1;2A, 135 | kUP3=\E[1;3A, 136 | kUP4=\E[1;4A, 137 | kUP5=\E[1;5A, 138 | kUP6=\E[1;6A, 139 | kUP7=\E[1;7A, 140 | kUP8=\E[1;8A, 141 | kDN=\E[1;2B, 142 | kDN3=\E[1;3B, 143 | kDN4=\E[1;4B, 144 | kDN5=\E[1;5B, 145 | kDN6=\E[1;6B, 146 | kDN7=\E[1;7B, 147 | kDN8=\E[1;8B, 148 | kRIT=\E[1;2C, 149 | kRIT3=\E[1;3C, 150 | kRIT4=\E[1;4C, 151 | kRIT5=\E[1;5C, 152 | kRIT6=\E[1;6C, 153 | kRIT7=\E[1;7C, 154 | kRIT8=\E[1;8C, 155 | kLFT=\E[1;2D, 156 | kLFT3=\E[1;3D, 157 | kLFT4=\E[1;4D, 158 | kLFT5=\E[1;5D, 159 | kLFT6=\E[1;6D, 160 | kLFT7=\E[1;7D, 161 | kLFT8=\E[1;8D, 162 | # kIC=\E[2;2~, 163 | kIC3=\E[2;3~, 164 | kIC4=\E[2;4~, 165 | kIC5=\E[2;5~, 166 | kIC6=\E[2;6~, 167 | kIC7=\E[2;7~, 168 | kIC8=\E[2;8~, 169 | kDC=\E[3;2~, 170 | kDC3=\E[3;3~, 171 | kDC4=\E[3;4~, 172 | kDC5=\E[3;5~, 173 | kDC6=\E[3;6~, 174 | # kDC7=\E[3;7~, 175 | kDC8=\E[3;8~, 176 | kHOM=\E[1;2H, 177 | kHOM3=\E[1;3H, 178 | kHOM4=\E[1;4H, 179 | kHOM5=\E[1;5H, 180 | kHOM6=\E[1;6H, 181 | kHOM7=\E[1;7H, 182 | kHOM8=\E[1;8H, 183 | kEND=\E[1;2F, 184 | kEND3=\E[1;3F, 185 | kEND4=\E[1;4F, 186 | kEND5=\E[1;5F, 187 | kEND6=\E[1;6F, 188 | kEND7=\E[1;7F, 189 | kEND8=\E[1;8F, 190 | # kPRV=\E[5;2~, 191 | kPRV3=\E[5;3~, 192 | kPRV4=\E[5;4~, 193 | kPRV5=\E[5;5~, 194 | kPRV6=\E[5;6~, 195 | kPRV7=\E[5;7~, 196 | kPRV8=\E[5;8~, 197 | # kNXT=\E[6;2~, 198 | kNXT3=\E[6;3~, 199 | kNXT4=\E[6;4~, 200 | kNXT5=\E[6;5~, 201 | kNXT6=\E[6;6~, 202 | kNXT7=\E[6;7~, 203 | kNXT8=\E[6;8~, 204 | -------------------------------------------------------------------------------- /terminfo/tmux-new-256color.ti: -------------------------------------------------------------------------------- 1 | OTbs, 2 | am, 3 | bce, 4 | ccc, 5 | km, 6 | mc5i, 7 | mir, 8 | msgr, 9 | npc, 10 | xenl, 11 | AX, 12 | XT, 13 | colors#0x100, 14 | cols#80, 15 | it#8, 16 | lines#24, 17 | pairs#0x10000, 18 | acsc=++\,\,--..00__``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}c~~, 19 | bel=^G, 20 | blink=\E[5m, 21 | bold=\E[1m, 22 | cbt=\E[Z, 23 | civis=\E[?25l, 24 | clear=\E[H\E[2J, 25 | cnorm=\E[?12l\E[?25h, 26 | cr=\r, 27 | csr=\E[%i%p1%d;%p2%dr, 28 | cub=\E[%p1%dD, 29 | cub1=^H, 30 | cud=\E[%p1%dB, 31 | cud1=\n, 32 | cuf=\E[%p1%dC, 33 | cuf1=\E[C, 34 | cup=\E[%i%p1%d;%p2%dH, 35 | cuu=\E[%p1%dA, 36 | cuu1=\E[A, 37 | cvvis=\E[?12;25h, 38 | dch=\E[%p1%dP, 39 | dch1=\E[P, 40 | dim=\E[2m, 41 | dl=\E[%p1%dM, 42 | dl1=\E[M, 43 | ech=\E[%p1%dX, 44 | ed=\E[J, 45 | el=\E[K, 46 | el1=\E[1K, 47 | flash=\E[?5h$<100/>\E[?5l, 48 | home=\E[H, 49 | hpa=\E[%i%p1%dG, 50 | ht=^I, 51 | hts=\EH, 52 | ich=\E[%p1%d@, 53 | il=\E[%p1%dL, 54 | il1=\E[L, 55 | ind=\n, 56 | indn=\E[%p1%dS, 57 | initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\, 58 | invis=\E[8m, 59 | is2=\E[!p\E[?3;4l\E[4l\E>, 60 | kDC=\E[3;2~, 61 | kEND=\E[1;2F, 62 | kHOM=\E[1;2H, 63 | kIC=\E[2;2~, 64 | kLFT=\E[1;2D, 65 | kNXT=\E[6;2~, 66 | kPRV=\E[5;2~, 67 | kRIT=\E[1;2C, 68 | kb2=\EOE, 69 | kbs=^?, 70 | kcbt=\E[Z, 71 | kcub1=\EOD, 72 | kcud1=\EOB, 73 | kcuf1=\EOC, 74 | kcuu1=\EOA, 75 | kdch1=\E[3~, 76 | kend=\EOF, 77 | kent=\EOM, 78 | kf1=\EOP, 79 | kf10=\E[21~, 80 | kf11=\E[23~, 81 | kf12=\E[24~, 82 | kf13=\E[1;2P, 83 | kf14=\E[1;2Q, 84 | kf15=\E[1;2R, 85 | kf16=\E[1;2S, 86 | kf17=\E[15;2~, 87 | kf18=\E[17;2~, 88 | kf19=\E[18;2~, 89 | kf2=\EOQ, 90 | kf20=\E[19;2~, 91 | kf21=\E[20;2~, 92 | kf22=\E[21;2~, 93 | kf23=\E[23;2~, 94 | kf24=\E[24;2~, 95 | kf25=\E[1;5P, 96 | kf26=\E[1;5Q, 97 | kf27=\E[1;5R, 98 | kf28=\E[1;5S, 99 | kf29=\E[15;5~, 100 | kf3=\EOR, 101 | kf30=\E[17;5~, 102 | kf31=\E[18;5~, 103 | kf32=\E[19;5~, 104 | kf33=\E[20;5~, 105 | kf34=\E[21;5~, 106 | kf35=\E[23;5~, 107 | kf36=\E[24;5~, 108 | kf37=\E[1;6P, 109 | kf38=\E[1;6Q, 110 | kf39=\E[1;6R, 111 | kf4=\EOS, 112 | kf40=\E[1;6S, 113 | kf41=\E[15;6~, 114 | kf42=\E[17;6~, 115 | kf43=\E[18;6~, 116 | kf44=\E[19;6~, 117 | kf45=\E[20;6~, 118 | kf46=\E[21;6~, 119 | kf47=\E[23;6~, 120 | kf48=\E[24;6~, 121 | kf49=\E[1;3P, 122 | kf5=\E[15~, 123 | kf50=\E[1;3Q, 124 | kf51=\E[1;3R, 125 | kf52=\E[1;3S, 126 | kf53=\E[15;3~, 127 | kf54=\E[17;3~, 128 | kf55=\E[18;3~, 129 | kf56=\E[19;3~, 130 | kf57=\E[20;3~, 131 | kf58=\E[21;3~, 132 | kf59=\E[23;3~, 133 | kf6=\E[17~, 134 | kf60=\E[24;3~, 135 | kf61=\E[1;4P, 136 | kf62=\E[1;4Q, 137 | kf63=\E[1;4R, 138 | kf7=\E[18~, 139 | kf8=\E[19~, 140 | kf9=\E[20~, 141 | khome=\EOH, 142 | kich1=\E[2~, 143 | kind=\E[1;2B, 144 | kmous=\E[M, 145 | knp=\E[6~, 146 | kpp=\E[5~, 147 | kri=\E[1;2A, 148 | mc0=\E[i, 149 | mc4=\E[4i, 150 | mc5=\E[5i, 151 | meml=\El, 152 | memu=\Em, 153 | oc=\E]104\007, 154 | op=\E[39;49m, 155 | rc=\E8, 156 | rep=%p1%c\E[%p2%{1}%-%db, 157 | rev=\E[7m, 158 | ri=\EM, 159 | rin=\E[%p1%dT, 160 | ritm=\E[23m, 161 | rmacs=\E(B, 162 | rmam=\E[?7l, 163 | rmcup=\E[?1049l\E[23;0;0t, 164 | rmir=\E[4l, 165 | rmkx=\E[?1l\E>, 166 | rmm=\E[?1034l, 167 | rmso=\E[27m, 168 | rmul=\E[24m, 169 | rs1=\Ec\E]104\007, 170 | rs2=\E[!p\E[?3;4l\E[4l\E>, 171 | sc=\E7, 172 | setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m, 173 | setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m, 174 | sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m, 175 | sgr0=\E(B\E[m, 176 | sitm=\E[3m, 177 | smacs=\E(0, 178 | smam=\E[?7h, 179 | smcup=\E[?1049h\E[22;0;0t, 180 | smir=\E[4h, 181 | smkx=\E[?1h\E=, 182 | smm=\E[?1034h, 183 | smso=\E[7m, 184 | smul=\E[4m, 185 | tbc=\E[3g, 186 | u6=\E[%i%d;%dR, 187 | u7=\E[6n, 188 | u8=\E[?%[;0123456789]c, 189 | u9=\E[c, 190 | vpa=\E[%i%p1%dd, 191 | Cr=\E]112\007, 192 | Cs=\E]12;%p1%s\007, 193 | E3=\E[3J, 194 | Ms=\E]52;%p1%s;%p2%s\007, 195 | Se=\E[2 q, 196 | Ss=\E[%p1%d q, 197 | kDC3=\E[3;3~, 198 | kDC4=\E[3;4~, 199 | kDC5=\E[3;5~, 200 | kDC6=\E[3;6~, 201 | kDC7=\E[3;7~, 202 | kDN=\E[1;2B, 203 | kDN3=\E[1;3B, 204 | kDN4=\E[1;4B, 205 | kDN5=\E[1;5B, 206 | kDN6=\E[1;6B, 207 | kDN7=\E[1;7B, 208 | kEND3=\E[1;3F, 209 | kEND4=\E[1;4F, 210 | kEND5=\E[1;5F, 211 | kEND6=\E[1;6F, 212 | kEND7=\E[1;7F, 213 | kHOM3=\E[1;3H, 214 | kHOM4=\E[1;4H, 215 | kHOM5=\E[1;5H, 216 | kHOM6=\E[1;6H, 217 | kHOM7=\E[1;7H, 218 | kIC3=\E[2;3~, 219 | kIC4=\E[2;4~, 220 | kIC5=\E[2;5~, 221 | kIC6=\E[2;6~, 222 | kIC7=\E[2;7~, 223 | kLFT3=\E[1;3D, 224 | kLFT4=\E[1;4D, 225 | kLFT5=\E[1;5D, 226 | kLFT6=\E[1;6D, 227 | kLFT7=\E[1;7D, 228 | kNXT3=\E[6;3~, 229 | kNXT4=\E[6;4~, 230 | kNXT5=\E[6;5~, 231 | kNXT6=\E[6;6~, 232 | kNXT7=\E[6;7~, 233 | kPRV3=\E[5;3~, 234 | kPRV4=\E[5;4~, 235 | kPRV5=\E[5;5~, 236 | kPRV6=\E[5;6~, 237 | kPRV7=\E[5;7~, 238 | kRIT3=\E[1;3C, 239 | kRIT4=\E[1;4C, 240 | kRIT5=\E[1;5C, 241 | kRIT6=\E[1;6C, 242 | kRIT7=\E[1;7C, 243 | kUP=\E[1;2A, 244 | kUP3=\E[1;3A, 245 | kUP4=\E[1;4A, 246 | kUP5=\E[1;5A, 247 | kUP6=\E[1;6A, 248 | kUP7=\E[1;7A, 249 | rmxx=\E[29m, 250 | smxx=\E[9m, 251 | -------------------------------------------------------------------------------- /config/kitty.ini: -------------------------------------------------------------------------------- 1 | [ConfigBox] 2 | height=21 3 | filter=yes 4 | [KiTTY] 5 | backgroundimage=no 6 | capslock=no 7 | conf=yes 8 | cygterm=yes 9 | icon=no 10 | paste=no 11 | print=no 12 | scriptfilefilter=All files (*.*)|*.* 13 | size=no 14 | shortcuts=yes 15 | mouseshortcuts=yes 16 | hyperlink=no 17 | transparency=no 18 | ctrltab=yes 19 | maxblinkingtime=5 20 | savemode=dir 21 | slidedelay=0 22 | wintitle=yes 23 | zmodem=yes 24 | [Print] 25 | height=100 26 | maxline=60 27 | maxchar=85 28 | [Folder] 29 | [Launcher] 30 | reload=yes 31 | [Shortcuts] 32 | list={SHIFT}{ALT}{UP} {SHIFT}{ALT}{DOWN} {SHIFT}{ALT}{RIGHT} {SHIFT}{ALT}{LEFT} {CONTROL}{ALT}{UP} {CONTROL}{ALT}{DOWN} {CONTROL}{ALT}{RIGHT} {CONTROL}{ALT}{LEFT} {SHIFT}{CONTROL}{ALT}{UP} {SHIFT}{CONTROL}{ALT}{DOWN} {SHIFT}{CONTROL}{ALT}{RIGHT} {SHIFT}{CONTROL}{ALT}{LEFT} {ALT}{INS} {SHIFT}{ALT}{INS} {CONTROL}{INS} {SHIFT}{CONTROL}{INS} {ALT}{CONTROL}{INS} {SHIFT}{ALT}{CONTROL}{INS} {SHIFT}{DEL} {ALT}{DEL} {SHIFT}{ALT}{DEL} {CONTROL}{DEL} {SHIFT}{CONTROL}{DEL} {SHIFT}{ALT}{CONTROL}{DEL} {SHIFT}{HOME} {ALT}{HOME} {SHIFT}{ALT}{HOME} {CONTROL}{HOME} {SHIFT}{CONTROL}{HOME} {ALT}{CONTROL}{HOME} {SHIFT}{ALT}{CONTROL}{HOME} {SHIFT}{END} {ALT}{END} {SHIFT}{ALT}{END} {CONTROL}{END} {SHIFT}{CONTROL}{END} {ALT}{CONTROL}{END} {SHIFT}{ALT}{CONTROL}{END} {ALT}{PRIOR} {SHIFT}{ALT}{PRIOR} {CONTROL}{PRIOR} {SHIFT}{CONTROL}{PRIOR} {ALT}{CONTROL}{PRIOR} {SHIFT}{ALT}{CONTROL}{PRIOR} {ALT}{NEXT} {SHIFT}{ALT}{NEXT} {CONTROL}{NEXT} {SHIFT}{CONTROL}{NEXT} {ALT}{CONTROL}{NEXT} {SHIFT}{ALT}{CONTROL}{NEXT} {SHIFT}{F1} {ALT}{F1} {SHIFT}{ALT}{F1} {CONTROL}{F1} {SHIFT}{CONTROL}{F1} {ALT}{CONTROL}{F1} {SHIFT}{ALT}{CONTROL}{F1} {SHIFT}{F2} {ALT}{F2} {SHIFT}{ALT}{F2} {CONTROL}{F2} {SHIFT}{CONTROL}{F2} {ALT}{CONTROL}{F2} {SHIFT}{ALT}{CONTROL}{F2} {SHIFT}{F3} {ALT}{F3} {SHIFT}{ALT}{F3} {CONTROL}{F3} {SHIFT}{CONTROL}{F3} {ALT}{CONTROL}{F3} {SHIFT}{ALT}{CONTROL}{F3} {SHIFT}{F4} {SHIFT}{ALT}{F4} {CONTROL}{F4} {SHIFT}{CONTROL}{F4} {ALT}{CONTROL}{F4} {SHIFT}{ALT}{CONTROL}{F4} {SHIFT}{F5} {ALT}{F5} {SHIFT}{ALT}{F5} {CONTROL}{F5} {SHIFT}{CONTROL}{F5} {ALT}{CONTROL}{F5} {SHIFT}{ALT}{CONTROL}{F5} {ALT}{F6} {SHIFT}{ALT}{F6} {CONTROL}{F6} {SHIFT}{CONTROL}{F6} {ALT}{CONTROL}{F6} {SHIFT}{ALT}{CONTROL}{F6} {SHIFT}{F7} {ALT}{F7} {SHIFT}{ALT}{F7} {CONTROL}{F7} {SHIFT}{CONTROL}{F7} {ALT}{CONTROL}{F7} {SHIFT}{ALT}{CONTROL}{F7} {ALT}{F8} {SHIFT}{ALT}{F8} {CONTROL}{F8} {SHIFT}{CONTROL}{F8} {ALT}{CONTROL}{F8} {SHIFT}{ALT}{CONTROL}{F8} {SHIFT}{F9} {ALT}{F9} {SHIFT}{ALT}{F9} {CONTROL}{F9} {SHIFT}{CONTROL}{F9} {ALT}{CONTROL}{F9} {SHIFT}{ALT}{CONTROL}{F9} {SHIFT}{F10} {ALT}{F10} {SHIFT}{ALT}{F10} {CONTROL}{F10} {SHIFT}{CONTROL}{F10} {ALT}{CONTROL}{F10} {SHIFT}{ALT}{CONTROL}{F10} {SHIFT}{F11} {ALT}{F11} {SHIFT}{ALT}{F11} {CONTROL}{F11} {SHIFT}{CONTROL}{F11} {ALT}{CONTROL}{F11} {SHIFT}{ALT}{CONTROL}{F11} {SHIFT}{F12} {ALT}{F12} {SHIFT}{ALT}{F12} {CONTROL}{F12} {SHIFT}{CONTROL}{F12} {ALT}{CONTROL}{F12} {SHIFT}{ALT}{CONTROL}{F12} 33 | {SHIFT}{ALT}{UP}=\x1b[1;4A\ 34 | {SHIFT}{ALT}{DOWN}=\x1b[1;4B\ 35 | {SHIFT}{ALT}{RIGHT}=\x1b[1;4C\ 36 | {SHIFT}{ALT}{LEFT}=\x1b[1;4D\ 37 | {CONTROL}{ALT}{UP}=\x1b[1;7A\ 38 | {CONTROL}{ALT}{DOWN}=\x1b[1;7B\ 39 | {CONTROL}{ALT}{RIGHT}=\x1b[1;7C\ 40 | {CONTROL}{ALT}{LEFT}=\x1b[1;7D\ 41 | {SHIFT}{CONTROL}{ALT}{UP}=\x1b[1;8A\ 42 | {SHIFT}{CONTROL}{ALT}{DOWN}=\x1b[1;8B\ 43 | {SHIFT}{CONTROL}{ALT}{RIGHT}=\x1b[1;8C\ 44 | {SHIFT}{CONTROL}{ALT}{LEFT}=\x1b[1;8D\ 45 | {ALT}{INS}=\x1b[2;3~\ 46 | {SHIFT}{ALT}{INS}=\x1b[2;4~\ 47 | {CONTROL}{INS}=\x1b[2;5~\ 48 | {SHIFT}{CONTROL}{INS}=\x1b[2;6~\ 49 | {ALT}{CONTROL}{INS}=\x1b[2;7~\ 50 | {SHIFT}{ALT}{CONTROL}{INS}=\x1b[2;8~\ 51 | {SHIFT}{DEL}=\x1b[3;2~\ 52 | {ALT}{DEL}=\x1b[3;3~\ 53 | {SHIFT}{ALT}{DEL}=\x1b[3;4~\ 54 | {CONTROL}{DEL}=\x1b[3;5~\ 55 | {SHIFT}{CONTROL}{DEL}=\x1b[3;6~\ 56 | {SHIFT}{ALT}{CONTROL}{DEL}=\x1b[3;8~\ 57 | {SHIFT}{HOME}=\x1b[1;2H\ 58 | {ALT}{HOME}=\x1b[1;3H\ 59 | {SHIFT}{ALT}{HOME}=\x1b[1;4H\ 60 | {CONTROL}{HOME}=\x1b[1;5H\ 61 | {SHIFT}{CONTROL}{HOME}=\x1b[1;6H\ 62 | {ALT}{CONTROL}{HOME}=\x1b[1;7H\ 63 | {SHIFT}{ALT}{CONTROL}{HOME}=\x1b[1;8H\ 64 | {SHIFT}{END}=\x1b[1;2F\ 65 | {ALT}{END}=\x1b[1;3F\ 66 | {SHIFT}{ALT}{END}=\x1b[1;4F\ 67 | {CONTROL}{END}=\x1b[1;5F\ 68 | {SHIFT}{CONTROL}{END}=\x1b[1;6F\ 69 | {ALT}{CONTROL}{END}=\x1b[1;7F\ 70 | {SHIFT}{ALT}{CONTROL}{END}=\x1b[1;8F\ 71 | {ALT}{PRIOR}=\x1b[5;3~\ 72 | {SHIFT}{ALT}{PRIOR}=\x1b[5;4~\ 73 | {CONTROL}{PRIOR}=\x1b[5;5~\ 74 | {SHIFT}{CONTROL}{PRIOR}=\x1b[5;6~\ 75 | {ALT}{CONTROL}{PRIOR}=\x1b[5;7~\ 76 | {SHIFT}{ALT}{CONTROL}{PRIOR}=\x1b[5;8~\ 77 | {ALT}{NEXT}=\x1b[6;3~\ 78 | {SHIFT}{ALT}{NEXT}=\x1b[6;4~\ 79 | {CONTROL}{NEXT}=\x1b[6;5~\ 80 | {SHIFT}{CONTROL}{NEXT}=\x1b[6;6~\ 81 | {ALT}{CONTROL}{NEXT}=\x1b[6;7~\ 82 | {SHIFT}{ALT}{CONTROL}{NEXT}=\x1b[6;8~\ 83 | {SHIFT}{F1}=\ 84 | {ALT}{F1}=\ 85 | {SHIFT}{ALT}{F1}=\ 86 | {CONTROL}{F1}=\ 87 | {SHIFT}{CONTROL}{F1}=\ 88 | {ALT}{CONTROL}{F1}=\ 89 | {SHIFT}{ALT}{CONTROL}{F1}=\ 90 | {SHIFT}{F2}=\ 91 | {ALT}{F2}=\ 92 | {SHIFT}{ALT}{F2}=\ 93 | {CONTROL}{F2}=\ 94 | {SHIFT}{CONTROL}{F2}=\ 95 | {ALT}{CONTROL}{F2}=\ 96 | {SHIFT}{ALT}{CONTROL}{F2}=\ 97 | {SHIFT}{F3}=\ 98 | {ALT}{F3}=\ 99 | {SHIFT}{ALT}{F3}=\ 100 | {CONTROL}{F3}=\ 101 | {SHIFT}{CONTROL}{F3}=\ 102 | {ALT}{CONTROL}{F3}=\ 103 | {SHIFT}{ALT}{CONTROL}{F3}=\ 104 | {SHIFT}{F4}=\ 105 | {SHIFT}{ALT}{F4}=\ 106 | {CONTROL}{F4}=\ 107 | {SHIFT}{CONTROL}{F4}=\ 108 | {ALT}{CONTROL}{F4}=\ 109 | {SHIFT}{ALT}{CONTROL}{F4}=\ 110 | {SHIFT}{F5}=\ 111 | {ALT}{F5}=\ 112 | {SHIFT}{ALT}{F5}=\ 113 | {CONTROL}{F5}=\ 114 | {SHIFT}{CONTROL}{F5}=\ 115 | {ALT}{CONTROL}{F5}=\ 116 | {SHIFT}{ALT}{CONTROL}{F5}=\ 117 | {ALT}{F6}=\ 118 | {SHIFT}{ALT}{F6}=\ 119 | {CONTROL}{F6}=\ 120 | {SHIFT}{CONTROL}{F6}=\ 121 | {ALT}{CONTROL}{F6}=\ 122 | {SHIFT}{ALT}{CONTROL}{F6}=\ 123 | {SHIFT}{F7}=\ 124 | {ALT}{F7}=\ 125 | {SHIFT}{ALT}{F7}=\ 126 | {CONTROL}{F7}=\ 127 | {SHIFT}{CONTROL}{F7}=\ 128 | {ALT}{CONTROL}{F7}=\ 129 | {SHIFT}{ALT}{CONTROL}{F7}=\ 130 | {ALT}{F8}=\ 131 | {SHIFT}{ALT}{F8}=\ 132 | {CONTROL}{F8}=\ 133 | {SHIFT}{CONTROL}{F8}=\ 134 | {ALT}{CONTROL}{F8}=\ 135 | {SHIFT}{ALT}{CONTROL}{F8}=\ 136 | {SHIFT}{F9}=\ 137 | {ALT}{F9}=\ 138 | {SHIFT}{ALT}{F9}=\ 139 | {CONTROL}{F9}=\ 140 | {SHIFT}{CONTROL}{F9}=\ 141 | {ALT}{CONTROL}{F9}=\ 142 | {SHIFT}{ALT}{CONTROL}{F9}=\ 143 | {SHIFT}{F10}=\ 144 | {ALT}{F10}=\ 145 | {SHIFT}{ALT}{F10}=\ 146 | {CONTROL}{F10}=\ 147 | {SHIFT}{CONTROL}{F10}=\ 148 | {ALT}{CONTROL}{F10}=\ 149 | {SHIFT}{ALT}{CONTROL}{F10}=\ 150 | {SHIFT}{F11}=\ 151 | {ALT}{F11}=\ 152 | {SHIFT}{ALT}{F11}=\ 153 | {CONTROL}{F11}=\ 154 | {SHIFT}{CONTROL}{F11}=\ 155 | {ALT}{CONTROL}{F11}=\ 156 | {SHIFT}{ALT}{CONTROL}{F11}=\ 157 | {SHIFT}{F12}=\ 158 | {ALT}{F12}=\ 159 | {SHIFT}{ALT}{F12}=\ 160 | {CONTROL}{F12}=\ 161 | {SHIFT}{CONTROL}{F12}=\ 162 | {ALT}{CONTROL}{F12}=\ 163 | {SHIFT}{ALT}{CONTROL}{F12}=\ -------------------------------------------------------------------------------- /docs/kitty-config.md: -------------------------------------------------------------------------------- 1 | # KiTTY configuration 2 | ### kitty.ini 3 | Here we override wrong or missing key sequences sent to the server by utilizing KiTTY's extra functoinality of user-bindable key actions. These also override standard built-in functions of the program (priority is: user shortcut > terminfo definition > built-in function). Only necessary keys are specified. 4 | `\x1b` is hex for escape sequence (most commonly `\E` or `\e` in linux configuration files). All key sequence definitions must end with `\`. 5 | Place the following block at the end of your `kitty.ini` file. This sets up proper key sequences to be sent to the server and cleans up messy key sequences by unbinding them. Make sure there are no extra whitespaces present (especially at the end of list argument), as they will be interpreted as part of the key sequence. This part is necessary for modifiers with function keys to work properly. 6 | If you don't know what you're looking at, copy it as-is. 7 | 8 | ``` 9 | [Shortcuts] 10 | list={SHIFT}{ALT}{UP} {SHIFT}{ALT}{DOWN} {SHIFT}{ALT}{RIGHT} {SHIFT}{ALT}{LEFT} {CONTROL}{ALT}{UP} {CONTROL}{ALT}{DOWN} {CONTROL}{ALT}{RIGHT} {CONTROL}{ALT}{LEFT} {SHIFT}{CONTROL}{ALT}{UP} {SHIFT}{CONTROL}{ALT}{DOWN} {SHIFT}{CONTROL}{ALT}{RIGHT} {SHIFT}{CONTROL}{ALT}{LEFT} {ALT}{INS} {SHIFT}{ALT}{INS} {CONTROL}{INS} {SHIFT}{CONTROL}{INS} {ALT}{CONTROL}{INS} {SHIFT}{ALT}{CONTROL}{INS} {SHIFT}{DEL} {ALT}{DEL} {SHIFT}{ALT}{DEL} {CONTROL}{DEL} {SHIFT}{CONTROL}{DEL} {SHIFT}{ALT}{CONTROL}{DEL} {SHIFT}{HOME} {ALT}{HOME} {SHIFT}{ALT}{HOME} {CONTROL}{HOME} {SHIFT}{CONTROL}{HOME} {ALT}{CONTROL}{HOME} {SHIFT}{ALT}{CONTROL}{HOME} {SHIFT}{END} {ALT}{END} {SHIFT}{ALT}{END} {CONTROL}{END} {SHIFT}{CONTROL}{END} {ALT}{CONTROL}{END} {SHIFT}{ALT}{CONTROL}{END} {ALT}{PRIOR} {SHIFT}{ALT}{PRIOR} {CONTROL}{PRIOR} {SHIFT}{CONTROL}{PRIOR} {ALT}{CONTROL}{PRIOR} {SHIFT}{ALT}{CONTROL}{PRIOR} {ALT}{NEXT} {SHIFT}{ALT}{NEXT} {CONTROL}{NEXT} {SHIFT}{CONTROL}{NEXT} {ALT}{CONTROL}{NEXT} {SHIFT}{ALT}{CONTROL}{NEXT} {SHIFT}{F1} {ALT}{F1} {SHIFT}{ALT}{F1} {CONTROL}{F1} {SHIFT}{CONTROL}{F1} {ALT}{CONTROL}{F1} {SHIFT}{ALT}{CONTROL}{F1} {SHIFT}{F2} {ALT}{F2} {SHIFT}{ALT}{F2} {CONTROL}{F2} {SHIFT}{CONTROL}{F2} {ALT}{CONTROL}{F2} {SHIFT}{ALT}{CONTROL}{F2} {SHIFT}{F3} {ALT}{F3} {SHIFT}{ALT}{F3} {CONTROL}{F3} {SHIFT}{CONTROL}{F3} {ALT}{CONTROL}{F3} {SHIFT}{ALT}{CONTROL}{F3} {SHIFT}{F4} {SHIFT}{ALT}{F4} {CONTROL}{F4} {SHIFT}{CONTROL}{F4} {ALT}{CONTROL}{F4} {SHIFT}{ALT}{CONTROL}{F4} {SHIFT}{F5} {ALT}{F5} {SHIFT}{ALT}{F5} {CONTROL}{F5} {SHIFT}{CONTROL}{F5} {ALT}{CONTROL}{F5} {SHIFT}{ALT}{CONTROL}{F5} {ALT}{F6} {SHIFT}{ALT}{F6} {CONTROL}{F6} {SHIFT}{CONTROL}{F6} {ALT}{CONTROL}{F6} {SHIFT}{ALT}{CONTROL}{F6} {SHIFT}{F7} {ALT}{F7} {SHIFT}{ALT}{F7} {CONTROL}{F7} {SHIFT}{CONTROL}{F7} {ALT}{CONTROL}{F7} {SHIFT}{ALT}{CONTROL}{F7} {ALT}{F8} {SHIFT}{ALT}{F8} {CONTROL}{F8} {SHIFT}{CONTROL}{F8} {ALT}{CONTROL}{F8} {SHIFT}{ALT}{CONTROL}{F8} {SHIFT}{F9} {ALT}{F9} {SHIFT}{ALT}{F9} {CONTROL}{F9} {SHIFT}{CONTROL}{F9} {ALT}{CONTROL}{F9} {SHIFT}{ALT}{CONTROL}{F9} {SHIFT}{F10} {ALT}{F10} {SHIFT}{ALT}{F10} {CONTROL}{F10} {SHIFT}{CONTROL}{F10} {ALT}{CONTROL}{F10} {SHIFT}{ALT}{CONTROL}{F10} {SHIFT}{F11} {ALT}{F11} {SHIFT}{ALT}{F11} {CONTROL}{F11} {SHIFT}{CONTROL}{F11} {ALT}{CONTROL}{F11} {SHIFT}{ALT}{CONTROL}{F11} {SHIFT}{F12} {ALT}{F12} {SHIFT}{ALT}{F12} {CONTROL}{F12} {SHIFT}{CONTROL}{F12} {ALT}{CONTROL}{F12} {SHIFT}{ALT}{CONTROL}{F12} 11 | {SHIFT}{ALT}{UP}=\x1b[1;4A\ 12 | {SHIFT}{ALT}{DOWN}=\x1b[1;4B\ 13 | {SHIFT}{ALT}{RIGHT}=\x1b[1;4C\ 14 | {SHIFT}{ALT}{LEFT}=\x1b[1;4D\ 15 | {CONTROL}{ALT}{UP}=\x1b[1;7A\ 16 | {CONTROL}{ALT}{DOWN}=\x1b[1;7B\ 17 | {CONTROL}{ALT}{RIGHT}=\x1b[1;7C\ 18 | {CONTROL}{ALT}{LEFT}=\x1b[1;7D\ 19 | {SHIFT}{CONTROL}{ALT}{UP}=\x1b[1;8A\ 20 | {SHIFT}{CONTROL}{ALT}{DOWN}=\x1b[1;8B\ 21 | {SHIFT}{CONTROL}{ALT}{RIGHT}=\x1b[1;8C\ 22 | {SHIFT}{CONTROL}{ALT}{LEFT}=\x1b[1;8D\ 23 | {ALT}{INS}=\x1b[2;3~\ 24 | {SHIFT}{ALT}{INS}=\x1b[2;4~\ 25 | {CONTROL}{INS}=\x1b[2;5~\ 26 | {SHIFT}{CONTROL}{INS}=\x1b[2;6~\ 27 | {ALT}{CONTROL}{INS}=\x1b[2;7~\ 28 | {SHIFT}{ALT}{CONTROL}{INS}=\x1b[2;8~\ 29 | {SHIFT}{DEL}=\x1b[3;2~\ 30 | {ALT}{DEL}=\x1b[3;3~\ 31 | {SHIFT}{ALT}{DEL}=\x1b[3;4~\ 32 | {CONTROL}{DEL}=\x1b[3;5~\ 33 | {SHIFT}{CONTROL}{DEL}=\x1b[3;6~\ 34 | {SHIFT}{ALT}{CONTROL}{DEL}=\x1b[3;8~\ 35 | {SHIFT}{HOME}=\x1b[1;2H\ 36 | {ALT}{HOME}=\x1b[1;3H\ 37 | {SHIFT}{ALT}{HOME}=\x1b[1;4H\ 38 | {CONTROL}{HOME}=\x1b[1;5H\ 39 | {SHIFT}{CONTROL}{HOME}=\x1b[1;6H\ 40 | {ALT}{CONTROL}{HOME}=\x1b[1;7H\ 41 | {SHIFT}{ALT}{CONTROL}{HOME}=\x1b[1;8H\ 42 | {SHIFT}{END}=\x1b[1;2F\ 43 | {ALT}{END}=\x1b[1;3F\ 44 | {SHIFT}{ALT}{END}=\x1b[1;4F\ 45 | {CONTROL}{END}=\x1b[1;5F\ 46 | {SHIFT}{CONTROL}{END}=\x1b[1;6F\ 47 | {ALT}{CONTROL}{END}=\x1b[1;7F\ 48 | {SHIFT}{ALT}{CONTROL}{END}=\x1b[1;8F\ 49 | {ALT}{PRIOR}=\x1b[5;3~\ 50 | {SHIFT}{ALT}{PRIOR}=\x1b[5;4~\ 51 | {CONTROL}{PRIOR}=\x1b[5;5~\ 52 | {SHIFT}{CONTROL}{PRIOR}=\x1b[5;6~\ 53 | {ALT}{CONTROL}{PRIOR}=\x1b[5;7~\ 54 | {SHIFT}{ALT}{CONTROL}{PRIOR}=\x1b[5;8~\ 55 | {ALT}{NEXT}=\x1b[6;3~\ 56 | {SHIFT}{ALT}{NEXT}=\x1b[6;4~\ 57 | {CONTROL}{NEXT}=\x1b[6;5~\ 58 | {SHIFT}{CONTROL}{NEXT}=\x1b[6;6~\ 59 | {ALT}{CONTROL}{NEXT}=\x1b[6;7~\ 60 | {SHIFT}{ALT}{CONTROL}{NEXT}=\x1b[6;8~\ 61 | {SHIFT}{F1}=\ 62 | {ALT}{F1}=\ 63 | {SHIFT}{ALT}{F1}=\ 64 | {CONTROL}{F1}=\ 65 | {SHIFT}{CONTROL}{F1}=\ 66 | {ALT}{CONTROL}{F1}=\ 67 | {SHIFT}{ALT}{CONTROL}{F1}=\ 68 | {SHIFT}{F2}=\ 69 | {ALT}{F2}=\ 70 | {SHIFT}{ALT}{F2}=\ 71 | {CONTROL}{F2}=\ 72 | {SHIFT}{CONTROL}{F2}=\ 73 | {ALT}{CONTROL}{F2}=\ 74 | {SHIFT}{ALT}{CONTROL}{F2}=\ 75 | {SHIFT}{F3}=\ 76 | {ALT}{F3}=\ 77 | {SHIFT}{ALT}{F3}=\ 78 | {CONTROL}{F3}=\ 79 | {SHIFT}{CONTROL}{F3}=\ 80 | {ALT}{CONTROL}{F3}=\ 81 | {SHIFT}{ALT}{CONTROL}{F3}=\ 82 | {SHIFT}{F4}=\ 83 | {SHIFT}{ALT}{F4}=\ 84 | {CONTROL}{F4}=\ 85 | {SHIFT}{CONTROL}{F4}=\ 86 | {ALT}{CONTROL}{F4}=\ 87 | {SHIFT}{ALT}{CONTROL}{F4}=\ 88 | {SHIFT}{F5}=\ 89 | {ALT}{F5}=\ 90 | {SHIFT}{ALT}{F5}=\ 91 | {CONTROL}{F5}=\ 92 | {SHIFT}{CONTROL}{F5}=\ 93 | {ALT}{CONTROL}{F5}=\ 94 | {SHIFT}{ALT}{CONTROL}{F5}=\ 95 | {ALT}{F6}=\ 96 | {SHIFT}{ALT}{F6}=\ 97 | {CONTROL}{F6}=\ 98 | {SHIFT}{CONTROL}{F6}=\ 99 | {ALT}{CONTROL}{F6}=\ 100 | {SHIFT}{ALT}{CONTROL}{F6}=\ 101 | {SHIFT}{F7}=\ 102 | {ALT}{F7}=\ 103 | {SHIFT}{ALT}{F7}=\ 104 | {CONTROL}{F7}=\ 105 | {SHIFT}{CONTROL}{F7}=\ 106 | {ALT}{CONTROL}{F7}=\ 107 | {SHIFT}{ALT}{CONTROL}{F7}=\ 108 | {ALT}{F8}=\ 109 | {SHIFT}{ALT}{F8}=\ 110 | {CONTROL}{F8}=\ 111 | {SHIFT}{CONTROL}{F8}=\ 112 | {ALT}{CONTROL}{F8}=\ 113 | {SHIFT}{ALT}{CONTROL}{F8}=\ 114 | {SHIFT}{F9}=\ 115 | {ALT}{F9}=\ 116 | {SHIFT}{ALT}{F9}=\ 117 | {CONTROL}{F9}=\ 118 | {SHIFT}{CONTROL}{F9}=\ 119 | {ALT}{CONTROL}{F9}=\ 120 | {SHIFT}{ALT}{CONTROL}{F9}=\ 121 | {SHIFT}{F10}=\ 122 | {ALT}{F10}=\ 123 | {SHIFT}{ALT}{F10}=\ 124 | {CONTROL}{F10}=\ 125 | {SHIFT}{CONTROL}{F10}=\ 126 | {ALT}{CONTROL}{F10}=\ 127 | {SHIFT}{ALT}{CONTROL}{F10}=\ 128 | {SHIFT}{F11}=\ 129 | {ALT}{F11}=\ 130 | {SHIFT}{ALT}{F11}=\ 131 | {CONTROL}{F11}=\ 132 | {SHIFT}{CONTROL}{F11}=\ 133 | {ALT}{CONTROL}{F11}=\ 134 | {SHIFT}{ALT}{CONTROL}{F11}=\ 135 | {SHIFT}{F12}=\ 136 | {ALT}{F12}=\ 137 | {SHIFT}{ALT}{F12}=\ 138 | {CONTROL}{F12}=\ 139 | {SHIFT}{CONTROL}{F12}=\ 140 | {ALT}{CONTROL}{F12}=\ 141 | {SHIFT}{ALT}{CONTROL}{F12}=\ 142 | ``` 143 | 144 | ### Session settings 145 | Start KiTTY, make sure to set correct terminal-type string, found in Connection -> Data -> Terminal-type string: `xterm-kitty-256color` 146 | Other optional settings include: 147 | Terminal -> Enable blinking text: on 148 | Terminal -> Features -> Disable xterm-style mouse reporting: on -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ### KiTTY-terminfo 2 | A bit better terminfo file for [KiTTY (a PuTTY fork)](http://www.9bis.net/kitty/), based off various documentation, comparison between xterm-256color, putty-256color, tmux-256color and on my own testing. This is supposed to: 3 | * fix arrows and function key problems 4 | * allow using modifier combinations with those keys 5 | * allow nice boxes 6 | * generally better represent capabilities of KiTTY than usual xterm\* or putty\* terminfo does 7 | 8 | Tested on debian. 9 | 10 | ### Installation 11 | This instruction assumes you have ncurses-term and libreadlinei6 or 7 installed (comes by default with standard Debian installation, and many other packages depend on it, so chances are you already have it installed). 12 | Clone the repository to your remote machine, then run: 13 | ``` 14 | sudo tic -x -o /lib/terminfo/ ~/kitty-terminfo/terminfo/xterm-kitty-256color.ti 15 | ``` 16 | Make sure the newly created file is /lib/terminfo/x/xterm-kitty-256color. 17 | 18 | Make sure your remote system locales are set to UTF-8, preferably en_US.UTF-8. 19 | 20 | Close KiTTY. Download this kitty.ini configuration file, and replace your original ini file with it; OR follow the information provided [here](docs/kitty-config.md). 21 | 22 | Reconnect to your remote machine, and verify you're running `xterm-kitty-256color`: 23 | ``` 24 | echo $TERM 25 | ``` 26 | 27 | Command: 28 | ``` 29 | infocmp -xT $TERM 30 | ``` 31 | should display slightly rearranged version of the .ti file you cloned at the beginning. 32 | **For complete installation, it is very important to take care of the settings in various files mentioned below, as the raw key sequences sent by KiTTY will be modified by default and/or overwritten by other software before they are interpreted by the program you are attempting to control.** 33 | 34 | ### Settings 35 | #### key sequences 36 | 37 | In the table are the key sequences KiTTY is sending when arrows and function keys are pressed (`\e` is escape character, displayed as `^[` when you see raw key sequence). These will come useful later on when rebinding your keys: 38 | 39 | | --- | up | down | right | left | 40 | | -----------------: | :-------: | :-------: | :-------: | :-------: | 41 | | rmkx mode | `\e[A` | `\e[B` | `\e[C` | `\e[D` | 42 | | smkx mode | `\eOA` | `\eOB` | `\eOC` | `\eOD` | 43 | | Shift | `\e[1;2A` | `\e[1;2B` | `\e[1;2C` | `\e[1;2D` | 44 | | Alt | `\e[1;3A` | `\e[1;3B` | `\e[1;3C` | `\e[1;3D` | 45 | | Shift + Alt | `\e[1;4A` | `\e[1;4B` | `\e[1;4C` | `\e[1;4D` | 46 | | Ctrl | `\e[1;5A` | `\e[1;5B` | `\e[1;5C` | `\e[1;5D` | 47 | | Shift + Ctrl | `\e[1;6A` | `\e[1;6B` | `\e[1;6C` | `\e[1;6D` | 48 | | Alt + Ctrl | `\e[1;7A` | `\e[1;7B` | `\e[1;7C` | `\e[1;7D` | 49 | | Shift + Alt + Ctrl | `\e[1;8A` | `\e[1;8B` | `\e[1;8C` | `\e[1;8D` | 50 | 51 | If you disable "application cursor mode" in KiTTY -> Terminal -> Features, KiTTY won't switch into smkx mode (emulation of numpad sequences in numpad's function mode [numlockoff] - this is done by the software as remote terminal has no access to the state of your hardware), which I do not recommend, as it is used by programs like vim. 52 | 53 | Function keys + their modifier sequences: 54 | 55 | | --- | insert | delete | home | end | page up | page down | 56 | | -----------------: | :-----: | :-----: | :-----: | :-----: | :-------: | :---: | 57 | | raw | `\e[2~` | `\e[3~` | `\e[1~` | `\e[4~` | `\e[5~` | `\e[6~` | 58 | | Shift | paste | `\e[3;2~` | `\e[1;2H` | `\e[1;2F` | scroll up | scroll down | 59 | | Alt | `\e[2;3~` | `\e[3;3~` | `\e[1;3H` | `\e[1;3F` | `\e[5;3~` | `\e[6;3~` | 60 | | Shift + Alt | `\e[2;4~` | `\e[3;4~` | `\e[1;4H` | `\e[1;4F` | `\e[5;4~` | `\e[6;4~` | 61 | | Ctrl | `\e[2;5~` | `\e[3;5~` | `\e[1;5H` | `\e[1;5F` | `\e[5;5~` | `\e[6;5~` | 62 | | Shift + Ctrl | `\e[2;6~` | `\e[3;6~` | `\e[1;6H` | `\e[1;6F` | `\e[5;6~` | `\e[6;6~` | 63 | | Alt + Ctrl | `\e[2;7~` | system | `\e[1;7H` | `\e[1;7F` | `\e[5;7~` | `\e[6;7~` | 64 | | Shift + Alt + Ctrl | `\e[2;8~` | `\e[3;8~` | `\e[1;8H` | `\e[1;8F` | `\e[5;8~` | `\e[6;8~` | 65 | 66 | F-keys sequences: 67 | 68 | | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | 69 | | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | :---: | 70 | | `\e[11~` | `\e[12~` | `\e[13~` | `\e[14~` | `\e[15~` | `\e[17~` | `\e[18~` | `\e[19~` | `\e[20~` | `\e[21~` | `\e[23~` | `\e[24~` | 71 | 72 | Modifiers for F-keys have been disabled due to terminfo file size constraints. 73 | 74 | #### `~/.inputrc` 75 | Make sure to get rid of any other default bindings present here, as they **will** interfere with your arrow keys in other programs. Entire file should look have this at minimum: 76 | ``` 77 | set input-meta on 78 | set output-meta on 79 | "\e[": skip-csi-sequence 80 | 81 | # PLACE YOUR BINDINGS HERE 82 | ``` 83 | And can be located either in `/etc/inputrc` or `~/.inputrc` ([docs](https://www.gnu.org/software/bash/manual/html_node/Readline-Init-File.html)). Keep in mind comments have to be on separate lines. `input-meta` and `output-meta` settings are necessary for this library to not mess with 8th-bit of the characters sent (affects shift key). `skip-csi-sequence` causes the function keys to produce no output into the buffer if they have no functionality bound to them. 84 | Use key sequences mentioned in tables above to set up commands you wish the terminal to recognize. Remember to replace `^[` with `\e`, copypasting them will not work. 85 | 86 | For example, settings below set shift+L/R arrow and ctrl+L/R arrow to skip words: 87 | ``` 88 | "\e[1;5C": forward-word 89 | "\e[1;5D": backward-word 90 | "\e[1;2C": forward-word 91 | "\e[1;2D": backward-word 92 | ``` 93 | Other bindable readline commands can be found [here](https://www.gnu.org/sotfware/bash/manual/html_node/Bindable-Readline-Commands.html). 94 | 95 | #### bash 96 | [Bash startup files](https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html) can also interfere with key sequences registered, or even change the terminfo you are using. For our purposes, it is best to get rid of any unwanted key sequence changes from those files and terminfo changes, if any are present. Specific files you need to browse through are `~/.bash_profile`, `~/.bash_login` and `~/.profile`. 97 | 98 | #### `~/.tmux.conf` 99 | Similar to readline library, you can create custom keybindings in `.tmux.conf` using modified keys. Examples: 100 | 101 | ``` 102 | # clear ctrl+arrows so they pass to the console and get interpreted as forward/backward-word 103 | unbind C-Left 104 | unbind C-Right 105 | unbind C-Up 106 | unbind C-Down 107 | 108 | # alt+shift+arrow resizing 1x (without prefix key) 109 | bind -n M-S-Down resize-pane -D 110 | bind -n M-S-Up resize-pane -U 111 | bind -n M-S-Left resize-pane -L 112 | bind -n M-S-Right resize-pane -R 113 | 114 | # alt+ctrl+arrow resizing 5x (without prefix key) 115 | bind -n C-M-Down resize-pane -D 5 116 | bind -n C-M-Up resize-pane -U 5 117 | bind -n C-M-Left resize-pane -L 5 118 | bind -n C-M-Right resize-pane -R 5 119 | 120 | # alt+arrow to switch panes (without prefix key) 121 | bind -n M-Left select-pane -L 122 | bind -n M-Right select-pane -R 123 | bind -n M-Up select-pane -U 124 | bind -n M-Down select-pane -D 125 | ``` 126 | 127 | I recommend also putting in this line: 128 | ``` 129 | set-window-option -g xterm-keys on 130 | ``` 131 | so the modified keys get passed to the underlying application (like vim). 132 | I recommend not setting any particular terminfo for tmux to use for the moment. Tmux seems to be doing just fine on its own picking up all the available keys and modes. If you need to specify some changes, use `terminal-overrides` option in `.tmux.conf`. 133 | Remember tmux has two different keybindings styles in copy mode - vi and emacs. See `man tmux` for more information on how to change this to your liking. 134 | 135 | #### `~/.vimrc` 136 | As with others, Vim also requires some additional configuration to get the most out of all the key combinations available. 137 | 138 | 139 | ### Known problems 140 | * shift+page up/down are a built-in KiTTY functions that control client-side scrollback. Using it in tmux or vim will scroll them out of view. Unfortunately, neither readline nor tmux have pure scrollback management commands (scrolling file in vim is not a problem though). In tmux, you have to enter copy mode to do that (refer to tmux keybindings listing to see which combinations it uses for you). If you know how to set this up without going through copy mode, let me know! 141 | * terminfo file size constraints prevented me from putting F-key modifiers in. If you know how to set up thse up via KEY_DEFINE during the initial handshake in KiTTY, let me know! 142 | 143 | ### Resources 144 | http://www.nesssoftware.com/home/mwc/manpage.php?page=terminfo 145 | https://www.freebsd.org/cgi/man.cgi?query=terminfo&sektion=5 146 | http://www.comptechdoc.org/os/linux/howlinuxworks/linux_hltermcommands.html 147 | http://invisible-island.net/ncurses/terminfo.src.html 148 | https://linux.die.net/man/5/terminfo 149 | http://pubs.opengroup.org/onlinepubs/7908799/xcurses/terminfo.html 150 | https://lists.gnu.org/archive/html/bug-ncurses/2016-01/msg00010.html 151 | -------------------------------------------------------------------------------- /misc/attrib: -------------------------------------------------------------------------------- 1 | # xterm-style terminfo for KiTTY (putty fork) with 256 colors 2 | # https://github.com/creidhne88/kitty-terminfo 3 | 4 | tic -x -o ~/.terminfo/ ~/kitty-terminfo/xterm-kitty-256color.ti && infocmp -xT $TERM 5 | 6 | echo -e "\Exxx" will output \n\r after execution 7 | printf %b "\Exxx" will not output anything extra after execution 8 | tput [command] parameters will send a sequence and use provided parameters 9 | 10 | X term - xterm-256color.ti 11 | |P utty putty-256color.ti 12 | ||T mux - tmux.ti 13 | |||K itty - chosen value for xterm-kitty-256color.ti 14 | ||||x - [E]cho verified, [S]ource verified, [O]ther verification performed, [D] Does not work 15 | ||||| [N]ot verified but works or verification not necessary, [V] to be verified, [?] Not able to verify or test 16 | ↓↓↓↓↓ 17 | 18 | # ---------- 19 | # TERMINAL INITIALIZATION 20 | # ---------- 21 | # user strings, unknown purpose 22 | XP K u6=\E[%i%d;%dR, 23 | XP K u7=\E[6n, 24 | X u8=\E[?1;2c, 25 | P K u8=\E[?6c, 26 | XP K u9=\E[c, 27 | 28 | # initialization strings for the terminal 29 | XPTK is= [no value] 30 | X is2=\E[!p\E[?3;4l\E[4l\E>, 31 | P K is2=\E7\E[r\E[m\E[?7h\E[?1;4;6l\E[4l\E8\E>\E]R, 32 | \E7 - save cursor 33 | \E[r - unknown, apparently reset scrolling margins? 34 | \E[m - first part of sgr0 clear all attributes \E[m\017 35 | \E[?7h - turn on automatic margins 36 | \E[?1;4;6l - unknown 37 | \E[4l - exit insert mode 38 | \E8 - restore cursor 39 | \E> - end part of exit application mode - \E[?1l\E> - so probably go to rmkx 40 | \E]R - reset all colors 41 | T is2=\E)0, 42 | XPTK is3= [no value] 43 | 44 | # path to program to run to initialize the terminal 45 | XPTK iprog= [no value] 46 | 47 | # name of a file containing long initialization strings 48 | XPTK if= [no value] 49 | 50 | # reset strings, same numeration and order as is1-3 51 | X K rs1=\Ec\E]104\007, 52 | X rs2=\E[!p\E[?3;4l\E[4l\E>, 53 | P K rs2=\E<\E["p\E[50;6"p\Ec\E[?3l\E]R\E[?1000l, 54 | T rs2=\Ec\E[?1000l\E[?25h, 55 | XPTK rs3= [no value found] 56 | 57 | # ---------- 58 | # LINE CONTROL AND MOVEMENTS 59 | # ---------- 60 | XPTKE il1=\E[L, terminal can open a new blank line before the line where the cursor is 61 | this is done only from the first position of a line. 62 | `tput cr; printf aaa; printf %b "\n"; printf bbb; printf %b "\n"; tput cuu1; tput il1; printf test;` 63 | 64 | XPTKE dl1=\E[M, terminal can delete the line which the cursor is on 65 | this is done only from the first position on the line to be deleted. 66 | `tput cr; printf aaa; printf %b "\n"; printf bbb; printf %b "\n"; tput cuu1; tput dl1;` 67 | XPTKN il=\E[%p1%dL, version of il1 which takes a single parameter and inserts that many lines 68 | XPTKN dl=\E[%p1%dM, version of dl1 which takes a single parameter and deletes that many lines 69 | 70 | XPTK csr=\E[%i%p1%d;%p2%dr, terminal has a settable scrolling region (like the vt100), takes top and bottom lines of the scrolling region 71 | XPTK? ind=\n, To scroll text up, program goes to the bottom left corner of the screen and send the ind (index) string. 72 | ? ind=^J, 73 | XPTK? ri=\EM, To scroll text down, program goes to the top left corner of the screen and sends the ri (reverse index) string. 74 | The strings ind and ri are undefined when not on their respective corners of the screen. 75 | XPTKE indn=\E[%p1%dS, scroll forward #1 lines (parameter) 76 | XP KE rin=\E[%p1%dT, scroll back #1 lines (parameter) 77 | 78 | XPTKE am, automatic margins (an automatic return and linefeed when the end of a line is reached), initially configurable in KiTTY 79 | https://www.ssh.com/ssh/putty/putty-manuals/0.68/Chapter4.html#config-autowrap 80 | XP KE smam=\E[?7h, turn on automatic margins, this mode will make terminal continue from the beginning of the sameafter you reach the end of it 81 | XP KE rmam=\E[?7l, turn off automatic margins 82 | 83 | X T D cols#80, Number of columns in a line, possibly doesn't work because putty resizes anyway 84 | X T D lines#24, Number of lines on screen or page 85 | XPTKE xenl, eat_newline_glitch - indicate terminal will ignore line-feed immediately after an `am` wrap (concept) 86 | KE bw, indicate that a `cub1` from the left edge will move to the right edge of the previous row 87 | `tput cub1; printf "a";` 88 | 89 | P KE nel=\r\n, moves to the first column of the next line, does not matter if the command clears the remainder of the current line 90 | T E nel=\EE, so if the terminal has cr and lf it may still be possible to craft a working nel out of one or both of them 91 | 92 | XPT lf= [no value] line feed? unsure 93 | KE lf=\n 94 | XPTKE cr=\r, carriage return 95 | D cr=^M, 96 | 97 | # If there are parameterized local motions (e.g., move n spaces to the right) these can be given as cud, cub, cuf, and cuu with a single parameter indicating how many spaces to move. 98 | XPTKE cuu=\E[%p1%dA, 99 | XPTKE cud=\E[%p1%dB, 100 | XPTKE cuf=\E[%p1%dC, 101 | XPTKE cub=\E[%p1%dD, 102 | 103 | # terminal needs to be in a special mode when running a program that uses above 4 capabilities, enter/exit/reset sequence 104 | X N smcup=\E[?1049h\E[22;0;0t, 105 | X N rmcup=\E[?1049l\E[23;0;0t, 106 | P E smcup=\E[?47h, 107 | P E rmcup=\E[2J\E[?47l, 108 | TKE smcup=\E[?1049h, 109 | TKE rmcup=\E[?1049l, 110 | XPTK? nrrmc= [no value] reset 111 | KiTTy does not seem to need to be in special mode for that, but those commands seem to save and restore the screen. Without those, quitting aptitude clears the screen instead of restoring what was on it before starting it. 112 | 113 | XP KE cup=\E[%i%p1%d;%p2%dH, move to row #1 columns #2 114 | 115 | XPTKE home=\E[H, fast way to home the cursor (to very upper left corner of screen) 116 | XPTK? ll= [no value] lower-left-hand corner of the screen 117 | 118 | XPTKV hpa=\E[%i%p1%dG, horizontal absolute cursor addressing 119 | XPTKV vpa=\E[%i%p1%dd, vertical absolute cursor addressing 120 | 121 | XPTKE sc=\E7, save cursor 122 | XPTKE rc=\E8, restore cursor 123 | 124 | # ---------- 125 | # extra functionality of a "status line" - ncurses implementation does not use any of these capabilities 126 | # These building-blocks allow access to the X titlebar and icon name as a status line. There are a few problems in using them in entries: 127 | # 128 | # a) tsl should have a parameter to denote the column on which to transfer to 129 | # the status line. 130 | # b) the "0" code for xterm updates both icon-title and window title. Some 131 | # window managers such as twm (and possibly window managers descended from 132 | # it such as tvtwm, ctwm, and vtwm) track windows by icon-name. Thus, you 133 | # don't want to mess with icon-name when using those window managers. 134 | # 135 | # The extension "TS" is preferable, because it does not accept a parameter. 136 | # However, if you are using a non-extended terminfo, "TS" is not visible. 137 | # source: http://invisible-island.net/ncurses/terminfo.src.html#tic-xterm 138 | # should be supported in KiTTY because it has settings to disable it in Terminal->Features "Disable remote-controlled window title changing" 139 | 140 | PT ? hs, Has an extra "status line" 141 | eslok, eslok pecifies that escape sequences, tabs, etc., work ordinarily in the status line. 142 | 143 | PTK? tsl=\E]0;, enter status line/icon-title/window-title (should save cursor position), 144 | tsl=\E]2;, variant to pacify twm-descended window managers (??) 145 | PTK? TS=\E]0;, 146 | TS=\E]2;, variant to pacify twm-descended window managers (??) 147 | 148 | PTK? fsl=^G, exit status line/icon-title/window-title (should restore cursor position) - 149 | XPTK? wsl= [no value] if the status line is different length than widh of terminal, specify in numeric capability wsl 150 | PTK? dsl=\E]0;\007, erase status line 151 | dsl=\E]2;\007, variant to pacify twm-descended window managers (??) 152 | all of these seem to not output garbage, but they don't work either. Leaving it in 153 | 154 | # ---------- 155 | # SCREEN CONTROL, DELETIONS 156 | # ---------- 157 | X E clear=\E[H\E[2J, clear its screen, leaving the cursor in the home position 158 | PTKE clear=\E[H\E[J, [both work the same, chosen the shorter version] 159 | X npc, indicate terminal does not have a pad character. Ncurses tests this anyway 160 | P KN xon, If the terminal uses xon/xoff handshaking for flow control (ex. it automatically emits ^S back to the host 161 | when its input buffers are close to full). This capability suppresses the emission of padding. 162 | Include padding info anyway so better decisions about relative cost can be made. 163 | XPTKD pad= [no value] specify this if other than a null (zero) character is needed as a pad. 164 | Only the first character of the pad string is used. 165 | 166 | XPTKE el1=\E[1K, clear from the beginning of the line to the current position inclusive, leaving the cursor where it is 167 | XPTKE el=\E[K, clear from the current position to the end of the line, leaving the cursor where it is 168 | XPTKE ed=\E[J, clear from the current position to the end of the display 169 | XPTK? smir=\E[4h, enter insert mode - this produces weird effects 170 | XPTK? rmir=\E[4l, exit insert mode 171 | XPTKN ich1= [no value] sequence needed to be sent just before sending the character to be inserted 172 | should not use both unless terminal actually requires both in combination 173 | X TKN ich=\E[%p1%d@, will repeat the effects of ich1 n times. 174 | XPTKN rmp= [no value] number of milliseconds padding between characters typed while not in insert mode 175 | 176 | XPTKN mir, Safe to move while in insert mode, affects only inserting speed. Some terminals may not use this due to inner workings 177 | 178 | XPTKN smdc= [no value] enter delete mode 179 | XPTKN rmdc= [no value] exit delete mode 180 | 181 | XPTKN dch1=\E[P, delete a single character 182 | XPTKN dch=\E[%p1%dP, delete n characters 183 | XP KN ech=\E[%p1%dX, erase n characters (equivalent to outputting n blanks without moving the cursor) 184 | X N rep=%p1%c\E[%p2%{1}%-%db, enter character specified by #1, #2 amount of times 185 | 186 | XPTKE E3=\E[3J, clear scrollback buffer, supported from 3.0+ kernel, same as xterm's erase-saved-lines 187 | controlled in kiTTY in Terminal->Features "Disable remote-controlled clearing of scrollback" 188 | XPTK bel=^G, bell (audible signal) 189 | 190 | XP D flash=\E[?5h$<100/>\E[?5l, flashing the screen to indicate an error quietly (a bell replacement) 191 | T D flash=\Eg, 192 | KE flash=\E[?5h\E[?5l, (\E[?5h reverses entire screen, \E[?5l switches it back - delay was ignored, xon?) 193 | # delay in milliseconds may appear anywhere in a string capability, enclosed in $<..> 194 | # normally, padding is advisory if the device has the xon capability; it is used for cost computation but does not trigger delays. 195 | # A '/' suffix indicates that the padding is mandatory and forces a delay of the given number of milliseconds even on devices for which xon is present to indicate flow control. 196 | # Delay statements seem to be unsupported in KiTTy no matter the set of terminfo flags. 197 | 198 | #screen/tmux program capabilities 199 | T ? G0, terminal can deal with ISO 2022 font selection sequences 200 | X TK AX, does understand ANSI set default fg/bg color (\E[39m \E[49m). Also uses G0, S0 and E0 values 201 | XP K? S0= [no value] Switch charset 'G0' to the specified charset. 202 | T ? S0=\E(%p1%c, 203 | XP K? E0= [no value] Switch charset 'G0' back to standard charset. 204 | ? E0=\E(B, 205 | 206 | # Ms modifies the selection/clipboard. Its parameters are 207 | # p1 = the storage unit (clipboard, selection or cut buffer) 208 | # p2 = the base64-encoded clipboard content. 209 | X TK? Ms=\E]52;%p1%s;%p2%s\007, 210 | 211 | # ---------- 212 | # TEXT MODES, COLOR 213 | # ---------- 214 | PTKN U8#1, when set to 1, forces xterm to rely on UTF-8 line-graphics. Set to enabled uses smacs/rmacs/acsc values 215 | this is set in KiTTY, Window->Translation, Remote character set as UTF-8 and "Use Unicode line drawing code points" 216 | make sure remote machine uses UTF-8 locales 217 | 218 | # enter and exit alternate character set mode (used for drawing boxes by programs like aptitude or midnight commander) 219 | X KN smacs=\E(0, 220 | PT smacs=^N, 221 | X KN rmacs=\E(B, 222 | PT rmacs=^O, 223 | # acsc provides array of box characters above mode uses, wrong string will result in garbage boxes 224 | X acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, 225 | P acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, 226 | TKN acsc=++\,\,--..00``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, 227 | N acsc=++\,\,--..00__``aaffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}c~~ 228 | kernel 2.6.x fix for SI/SO to wotk with UTF-8 encoding, not included by default 229 | 230 | # no idea what PC character display mode is, but putty has it 231 | # Display PC character #1 232 | P K? dispc=%?%p1%{8}%=%t\E%%G\342\227\230\E%%@%e%p1%{10}%=%t\E%%G\342\227\231\E%%@%e%p1%{12}%=%t\E%%G\342\231\0\E%%@%e%p1%{13}%=%t\E%%G\342\231\252\E%%@%e%p1%{14}%=%t\E%%G\342\231\253\E%%@%e%p1%{15}%=%t\E%%G\342\230\274\E%%@%e%p1%{27}%=%t\E%%G\342\206\220\E%%@%e%p1%{155}%=%t\E%%G\340\202\242\E%%@%e%p1%c%;, 233 | P K? smpch=\E[11m, 234 | P K? rmpch=\E[10m, 235 | 236 | XP K? enacs=\E(B\E)0, enable alternate char set (seems it has something to do with british and german key layouts) 237 | 238 | P ? s0ds=\E[10m, Shift to codeset 0 (Extended Unix Code set 0, ASCII, multibyte character encoding system used for primarily for 239 | Japanese, Korean and simplified Chinese) https://en.wikipedia.org/wiki/Extended_Unix_Code 240 | P ? s1ds=\E[11m, Shift to codeset 1 241 | P ? s2ds=\E[12m, Shift to codeset 2 242 | XPTK? s3ds= [no value] Shift to codeset 3 243 | 244 | # If the cursor needs to be made more visible than normal when it is not on the bottom line (to make, for example, a non-blinking underline into an easier to find block or blinking underline) give this sequence as cvvis. If there is a way to make the cursor completely invisible, give that as civis. The capability cnorm should be given which undoes the effects of both of these modes. [verified with echo] 245 | X KD cvvis=\E[?12;25h, 246 | P cvvis= [no value] 247 | TKE cvvis=\E[34l, 248 | XPTKE civis=\E[?25l, 249 | X KD cnorm=\E[?12l\E[?25h, 250 | P D cnorm=\E[?25h, 251 | TKE cnorm=\E[34h\E[?25h, 252 | # In all of those cases, cnorm seems to be a combination of cvvis and civis disabled sequences (ended in 'h' instead of 'l'), useful to know if you want to set up vim to change your cursor in different modes 253 | 254 | # enter and exit standout mode (higher visibility attention-getters) 255 | 256 | XPTKE smso=\E[7m, enter standout mode 257 | XPTKE rmso=\E[27m, exit standout mode 258 | XPTK msgr, indicate it is safe to move cursor in standout mode 259 | 260 | X KE smul=\E[4m, enter underlining mode 261 | X KE rmul=\E[24m, exit underlining mode 262 | 263 | X T D sitm=\E[3m, enter italic mode 264 | KE sitm= [no value] 265 | X T D ritm=\E[23m, exit italic mode 266 | KE ritm= [no value] 267 | 268 | X T D smxx=\E[9m, enter crossed-out mode 269 | KE smxx= [no value] 270 | X T D rmxx=\E[29m, exit crossed-out mode 271 | KE rmxx= [no value] 272 | rmxx/smxx describes the ECMA-48 strikeout/crossed-out attributes, as an experimental feature of tmux. 273 | 274 | # turning on any of these modes singly may or may not turn off other modes. 275 | XPTKE blink=\E[5m, blinking - by default off in KiTTY, Settings/Terminal "Enable blinking text" 276 | XPTKE bold=\E[1m, 277 | X T D dim=\E[2m, 278 | P K dim= [no value] 279 | X T D invis=\E[8m, invisible text 280 | P K invis= [no value] 281 | XPTK prot= [no value] protected 282 | XPTKE rev=\E[7m, reverse video 283 | 284 | X E sgr0=\E(B\E[m, turn off all attribute modes 285 | PTKE sgr0=\E[m\017, 286 | 287 | # https://www.freebsd.org/cgi/man.cgi?query=terminfo&sektion=5 search for: 288 | # If there is a sequence to set arbitrary combinations of modes, this should be given as sgr (set attributes), taking 9 parameters. 289 | X ? sgr=%?%p9%t\E(0%e\E(B%;\E[0%?%p6%t;1%;%?%p5%t;2%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p7%t;8%;m, 290 | P K? sgr=\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, 291 | T ? sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p7%t;8%;m%?%p9%t\016%e\017%;, 292 | 293 | XPTKN colors#0x100, max_colors - Maximum number of colors on the screen that can be displayed simultaneously 294 | XPTKN pairs#0x10000, max_pairs - Maximum number of color pairs on screen that can be displayed simultaneously 295 | P K? ncv#22, This is a bit-mask of attributes (bold/underline etc) not to be used when colors are enabled (because they may not work, collide with colors etc). 296 | XPTK? op=\E[39;49m, (original pair) string resets foreground and background colors to their default values for the terminal 297 | X ? oc=\E]104\007 resets all colors or color-pairs to their default values for the terminal 298 | P K? oc=\E]R, 299 | T oc= [no value] 300 | XP K? bce, indicate terminal will erase screen areas with the current background color rather than the power-up default background 301 | (many PC terminal emulators do this), settable in KiTTY in Terminal, default on 302 | X E ccc, may be present to indicate that colors can be modified, was apparently cancelled in putty 303 | http://invisible-island.net/ncurses/terminfo.src.html#t20140330 304 | unsupported 305 | # If so, the initc capability will take a color number (0 to colors - 1) and three more parameters which describe the color. 306 | X E initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\, 307 | K initc= [no value] unsupported 308 | 309 | # change the current foreground or background color on a Tektronix-type terminal, setaf (set ANSI foreground) and setab (set ANSI background) 310 | XPTKN setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m, 311 | XPTKN setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m, 312 | 313 | # or setf (set foreground) and setb (set background) 314 | XPTKN setf= [no value] 315 | XPTKN setb= [no value] 316 | 317 | X TKD Ss=\E[%p1%d q, used to set the cursor style as described by the DECSCUSR function to a block or underline 318 | P K Ss= [no value] unsupported 319 | X TK? Se=\E[2 q, resets the cursor style to the terminal power-on default 320 | P K Se= [no value] unsupported 321 | 322 | X T D Cs=\E]12;%p1%s\007, set cursor colour 323 | P KV Cs= [no value] unsupported 324 | X T ? Cr=\E]112\007, reset cursor colour 325 | P KV Cr= [no value] unsupported 326 | 327 | # ---------- 328 | # TABS 329 | # ---------- 330 | XPTKE it#8, tabs initially n spaces on terminal powerup, here set to 8, KiTTy uses 8 331 | XPTKE ht=^I, advance to next tab stop 332 | XPTKE cbt=\E[Z, back-tab command 333 | XPTK? kcbt=\E[Z, back-tab key (often shift+tab on modern keyboards) - why is the keycode the same as cbt? 334 | XPTKE hts=\EH, set tab stop in the current column of every row 335 | XPTKE tbc=\E[3g, clear all tab stops (hardware default ones included) 336 | 337 | # source https://godoc.org/github.com/xo/terminfo - there's waaaay more of those 338 | TKN OTpt, obsolete, has_hardware_tabs, indicates has 8-char tabs invoked with ^I 339 | X TKN OTbs, obsolete, backspaces_with_bs, bool capability indicates use of ^H to move left, 340 | if not present, uses OTbc value as sequence to move left 341 | 342 | # ---------- 343 | # KEY INPUT, MODIFIERS 344 | # ---------- 345 | X TKN km, Has a meta key which acts as shift key (sets 8th bit instead of parity). Otherwise, software will assume that the 8th bit is parity and it will usually be cleared. 346 | X smm=\E[?1034h, enter "meta mode", if the above can be switched on/off on demand 347 | PTK? smm= [no value] 348 | X rmm=\E[?1034l, exit "meta mode" 349 | PTK? rmm= [no value] 350 | 351 | XPTKN kbs=^?, backspace key, configure KiTTY to use Control-? for emacs compatibility (seems to be default) 352 | N kbs=\177, most likely redefined in initial handshake 353 | https://www.ssh.com/ssh/putty/putty-manuals/0.68/Chapter4.html#config-backspace 354 | 355 | X ? kb2=\EOE, seems to be numpad 5 356 | P K? kb2=\E[G, 357 | 358 | P KN kspd=^Z, suspend key (control Z) - yeeeah that one works alright :x 359 | 360 | XPTKE kich1=\E[2~, "insert character or enter insert mode" "Sent by insert char/enter insert-mode key" - looks to be insert key 361 | XPTKE kdch1=\E[3~, delete key 362 | 363 | X khome=\EOH home key 364 | PTKE khome=\E[1~, 365 | X kend=\EOF, end key 366 | PTKE kend=\E[4~, 367 | 368 | XPTKE kpp=\E[5~, PageUp (previous page key) 369 | XPTKE knp=\E[6~, PageDn (next page key) 370 | 371 | X ? kent=\EOM, sent by key (enter) - echo result here is "M" 372 | kent=^M, compiled comes out with \r, echo does nothing 373 | PTK kent= [no value] not included in compiled, echo does nothing 374 | 375 | X TK kri=\E[1;2A, scroll backwards key (up) 376 | P kri=\E[A, 377 | X TK kind=\E[1;2B, scroll forward key (down) 378 | P kind=\E[B, 379 | 380 | XPTKE smkx=\E[?1h\E=, Enter application mode 381 | XPTKE rmkx=\E[?1l\E>, Exit application mode 382 | 383 | # normal mode [rmkx] arrows 384 | X KV cuu1=\E[A up one line 385 | PT V cuu1=\EM, both work, but cat shows the upper code 386 | 387 | X T E cud1=\n, down one line 388 | P E cud1=\ED, 389 | E cud1=\E[B, cat shows this code 390 | KE cud1=^J, all of these work! 391 | 392 | XPTKV cuf1=\E[C, move right one space 393 | 394 | XPTKE cub1=^H, move left one space 395 | E cub1=\E[D, 396 | 397 | # application mode [smkx] arrows - vim uses this mode 398 | XPTKO kcuu1=\EOA, 399 | XPTKO kcud1=\EOB, 400 | XPTKO kcuf1=\EOC, 401 | XPTKO kcub1=\EOD, 402 | 403 | # modifier + arrows as per xterm-style info 404 | # src: https://github.com/tmux/tmux/blob/master/xterm-keys.c 405 | # 2 Shift 406 | # 3 Alt 407 | # 4 Shift + Alt 408 | # 5 Ctrl 409 | # 6 Shift + Ctrl 410 | # 7 Alt + Ctrl 411 | # 8 Shift + Alt + Ctrl 412 | # names as per ncurses extended descriptions 413 | # https://invisible-island.net/ncurses/ncurses.faq.html#modified_keys 414 | # http://invisible-island.net/ncurses/terminfo.src.html#t20051026 415 | # These entries will have warnings when checking with tic because the kri/kind capabilities duplicate the kUP/kDN extensions. 416 | 417 | # up-arrow key with modifiers 418 | X TKE kUP=\E[1;2A, 419 | X TKE kUP3=\E[1;3A, 420 | X TKE kUP4=\E[1;4A, 421 | X TKE kUP5=\E[1;5A, 422 | X TKE kUP6=\E[1;6A, 423 | X TKE kUP7=\E[1;7A, 424 | KE kUP8=\E[1;8A, 425 | 426 | # down-arrow key with modifiers 427 | X TKE kDN=\E[1;2B, 428 | X TKE kDN3=\E[1;3B, 429 | X TKE kDN4=\E[1;4B, 430 | X TKE kDN5=\E[1;5B, 431 | X TKE kDN6=\E[1;6B, 432 | X TKE kDN7=\E[1;7B, 433 | KE kDN8=\E[1;8B, 434 | 435 | # right-arrow key with modifiers 436 | X TKE kRIT=\E[1;2C, 437 | P kRIT=\E[C, 438 | X TKE kRIT3=\E[1;3C, 439 | X TKE kRIT4=\E[1;4C, 440 | X TKE kRIT5=\E[1;5C, 441 | X TKE kRIT6=\E[1;6C, 442 | X TKE kRIT7=\E[1;7C, 443 | KE kRIT8=\E[1;8C, 444 | 445 | # left-arrow key with modifiers 446 | X TKE kLFT=\E[1;2D, 447 | P kLFT=\E[D, 448 | X TKE kLFT3=\E[1;3D, 449 | X TKE kLFT4=\E[1;4D, 450 | X TKE kLFT5=\E[1;5D, 451 | X TKE kLFT6=\E[1;6D, 452 | X TKE kLFT7=\E[1;7D, 453 | KE kLFT8=\E[1;8D, 454 | 455 | 2 Shift 456 | 3 Alt 457 | 4 Shift + Alt 458 | 5 Ctrl 459 | 6 Shift + Ctrl 460 | 7 Alt + Ctrl 461 | 8 Shift + Alt + Ctrl 462 | 463 | # insert character key with modifiers 464 | X T E kIC=\E[2;2~, 465 | X TKE kIC3=\E[2;3~, 466 | X TKE kIC4=\E[2;4~, 467 | X TKE kIC5=\E[2;5~, 468 | X TKE kIC6=\E[2;6~, 469 | X TKE kIC7=\E[2;7~, 470 | XPT kIC8= [no value] 471 | KE kIC8=\E[2;8~, 472 | 473 | # KElete character key with modifiers 474 | X KE kDC=\E[3;2~, 475 | X TKE kDC3=\E[3;3~, 476 | X TKE kDC4=\E[3;4~, 477 | X TKE kDC5=\E[3;5~, 478 | X TKE kDC6=\E[3;6~, 479 | X TKE kDC7=\E[3;7~, 480 | XPT kDC8= [no value] 481 | KE kDC8=\E[3;8~, 482 | 483 | # home key with modifiers 484 | X TKE kHOM=\E[1;2H, 485 | X TKE kHOM3=\E[1;3H, 486 | X TKE kHOM4=\E[1;4H, 487 | X TKE kHOM5=\E[1;5H, 488 | X TKE kHOM6=\E[1;6H, 489 | X TKE kHOM7=\E[1;7H, 490 | XPT kHOM8= [no value] 491 | KE kHOM8=\E[1;8H, 492 | 493 | # end key with modifiers 494 | X TKE kEND=\E[1;2F, 495 | X TKE kEND3=\E[1;3F, 496 | X TKE kEND4=\E[1;4F, 497 | X TKE kEND5=\E[1;5F, 498 | X TKE kEND6=\E[1;6F, 499 | X TKE kEND7=\E[1;7F, 500 | XPT kEND8= [no value] 501 | KE kEND8=\E[1;8F, 502 | 503 | # previous page key (PageUp) 504 | X TKE kPRV=\E[5;2~, 505 | X TKE kPRV3=\E[5;3~, 506 | X TKE kPRV4=\E[5;4~, 507 | X TKE kPRV5=\E[5;5~, 508 | X TKE kPRV6=\E[5;6~, 509 | X TKE kPRV7=\E[5;7~, 510 | XPT kPRV8= [no value] 511 | KE kPRV8=\E[5;8~, 512 | 513 | # next page key (PageDn) 514 | X TKE kNXT=\E[6;2~, 515 | X TKE kNXT3=\E[6;3~, 516 | X TKE kNXT4=\E[6;4~, 517 | X TKE kNXT5=\E[6;5~, 518 | X TKE kNXT6=\E[6;6~, 519 | X TKE kNXT7=\E[6;7~, 520 | XPT kNXT8= [no value] 521 | KE kNXT8=\E[6;8~, 522 | 523 | # function keys 524 | X T kf1=\EOP, 525 | P K kf1=\E[11~, 526 | X T kf2=\EOQ, 527 | P K kf2=\E[12~, 528 | X T kf3=\EOR, 529 | P K kf3=\E[13~, 530 | X T kf4=\EOS, 531 | P K kf4=\E[14~, 532 | XPTK kf5=\E[15~, 533 | XPTK kf6=\E[17~, 534 | XPTK kf7=\E[18~, 535 | XPTK kf8=\E[19~, 536 | XPTK kf9=\E[20~, 537 | XPTK kf10=\E[21~, 538 | XPTK kf11=\E[23~, 539 | XPTK kf12=\E[24~, 540 | 541 | # beyond this point putty does NOT generate any reasonable key codes for F- keys. Fixable in KiTTY with shortcuts 542 | # is this even needed? Omitting. 543 | # if you need these bound, necessary keycodes acn be found here https://invisible-island.net/xterm/xterm-function-keys.html 544 | 545 | X T kf13=\E[1;2P, 546 | P kf13=\E[25~, 547 | X T kf14=\E[1;2Q, 548 | P kf14=\E[26~ 549 | X T kf15=\E[1;2R, 550 | P kf15=\E[28~, 551 | X T kf16=\E[1;2S, 552 | P kf16=\E[29~, 553 | X T kf17=\E[15;2~, 554 | P kf17=\E[31~, 555 | X T kf18=\E[17;2~, 556 | P kf18=\E[32~ 557 | X T kf19=\E[18;2~, 558 | P kf19=\E[33~, 559 | X T kf20=\E[19;2~, 560 | P kf20=\E[34~, 561 | X T kf21=\E[20;2~, 562 | X T kf22=\E[21;2~, 563 | X T kf23=\E[23;2~, 564 | X T kf24=\E[24;2~, 565 | 566 | X T kf25=\E[1;5P, 567 | X T kf26=\E[1;5Q, 568 | X T kf27=\E[1;5R, 569 | X T kf28=\E[1;5S, 570 | X T kf29=\E[15;5~, 571 | X T kf30=\E[17;5~, 572 | X T kf31=\E[18;5~, 573 | X T kf32=\E[19;5~, 574 | X T kf33=\E[20;5~, 575 | X T kf34=\E[21;5~, 576 | X T kf35=\E[23;5~, 577 | X T kf36=\E[24;5~, 578 | 579 | X T kf37=\E[1;6P, 580 | X T kf38=\E[1;6Q, 581 | X T kf39=\E[1;6R, 582 | X T kf40=\E[1;6S, 583 | X T kf41=\E[15;6~, 584 | X T kf42=\E[17;6~, 585 | X T kf43=\E[18;6~, 586 | X T kf44=\E[19;6~, 587 | X T kf45=\E[20;6~, 588 | X T kf46=\E[21;6~, 589 | X T kf47=\E[23;6~, 590 | X T kf48=\E[24;6~, 591 | 592 | X T kf49=\E[1;3P, 593 | X T kf50=\E[1;3Q, 594 | X T kf51=\E[1;3R, 595 | X T kf52=\E[1;3S, 596 | X T kf53=\E[15;3~, 597 | X T kf54=\E[17;3~, 598 | X T kf55=\E[18;3~, 599 | X T kf56=\E[19;3~, 600 | X T kf57=\E[20;3~, 601 | X T kf58=\E[21;3~, 602 | X T kf59=\E[23;3~, 603 | X T kf60=\E[24;3~, 604 | 605 | X T kf61=\E[1;4P, 606 | X T kf62=\E[1;4Q, 607 | X T kf63=\E[1;4R, 608 | X T kf63=\E[1;4R, 609 | # ---------- 610 | # MISC 611 | # ---------- 612 | # printing supported by KiTTY, have to pick a printer in configuration (Terminal) 613 | X ? mc5i, printer will not echo on screen 614 | X ? mc0=\E[i, print contents of the screen 615 | PT ? mc0= [no value] 616 | X ? mc4=\E[4i, turn off the printer 617 | PT ? mc4= [no value] 618 | X ? mc5=\E[5i, turn on the printer. When the printer is on, all text sent to the terminal will be sent to the printer 619 | PT ? mc5= [no value] 620 | XPT ? mc5p= [no value] variation that takes one parameter, and leaves the printer on for as many characters as the value of the parameter, 621 | then turns the printer off. The parameter should not exceed 255. Will print mc4 sequence transparently too. 622 | 623 | XP K XT, Terminal understands special xterm sequences (OSC, mouse tracking). 624 | 625 | XPTK kmous=\E[M, Mouse event has occured. Be careful assigning this. The ncurses wants to interpret it as 626 | KEY_MOUSE for use by terminals and emulators like xterm that can return mouse-tracking 627 | information in the keyboard-input stream. I recommend disabling mouse events it in KiTTY 628 | configuration, and leave it purely client side for copying purposes. 629 | Left in for compatibility if you do decide to use it anyway. 630 | 631 | # The HP library (as of mid-1995, their term.h file version 70.1) appears to have the System V capabilities up to SVr1 level. After that, it supports two nonstandard caps meml and memu corresponding to the old termcap :ml:, :mu: capabilities (-whatever those are). After that, it supports caps plab_norm, label_on, label_off, and key_f11..key_f63 capabilities like SVr4's. This makes the HP binary format incompatible with SVr4's. 632 | X ? meml=\El, 633 | X ? memu=\Em, --------------------------------------------------------------------------------