24-bit color may not be enabled by default...?
PeterGrace opened this issue · 12 comments
Description
I noticed that when trying out windows terminal, that 24 bit color rendering does not work in Windows Terminal like it does in mintty. I read online that Windows Terminal should support 24 bit color rendering, but this does not seem to be the case at least when utilizing bash from WSL. I'm wondering if there is something I need to do in the settings to enable 24 bit rendering.
Environment
Windows build number: `Microsoft Windows [Version 10.0.18363.720]`
Windows Terminal version (if applicable): 1.0.1401.0
Link to below 24-bit-color-script: https://github.com/tmux/tmux/blob/master/tools/24-bit-color.sh
Steps to reproduce
Attempt to render 24 bit color in console
Expected behavior
Actual behavior
What's the value of your TERM
environment variable?
So, Terminal definitely does support 24-bit color. There's a bunch of variables here, though- If you're running inside tmux, screen, or through msys2, cygwin, etc. each of those can impose its own limits.
Thanks for getting back to me, @DHowett -- my term is set to screen-256color
in both cases.
I am using tmux, and I am connected to the same tmux window for both screenshots, one is rendered in mintty, one is rendered in terminal.
Alright, what's TERM
outside of tmux?
And could you share the output of infocmp
also outside of tmux? (EDITED: sorry - I misspelled infocmp
as infocomp
.)
Outside of tmux, xterm-256color
.
infocmp output:
# Reconstructed via infocmp from file: /lib/terminfo/x/xterm-256color
xterm-256color|xterm with 256 colors,
am, bce, ccc, km, mc5i, mir, msgr, npc, xenl,
colors#256, cols#80, it#8, lines#24, pairs#32767,
acsc=``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
bel=^G, blink=\E[5m, bold=\E[1m, cbt=\E[Z, civis=\E[?25l,
clear=\E[H\E[2J, cnorm=\E[?12l\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,
cvvis=\E[?12;25h, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM,
dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K, el1=\E[1K,
flash=\E[?5h$<100/>\E[?5l, home=\E[H, hpa=\E[%i%p1%dG,
ht=^I, hts=\EH, ich=\E[%p1%d@, il=\E[%p1%dL, il1=\E[L,
ind=^J, indn=\E[%p1%dS,
initc=\E]4;%p1%d;rgb\:%p2%{255}%*%{1000}%/%2.2X/%p3%{255}%*%{1000}%/%2.2X/%p4%{255}%*%{1000}%/%2.2X\E\\,
invis=\E[8m, is2=\E[!p\E[?3;4l\E[4l\E>, kDC=\E[3;2~,
kEND=\E[1;2F, kHOM=\E[1;2H, kIC=\E[2;2~, kLFT=\E[1;2D,
kNXT=\E[6;2~, kPRV=\E[5;2~, kRIT=\E[1;2C, kb2=\EOE,
kbs=\177, kcbt=\E[Z, kcub1=\EOD, kcud1=\EOB, kcuf1=\EOC,
kcuu1=\EOA, kdch1=\E[3~, kend=\EOF, kent=\EOM, kf1=\EOP,
kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[1;2P,
kf14=\E[1;2Q, kf15=\E[1;2R, kf16=\E[1;2S, kf17=\E[15;2~,
kf18=\E[17;2~, kf19=\E[18;2~, kf2=\EOQ, kf20=\E[19;2~,
kf21=\E[20;2~, kf22=\E[21;2~, kf23=\E[23;2~,
kf24=\E[24;2~, kf25=\E[1;5P, kf26=\E[1;5Q, kf27=\E[1;5R,
kf28=\E[1;5S, kf29=\E[15;5~, kf3=\EOR, kf30=\E[17;5~,
kf31=\E[18;5~, kf32=\E[19;5~, kf33=\E[20;5~,
kf34=\E[21;5~, kf35=\E[23;5~, kf36=\E[24;5~,
kf37=\E[1;6P, kf38=\E[1;6Q, kf39=\E[1;6R, kf4=\EOS,
kf40=\E[1;6S, kf41=\E[15;6~, kf42=\E[17;6~,
kf43=\E[18;6~, kf44=\E[19;6~, kf45=\E[20;6~,
kf46=\E[21;6~, kf47=\E[23;6~, kf48=\E[24;6~,
kf49=\E[1;3P, kf5=\E[15~, kf50=\E[1;3Q, kf51=\E[1;3R,
kf52=\E[1;3S, kf53=\E[15;3~, kf54=\E[17;3~,
kf55=\E[18;3~, kf56=\E[19;3~, kf57=\E[20;3~,
kf58=\E[21;3~, kf59=\E[23;3~, kf6=\E[17~, kf60=\E[24;3~,
kf61=\E[1;4P, kf62=\E[1;4Q, kf63=\E[1;4R, kf7=\E[18~,
kf8=\E[19~, kf9=\E[20~, khome=\EOH, kich1=\E[2~,
kind=\E[1;2B, kmous=\E[M, knp=\E[6~, kpp=\E[5~,
kri=\E[1;2A, mc0=\E[i, mc4=\E[4i, mc5=\E[5i, meml=\El,
memu=\Em, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
rin=\E[%p1%dT, rmacs=\E(B, rmam=\E[?7l, rmcup=\E[?1049l,
rmir=\E[4l, rmkx=\E[?1l\E>, rmso=\E[27m, rmul=\E[24m,
rs1=\Ec, rs2=\E[!p\E[?3;4l\E[4l\E>, sc=\E7,
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,
sgr=%?%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,
sgr0=\E(B\E[m, smacs=\E(0, smam=\E[?7h, smcup=\E[?1049h,
smir=\E[4h, smkx=\E[?1h\E=, smso=\E[7m, smul=\E[4m,
tbc=\E[3g, u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?1;2c, u9=\E[c,
vpa=\E[%i%p1%dd,
Interesting: when I go to mintty and ask it what term, it's set to screen-256color. mintty must be rendering an additional setting in my profile that windows terminal is not. I will attempt to retest with windows terminal also set to screen-256color to begin with.
When I retest forcing screen-256color
in my bash instantiation on windows terminal, the 24 bit color is rendered appropriately. So this doesn't appear to be a windows terminal issue after all, so I'll close this issue. Thanks for getting back to me.
Sure thing!
I also cannot get 24bit rendering to work with the Terminal.
I have this working without any issues on mintty, iterm2 and most Linux terminals (xterm, gnome-terminal).
I use a compiled terminal definition from here: https://github.com/enocom/dotfiles/blob/master/xterm-24bit.terminfo
TERM=xterm-24bit
On all the previously mentioned terminals this works without issues. On Terminal it doesn't. XTERM=256color works just fine, but I cannot get 24bit colors then.
Wrong, scratch that. Sorry for the confusion.
It appears I've used this definition (from the first answer):
https://stackoverflow.com/questions/14672875/true-color-24-bit-in-terminal-emacs
And the method with colons doesn't work on Terminal, but the method with semicolons does! So I made it work properly.
Leaving all this as maybe someone will find it useful.