microsoft / cascadia-code

This is a fun, new monospaced font that includes programming ligatures and is designed to enhance the modern look and feel of the Windows Terminal.
Other
25.76k stars 803 forks source link

Cascadia Code suddenly stopped showing up as a valid font in console windows (not Windows Terminal) #594

Closed nathan-alden-hp closed 2 years ago

nathan-alden-hp commented 2 years ago

Cascadia family version

2108.026

Cascadia family variant(s)

Cascadia Code (the version with ligatures)

Font file format(s)

I don't know

Platform

Windows 10 1809

Other Software

PowerShell Core 7.1.5

What happened?

I have a machine running Windows 10 1809. Just today I ran Windows Update, uninstalled Visual Studio 2019, and installed Visual Studio 2022 RC. After doing all this, I noticed my PowerShell Core terminal window started showing up in italics:

image

When I inspected the font configuration, I noticed that Cascadia Code is no longer listed; instead, the window appears to be defaulting back to Raster Fonts, even though the actual font the window is rendering appears to be Cascadia Code italics.

image

Note that Cascadia Code is no longer available for selection:

image

I then inspected the font in Windows' Fonts control panel:

image

It looks like somehow the non-italic typefaces became uninstalled, so PowerShell Core is selecting the next available typeface.

This may be related to https://github.com/microsoft/cascadia-code/issues/591.

nathan-alden-hp commented 2 years ago

To temporarily fix the issue, I downloaded the font zip file and installed the fonts by hand.

aaronbell commented 2 years ago

Strange. I don't think that this has anything to do with the font itself though. How had you installed the font previously?

AlexLove77 commented 2 years ago

Same question in Windows Terminal and VS Code as well, Win10 20H2.

ChameleonDevil commented 2 years ago

Read at bottom to see how to update font in Windows Terminal and VS Code

Yes, can confirm Windows Terminal also stopped showing font (I know the header says 'no Windows Terminal'), so this suggests a Windows system wide issue rather (previous user mentioned VS Code (my VS code still works somehow, I guess on a new restart it will also fail...))

I don't see the font in C:\Windows\Fonts or %localappdata%\Microsoft\Fonts.

Installing using Chocolatey just installs PL version (version of Cascadia that has embedded Powerline symbols -- not sure what this means...):

https://github.com/microsoft/cascadia-code/wiki/Installing-Cascadia-Code

choco install cascadiacode
choco install cascadiamono
choco install cascadiacodepl
choco install cascadiamonopl
Installed:
 - cascadiafonts v2108.26
 - cascadiamonopl-italic v2108.26
 - cascadiacodepl-italic v2108.26
 - cascadiacodeitalic v2108.26
 - cascadiamonoitalic v2108.26

However, in C:\Windows\Fonts only PL versions show, nothing in %localappdata%

I will try the ZIP installation to see if it solves my issue.

Edit: Installing ZIP version (2108.26) still doesn't install "Cascadia Code or Cascadia Mono", just "Cascadia Code PL" and "Cascadia Mono PL".

Update like this on VS Code

Now I have to try to figure out where to set the font name for Windows Terminal (there doesn't seem to be any font name settings in the settings interface)!!!!

Edit:

Found it on Windows Terminal:

samuelcolburn commented 2 years ago

Same issue here. VSCode/Terminal don't recognize Cascadia Code or Cascadia Mono. I was able to use the PL versions as a fix.

They also don't appear when I search in Windows Fonts (though they will appear if you mouse over where they are supposed to be): image

aaronbell commented 2 years ago

I do seem to recall folks having issues with Windows updates when they'd installed the font within the user scope rather than system-wide, but that doesn't necessarily seem to tell the whole story here as the PL versions are OK.

@DHowett, it seems strange that this would be happening with Cascadia Mono and Cascadia Code. Might this be due to that they are being installed/managed by Windows Terminal versus manual install (as the PL versions would be)?

DHowett commented 2 years ago

This is almost certainly the same issue that's been plaguing Terminal since Version like 0.5. It's terrifically frustrating.

"Repairing" the Terminal application in "All apps and features" should fix this, as should rebooting (?)

aaronbell commented 2 years ago

Thanks Dustin. It seems like this is not an issue with the font itself but with Windows Terminal, so I’ll go ahead and close it on this end.

ChameleonDevil commented 2 years ago

Thanks Dustin. It seems like this is not an issue with the font itself but with Windows Terminal, so I’ll go ahead and close it on this end.

How exactly do you get to that conclusion that it 'not an issue with the font itself', but with Windows Terminal, seemingly completely ignoring my post above (as others also pointed out above me), where I confirmed that Terminal/Windows Terminal/ and VS Code does not have access to Cascadia fonts anymore since last week.

See my comment above: https://github.com/microsoft/cascadia-code/issues/594#issuecomment-954565361

Sure, this may not be 'directly' be an issue with the font, but something is causing Windows to refuse to install/reinstall fonts that used to be there : namely Cascadia Mono, Cascadia Code, but now aren't available no matter what I tried. The only fonts installable are Cascadia Mono PL and Cascadia Code PL versions.

I hope this points you in the right direction to realise perhaps the non-PL versions do not work, for whatever reason, and some software (Terminal/Windows Terminal) use the non-PL version by default!, and because they use the non-PL version they fail.

It clearly doesn't feel like it is only an issue with software using, from what I see it is font compatability related to recent Windows changes.

The question should be why are those two font versions not installable anymore, when they still worked fine last week

aaronbell commented 2 years ago

Windows Terminal currently ships with Cascadia Code and Cascadia Mono, installing the two fonts via some back-channel method that isn’t really ‘officially’ installing them. These versions are the only ones that Windows Terminal will use.

For fun, you can download and install the fonts manually, even if you have Windows Terminal already present. All other applications on the system will be able to access and use the manually installed versions but Windows Terminal will still try to use the ones it shipped with.

So this issue is related to how Windows Terminal is “installing” the fonts onto the system that renders them inaccessible rather than the font files themselves that are failing.

As such, the problem should be filed / discussed on the Windows Terminal repository.

ChameleonDevil commented 2 years ago

Ok thanks for the explanation, however :

For fun, you can download and install the fonts manually, even if you have Windows Terminal already present. All other applications on the system will be able to access and use the manually installed versions but Windows Terminal will still try to use the ones it shipped with.

So using this as I tried last week (according to installation pages): Should be able to install versions manually (or via ZIP) and non-PL versions should also work?

choco install cascadiacode
choco install cascadiamono
choco install cascadiacodepl
choco install cascadiamonopl

As a minimum I would have expected the non-PL versions to then be manually installed, which as I explained last week doesn't happen, so Windows Terminal's installation method prevents these 'manual installation methods' from actually working? And whilst I used VS Code with Cascadia Mono, I always used this 'Windows Terminal font installation' which then broke down last week.

There is absolutely no way that any manual method gets those versions reinstalled currently; so I do not know if any of this is useful or not.

I actually just wanted to add work-arounds and also indicate issues for people that use these fonts with similar software last week, as not everyone gets to the correct repo, so hopefully it is useful for someone.

aaronbell commented 2 years ago

As I said, even if you manually install the font, Windows Terminal will always use its custom install (I had fun discovering this while working on the font and not seeing changes I made reflected in WT). I don’t know about Visual Studio’s implementation.

AFAIK, the only solution (as @Dhowett posted above), is

"Repairing" the Terminal application in "All apps and features" should fix this, as should rebooting (?)