dvtm

dynamic virtual terminal manager - with my changes
git clone https://pi.duncano.de/git/dvtm.git
Log | Files | Refs | README | LICENSE

commit f56a83a41b9c9305e3ee16b36ae4fd7723e54f07
parent 052a044e36b2ccdd49b2cd1dac111bf7eccd5641
Author: Marc Andre Tanner <mat@brain-dump.org>
Date:   Sun, 10 Feb 2013 17:35:00 +0100

vt: set TERM=dvtm[-256color] in emulation

Add an dvtm.info terminfo file based on the one of rxvt,
and use it. This can be overriden at runtime with the
environment variable DVTM_TERM.

Signed-off-by: Marc Andre Tanner <mat@brain-dump.org>

Diffstat:
Makefile | 2++
dvtm.info | 44++++++++++++++++++++++++++++++++++++++++++++
vt.c | 9++++++++-
3 files changed, 54 insertions(+), 1 deletion(-)

diff --git a/Makefile b/Makefile @@ -51,6 +51,8 @@ install: dvtm @mkdir -p ${DESTDIR}${MANPREFIX}/man1 @sed "s/VERSION/${VERSION}/g" < dvtm.1 > ${DESTDIR}${MANPREFIX}/man1/dvtm.1 @chmod 644 ${DESTDIR}${MANPREFIX}/man1/dvtm.1 + @echo installing terminfo description + @tic -s dvtm.info uninstall: @echo removing executable file from ${DESTDIR}${PREFIX}/bin diff --git a/dvtm.info b/dvtm.info @@ -0,0 +1,44 @@ +dvtm|dynamic virtual terminal manager, + am, eo, mir, msgr, xenl, + colors#8, cols#80, it#8, lines#24, ncv@, pairs#64, + acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, + bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l, + clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M, + csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H, + cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C, + cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A, + dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, + enacs=\E(B\E)0, flash=\E[?5h\E[?5l, home=\E[H, + hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@, + il=\E[%p1%dL, il1=\E[L, ind=^J, is1=\E[?47l\E=\E[?1l, + is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l, + kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kIC=\E[2$, kLFT=\E[d, + kNXT=\E[6$, kPRV=\E[5$, kRIT=\E[c, ka1=\EOw, ka3=\EOy, + kb2=\EOu, kbs=^H, kc1=\EOq, kc3=\EOs, kcbt=\E[Z, kcub1=\E[D, + kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, + kel=\E[8\^, kend=\E[8~, kent=\EOM, kf0=\E[21~, + kf1=\E[11~, kf2=\E[12~, kf3=\E[13~, kf4=\E[14~, + kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, + kf9=\E[20~, kf10=\E[21~, kf11=\E[23~, + kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, + kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, + kf20=\E[34~, kf21=\E[23$, kf22=\E[24$ + kfnd=\E[1~, khome=\E[7~, kich1=\E[2~, kind=\E[a, kmous=\E[M, knp=\E[6~, + kpp=\E[5~, kri=\E[b, kslt=\E[4~, op=\E[39;49m, rc=\E8, + rev=\E[7m, ri=\EM, rmacs=^O, rmcup=\E[2J\E[?47l\E8, + rmir=\E[4l, rmkx=\E>, rmso=\E[27m, rmul=\E[24m, + rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H, + rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?25h, + s0ds=\E(B, s1ds=\E(0, sc=\E7, setab=\E[4%p1%dm, + setaf=\E[3%p1%dm, + sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?%p9%t\016%e\017%;, + sgr0=\E[m\017, smacs=^N, smcup=\E7\E[?47h, smir=\E[4h, + smkx=\E=, smso=\E[7m, smul=\E[4m, tbc=\E[3g, + vpa=\E[%i%p1%dd, + +dvtm-256color|dynamic virtual terminal manager with 256 colors, + use=dvtm, + colors#256, + pairs#32767, + setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m, + setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m, diff --git a/vt.c b/vt.c @@ -78,6 +78,7 @@ static bool is_utf8, has_default_colors; static short color_pairs_reserved, color_pairs_max, color_pair_current; static short *color2palette, default_fg, default_bg; +static char vt_term[32] = "dvtm"; enum { C0_NUL = 0x00, @@ -1517,7 +1518,7 @@ pid_t vt_forkpty(Vt *t, const char *p, const char *argv[], const char *env[], in setenv(envp[0], envp[1], 1); envp += 2; } - setenv("TERM", COLORS >= 256 ? "rxvt-256color" : "rxvt", 1); + setenv("TERM", vt_term, 1); execv(p, (char *const *)argv); fprintf(stderr, "\nexecv() failed.\nCommand: '%s'\n", argv[0]); exit(1); @@ -2127,6 +2128,12 @@ void vt_init(void) { init_colors(); is_utf8_locale(); + char color_suffix[] = "-256color"; + char *term = getenv("DVTM_TERM"); + if (term) + strncpy(vt_term, term, sizeof(vt_term) - sizeof(color_suffix)); + if (COLORS >= 256) + strcat(vt_term, color_suffix); } void vt_shutdown(void)