-
Notifications
You must be signed in to change notification settings - Fork 8.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Foreground text colours do not work if the font is Source Code Pro after update to latest preview build #13989
Comments
Weird. I guess there must be something in my config that's different from yours, but since I've had to switch to the non-preview version until this is resolved I've copied my config over to that and colours are working fine for me there. These are the possibly-relevant bits of my config ( {
"$help": "https://aka.ms/terminal-documentation",
"$schema": "https://aka.ms/terminal-profiles-schema",
"actions":
[
{
"command": "find",
"keys": "ctrl+shift+f"
},
{
"command":
{
"action": "nextTab"
},
"keys": "shift+right"
},
{
"command":
{
"action": "splitPane",
"split": "auto",
"splitMode": "duplicate"
},
"keys": "alt+shift+d"
},
{
"command":
{
"action": "closeTab"
},
"keys": "ctrl+w"
},
{
"command":
{
"action": "prevTab"
},
"keys": "shift+left"
},
{
"command":
{
"action": "newTab",
"commandline": "wt.exe"
},
"keys": "ctrl+shift+n"
}
],
"copyFormatting": "all",
"copyOnSelect": true,
"schemes":
[
{
"background": "#0C0C0C",
"black": "#0C0C0C",
"blue": "#003CED",
"brightBlack": "#767676",
"brightBlue": "#3B78FF",
"brightCyan": "#61D6D6",
"brightGreen": "#16C60C",
"brightPurple": "#ED00D0",
"brightRed": "#F24C5A",
"brightWhite": "#F2F2F2",
"brightYellow": "#F9F1A5",
"cursorColor": "#FFFFFF",
"cyan": "#3A96DD",
"foreground": "#FFFFFF",
"green": "#13A10E",
"name": "Campbell",
"purple": "#AD1DC2",
"red": "#E60523",
"selectionBackground": "#FFFFFF",
"white": "#CCCCCC",
"yellow": "#C19C00"
},
{
"background": "#012456",
"black": "#0C0C0C",
"blue": "#0037DA",
"brightBlack": "#767676",
"brightBlue": "#3B78FF",
"brightCyan": "#61D6D6",
"brightGreen": "#16C60C",
"brightPurple": "#B4009E",
"brightRed": "#E74856",
"brightWhite": "#F2F2F2",
"brightYellow": "#F9F1A5",
"cursorColor": "#FFFFFF",
"cyan": "#3A96DD",
"foreground": "#CCCCCC",
"green": "#13A10E",
"name": "Campbell Powershell",
"purple": "#881798",
"red": "#C50F1F",
"selectionBackground": "#FFFFFF",
"white": "#CCCCCC",
"yellow": "#C19C00"
},
{
"background": "#282C34",
"black": "#282C34",
"blue": "#61AFEF",
"brightBlack": "#5A6374",
"brightBlue": "#61AFEF",
"brightCyan": "#56B6C2",
"brightGreen": "#98C379",
"brightPurple": "#C678DD",
"brightRed": "#E06C75",
"brightWhite": "#DCDFE4",
"brightYellow": "#E5C07B",
"cursorColor": "#FFFFFF",
"cyan": "#56B6C2",
"foreground": "#DCDFE4",
"green": "#98C379",
"name": "One Half Dark",
"purple": "#C678DD",
"red": "#E06C75",
"selectionBackground": "#FFFFFF",
"white": "#DCDFE4",
"yellow": "#E5C07B"
},
{
"background": "#FAFAFA",
"black": "#383A42",
"blue": "#0184BC",
"brightBlack": "#4F525D",
"brightBlue": "#61AFEF",
"brightCyan": "#56B5C1",
"brightGreen": "#98C379",
"brightPurple": "#C577DD",
"brightRed": "#DF6C75",
"brightWhite": "#FFFFFF",
"brightYellow": "#E4C07A",
"cursorColor": "#4F525D",
"cyan": "#0997B3",
"foreground": "#383A42",
"green": "#50A14F",
"name": "One Half Light",
"purple": "#A626A4",
"red": "#E45649",
"selectionBackground": "#FFFFFF",
"white": "#FAFAFA",
"yellow": "#C18301"
},
{
"background": "#002B36",
"black": "#002B36",
"blue": "#268BD2",
"brightBlack": "#073642",
"brightBlue": "#839496",
"brightCyan": "#93A1A1",
"brightGreen": "#586E75",
"brightPurple": "#6C71C4",
"brightRed": "#CB4B16",
"brightWhite": "#FDF6E3",
"brightYellow": "#657B83",
"cursorColor": "#FFFFFF",
"cyan": "#2AA198",
"foreground": "#839496",
"green": "#859900",
"name": "Solarized Dark",
"purple": "#D33682",
"red": "#DC322F",
"selectionBackground": "#FFFFFF",
"white": "#EEE8D5",
"yellow": "#B58900"
},
{
"background": "#FDF6E3",
"black": "#002B36",
"blue": "#268BD2",
"brightBlack": "#073642",
"brightBlue": "#839496",
"brightCyan": "#93A1A1",
"brightGreen": "#586E75",
"brightPurple": "#6C71C4",
"brightRed": "#CB4B16",
"brightWhite": "#FDF6E3",
"brightYellow": "#657B83",
"cursorColor": "#002B36",
"cyan": "#2AA198",
"foreground": "#657B83",
"green": "#859900",
"name": "Solarized Light",
"purple": "#D33682",
"red": "#DC322F",
"selectionBackground": "#FFFFFF",
"white": "#EEE8D5",
"yellow": "#B58900"
},
{
"background": "#000000",
"black": "#000000",
"blue": "#3465A4",
"brightBlack": "#555753",
"brightBlue": "#729FCF",
"brightCyan": "#34E2E2",
"brightGreen": "#8AE234",
"brightPurple": "#AD7FA8",
"brightRed": "#EF2929",
"brightWhite": "#EEEEEC",
"brightYellow": "#FCE94F",
"cursorColor": "#FFFFFF",
"cyan": "#06989A",
"foreground": "#D3D7CF",
"green": "#4E9A06",
"name": "Tango Dark",
"purple": "#75507B",
"red": "#CC0000",
"selectionBackground": "#FFFFFF",
"white": "#D3D7CF",
"yellow": "#C4A000"
},
{
"background": "#FFFFFF",
"black": "#000000",
"blue": "#3465A4",
"brightBlack": "#555753",
"brightBlue": "#729FCF",
"brightCyan": "#34E2E2",
"brightGreen": "#8AE234",
"brightPurple": "#AD7FA8",
"brightRed": "#EF2929",
"brightWhite": "#EEEEEC",
"brightYellow": "#FCE94F",
"cursorColor": "#000000",
"cyan": "#06989A",
"foreground": "#555753",
"green": "#4E9A06",
"name": "Tango Light",
"purple": "#75507B",
"red": "#CC0000",
"selectionBackground": "#FFFFFF",
"white": "#D3D7CF",
"yellow": "#C4A000"
},
{
"background": "#000000",
"black": "#000000",
"blue": "#000080",
"brightBlack": "#808080",
"brightBlue": "#0000FF",
"brightCyan": "#00FFFF",
"brightGreen": "#00FF00",
"brightPurple": "#FF00FF",
"brightRed": "#FF0000",
"brightWhite": "#FFFFFF",
"brightYellow": "#FFFF00",
"cursorColor": "#FFFFFF",
"cyan": "#008080",
"foreground": "#C0C0C0",
"green": "#008000",
"name": "Vintage",
"purple": "#800080",
"red": "#800000",
"selectionBackground": "#FFFFFF",
"white": "#C0C0C0",
"yellow": "#808000"
}
],
"tabSwitcherMode": "disabled",
"tabWidthMode": "equal",
"themes": []
} |
A part of config without profiles and color schemas:
|
Actually, the profile settings probably are relevant here, especially for the atlas engine setting. Dang I couldn't repro this. I bet it's an atlas bug, but we need to figure out the whole repro here. |
I'm afraid I don't know what an atlas engine is. I have this for the default:
None of my other profiles have anything that looks relevant. Some override the |
Deleting profiles.defaults.font.face makes colours work again. I don't know if it's specific to Source Code Pro, or if it's a problem with any non-default font. |
Changing to any other font appears to make colours work again. I have no idea what makes Source Code Pro special, but since it's available under the SIL Open Font License, hopefully you can reproduce it. |
Wow. Now @lhecker is going to "love" this one! Thanks @davidchisnall. If you pull up the Rendering settings and disable the "new text rendering engine," do colors once again work? (You'll need to open a new tab, we can't hot-reload that one yet...) |
Hmm... 🤔 @davidchisnall The only way that a font might cause the issue you're seeing is if it's a color font, but the official Source Code Pro font shouldn't be one. Are you perhaps using a special variant? Mine is from here and is: > Get-FileHash -Algorithm SHA256 *.ttf
Algorithm Hash Path
--------- ---- ----
SHA256 5A32FAFB68B4F7E1D05844943E3AEED2429F927DCD232D46BDCAAFE2CD2C6F81 SourceCodePro-Italic-VariableFont_wght.ttf
SHA256 CF5851D657AFBE3DB00539A8AD73467784723CAC03B189072316D6377DD703F7 SourceCodePro-VariableFont_wght.ttf |
@DHowett, yup disabling the new renderer fixes things. @lhecker, I installed the SourceCodePro fonts from their GitHub release page: https://github.com/adobe-fonts/source-code-pro/releases. However, looking at the releases page, I see that there was a release in 2020 with 'Removes SVG table to allow for color-coded text in text editing apps. (issue adobe-fonts/source-code-pro#250)' in the release notes. Sure enough, upgrading to a newer version of the font fixes the problem. I think we can probably close this bug, since it appears to be a bug in the font, rather than the terminal. That said, Source Code Pro is a fairly popular font for terminals and I suspect that I am not alone in assuming that fonts are not in the category of things that I need to upgrade to pick up bug fixes (I think this might be the first time that I've ever encountered a bug in a font other than in ligature rendering, which is a best-effort totally-fine-to-get-a-bit-wrong thing for most uses). It would be great if the terminal could detect if your font has an SVG table and, the first time you launch a terminal with such a font, pop up a dialog / notification / something saying 'Your chosen font has a colour table. If this table is incorrect then colours will be rendered incorrectly. If you can no longer see coloured text in the terminal, check to see if a newer version of your font is available'. I don't know anything about Atlas, but if it's possible for it to expose an option to ignore the font's colours then that would also be nice (some folks may not have admin rights necessary to upgrade their font). |
It is a bug in the terminal, but I do believe we can close this issue, because...
The problem is that the new text renderer assumes a font is an Emoji font if it contains any colored glyphs. This doesn't just lead to your issue, but rather causes a series of problems. That's why I'd prefer a complete solution that addresses the issue fundamentally, by correctly detecting colored glyphs on a glyph-by-glyph basis. In fact I had considered this to be an issue ever since I wrote the code last year. 😅 terminal/src/renderer/atlas/AtlasEngine.cpp Lines 1506 to 1530 in 71fc4b1
|
Same issue. "new text rendering engine" option makes no difference on my environment. |
@airosB I'm working on fixing this bug. But in either case I can only suggest downloading and installing the latest version of Source Code Pro from here if you haven't done so yet: https://github.com/adobe-fonts/source-code-pro/releases |
@lhecker Thanks. The latest version of font works perfectly with colored texts. |
I'm removing Severity-Blocking and the milestone because there's a workaround for this particular font at least that is somewhat easy to do and I'll unfortunately need longer than 1.17 to implement a fix. I think 1.18 is most likely. |
Windows Terminal version
1.16.2524.0
Windows build number
10.0.22621.0
Other Software
No response
Steps to reproduce
Expected Behavior
See coloured text.
Actual Behavior
White text on a black background.
My colour scheme is the default ('Campbell').
It appears as if background colours work, but foreground do not. Running the following test:
In the release version of Windows Terminal gives this output:
In the preview version gives this:
Background colours work fine though. Running this test gives this output:
The text was updated successfully, but these errors were encountered: