24-bit color may not be enabled by default...? #8414

Closed
opened 2026-01-31 01:28:54 +00:00 by claunia · 12 comments
Owner

Originally created by @PeterGrace on GitHub (May 21, 2020).

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

Output from mintty command:
image

Actual behavior

Output from windows terminal of the exact same session:
image

Originally created by @PeterGrace on GitHub (May 21, 2020). # 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 ```none 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 Output from mintty command: ![image](https://user-images.githubusercontent.com/967365/82567473-6a825400-9b4b-11ea-92c1-08660e88766b.png) # Actual behavior Output from windows terminal of the exact same session: ![image](https://user-images.githubusercontent.com/967365/82567523-7b32ca00-9b4b-11ea-8075-10bb0625f135.png)
claunia added the Needs-TriageNeeds-Tag-FixNeeds-Attention labels 2026-01-31 01:28:54 +00:00
Author
Owner

@DHowett commented on GitHub (May 21, 2020):

What's the value of your TERM environment variable?

@DHowett commented on GitHub (May 21, 2020): What's the value of your `TERM` environment variable?
Author
Owner

@DHowett commented on GitHub (May 21, 2020):

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.

@DHowett commented on GitHub (May 21, 2020): 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.
Author
Owner

@PeterGrace commented on GitHub (May 21, 2020):

Thanks for getting back to me, @DHowett -- my term is set to screen-256color in both cases.

@PeterGrace commented on GitHub (May 21, 2020): Thanks for getting back to me, @DHowett -- my term is set to `screen-256color` in both cases.
Author
Owner

@PeterGrace commented on GitHub (May 21, 2020):

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.

@PeterGrace commented on GitHub (May 21, 2020): 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.
Author
Owner

@DHowett commented on GitHub (May 21, 2020):

Alright, what's TERM outside of tmux?

@DHowett commented on GitHub (May 21, 2020): Alright, what's `TERM` _outside of tmux_?
Author
Owner

@DHowett commented on GitHub (May 21, 2020):

And could you share the output of infocmp also outside of tmux? (EDITED: sorry - I misspelled infocmp as infocomp.)

@DHowett commented on GitHub (May 21, 2020): And could you share the output of `infocmp` also outside of tmux? (EDITED: sorry - I misspelled `infocmp` as `infocomp`.)
Author
Owner

@PeterGrace commented on GitHub (May 21, 2020):

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,
@PeterGrace commented on GitHub (May 21, 2020): 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, ```
Author
Owner

@PeterGrace commented on GitHub (May 21, 2020):

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.

@PeterGrace commented on GitHub (May 21, 2020): 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.
Author
Owner

@PeterGrace commented on GitHub (May 21, 2020):

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.

@PeterGrace commented on GitHub (May 21, 2020): 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.
Author
Owner

@DHowett commented on GitHub (May 21, 2020):

Sure thing!

@DHowett commented on GitHub (May 21, 2020): Sure thing!
Author
Owner

@Havner commented on GitHub (Jun 14, 2023):

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.

mintty
terminal

@Havner commented on GitHub (Jun 14, 2023): 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. ![mintty](https://github.com/microsoft/terminal/assets/6246347/4fc5f953-d248-4038-a857-66c436b89c71) ![terminal](https://github.com/microsoft/terminal/assets/6246347/6efbd68c-cff1-40bc-8a6e-9f5f36f64081)
Author
Owner

@Havner commented on GitHub (Jun 14, 2023):

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.

terminal2

@Havner commented on GitHub (Jun 14, 2023): 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. ![terminal2](https://github.com/microsoft/terminal/assets/6246347/c7c55b12-7158-41c7-9c6d-f68592f0c341)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#8414