-
Notifications
You must be signed in to change notification settings - Fork 29k
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
Proper fix for font smoothing in Mojave #59887
Comments
@vl4dimir your best chances of success is to fix this in Electron and talk to them. |
@bpasero OK, I'll create an issue in their repo. Let's see how deep the rabbit hole goes. Thanks! |
This is a reproducible issue that affects the entire Chromium platform (Electron, NW.js, Opera and Vivaldi browsers, etc). We must wait the Chromium team address this, and wait for the Electron team do the same. You can track their progress here: https://bugs.chromium.org/p/chromium/issues/detail?id=858861 But this issue is targeted as Chromium 70, so it's possible that even if they fix it, we won't see these fixes in VSCode as the newest version of Electron (v3.0.0 still in beta) uses Chromium 66. |
@brunnopleffken Thanks for the additional info! Apparently this goes even deeper, into the Skia library which is used by all the projects you mentioned, and even Firefox. Looks like it may take a while before it's fixed. |
@vl4dimir Indeed. Seems like the Skia team is already working on it (but they still cannot reproduce the font rendering of Safari, which is the best on macOS Mojave until now). So it'll take a long time until it reaches Visual Studio Code. |
hi all! @brunnopleffken actually Electron 3.0.x has been out of beta since the 20th of September, and i've got a PR up that may fix this; it'd go out in an upcoming patch release ✨ |
Hello @codebytere. I see you ported the Skia patch to Electron, nice!!! Good work! I downloaded the latest version of Chrome Dev branch with this patch and indeed it improves the font rendering (still not the same level as Safari's but it's really better than before). AFAIK, I believe they're still working on it to make it better. Keep our eyes on it to maintain the font rendering engine up to date. |
Would be amazing if this is fixed, because now a lot of apps look terrible on my mac. :) |
It's now fixed in |
Hi there, Has there been any update on this? I've tried the nightly insiders build, and the problem is still present. Thanks! |
Is it my imagination, or is the font better since macOS update 10.14.2? |
I feel like it's a bit better but not like before |
No, it’s still thin.
|
By the way, good news! Chrome Dev-branch 73.0.3642.0 released a Skia update definitely fixing the font rendering of Chromium on macOS Mojave. Comparing side-by-side with Safari, the fonts are identical and finally feels native with the rest of the OS! However, version 73 isn't released yet, and even when it is, it'll take some time to hit Electron. 😞 |
While still not a proper fix, you can disable the new antialiasing just for a single app. For example for Insiders, run:
Just change the signature for the regular build. Credit: https://www.reddit.com/r/apple/comments/9leavs/fix_mojave_font_rendering_issues_on_a_perapp_basis/ |
@sampotts fix worked for me:
|
@brunnopleffken The Skia patch you are talking about was actually merged in M72. Have a look at this one: https://bugs.chromium.org/p/chromium/issues/detail?id=901611 I think it fixes the issue once and for all. |
@kstratis It's fixed since 16. December. Does anybody know, when it will land in Electron / VSCode? |
It will take some time. The current latest stable version of Electron is 4.x, which is based on Chromium 69. The nightly Electron version is 5.0, currently based on Chromium 70 and it doesn't have a release date yet. They have plans to update to Chromium 72 (https://github.com/electron/electron/projects/16), which may contain this fix, but it also doesn't have a release date yet. And even when Electron 5.0 is released with Chromium 72, it'll take some time until Electron apps such as Visual Studio Code update and test their dependencies. |
@msdlisper Did you read the initial comment?
|
sorry.... I take that back |
@bpasero @codebytere As already mentioned earlier in this thread, having a workaround in place isn't a fix for the issue. The linked issue is locked for further commenting, so hence why I've raised it here. I've mentioned in the electron thread about this appearing to not be fixed yet, but have received no response from electron. I guess that's not really the place where this should be raised though as the issue exists in VS Code, as per the screenshots I provided in their issue thread. This issue here is still tagged as upstream. Can either of you (or anyone else) shed any light on the current state of play with this issue? Thanks. |
AFAIK the fix for the font issue was also backported to v3.1.9. Backport: electron/libchromiumcontent#759 |
Part of the problem is that https://skia-review.googlesource.com/c/skia/+/157566 wasn't back-ported properly to Electron 4. This is missing:
|
@miniak the insiders build thats tested here is based on Electron 6 that has the above fix. |
How can I discover which version of Electron is used by the stable version of VS Code? Thanks! |
@valentinocossar |
Wondering if this is electron related. This was an issue previously that was resolved with VS Code upgrading the underlying version of Electron to v4 in |
After the latest October update, my fonts are blurry and thinner on my external monitor 😞 |
For me, too. Seems like a real regression. Commented 26 days ago that this is worse than it was before, but no answer. #59887 (comment) |
Upgrading to 1.40.0 has caused fonts to look aliased on my external monitor too, despite having followed the |
You no longer need the workaround ("fix"), if you delete it fonts will match those of Chrome. |
We aren't talking about fonts matching to those in Chrome, we are talking that font rendering is awful comparing to the ones with the fix. See my screenshots #59887 (comment) |
Something has changed to worse in October update. Changing Font Aliasing to "antialiased" seems to make it better |
The font will look blurry on external monitors if you used the defaults workaround. So just remove the values (or at least for me it worked...)
|
The system font rendering looks awful on macOS Catalina if the Mojave hack is enabled. Safari font looks thin and Chromium fonts looks aliased. So, if you're using Catalina, disable the old
Everything seems MUCH better, fonts are crisp and beautiful both on Chromium and Safari. |
With the "Mojave Fix" ( If your Mojave hack is turned off, everything looks beautiful and smooth like on High Sierra. |
@brunnopleffken Perhaps you could send some screenshots of what you're talking about? Also, my defaults settings do not affect Chromium or Safari, as I'm using the version of the command that only affects VS Code, not the entire system. |
@brunnopleffken that is not true. You can clearly see the difference with 1.39.2 with Of course, the thinner font in the screenshot is on 1.40.x. This only happens on external screen, on Retina it looks fine. |
@nklmilojevic |
Why does it matter if it's a default setting in macOS or not? It restores proper rendering as it was in High Sierra and before. Also, Electron v4 doesn't have a problem with it, as reported, so I would say it is a bug. For example, here's 1.40.x font rendering: And here's IntelliJ: XCode also has good font rendering, but electron (v6/v7) apps are falling short. |
Yes ok, but neither the vscode team nor the electron team can do anything here. Electron is based on Chromium, where the fix also doesn't work anymore, since the rendering engine was adapted to the new macOS. Feel free to open an issue in the chromium issue forum: https://bugs.chromium.org/p/chromium |
I agree that it is up to Chromium, but if the rendering fails only on Chromium/Electron apps and works normally in XCode/IntelliJ/iTerm2 than it is not adapting, but rather a bug. :) I would suggest to the VSCode team to downgrade to Electron v4 until this is fixed as a lot of us are having this problem on macOS. But of course, that is not up to me. |
I do not agree with that, Electron 4 looks much worse than Electron 6 for all macOS users with default settings. |
I totally disagree with downgrading to Electron 4 just because the font doesn't look good. An Electron upgrade isn't just about font rendering. Anyway, I took some screenshots comparing the Catalina with the Mojave hack ( Safari (above, with hack; below, hacks disabled and everything set to default) Spotlight (above, with the hack; below, everything set to Catalina's default) Finder (above, hack turned on; below, default settings on Catalina) As I said, on Catalina, disable all the hacks. They fixed all the font rendering issues and looks like the High Sierra times, the system UI looks beautiful again. If VSCode doesn't look good, they must upgrade to the newest Electron version (as the new Chrome v78, 79 and 80 look perfect). |
Uh, I hate repeating myself. I have disabled all hacks on the system, I just enable the hacks in the apps that look awful. Btw. Chrome isn't rendering the font correctly on Catalina: https://bugs.chromium.org/p/chromium/issues/detail?id=1005969 For example, this is your post on Firefox: Chrome: Safari: The font is noticeably worse on Chrome than on FF and Safari on Github alone, but also on other sites. As this is not a problem on VSCode's side so I will stop bothering the team until Chromium fixes it. |
@nklmilojevic Oh, you're talking about the font kerning, not exactly the font anti-aliasing. Because on Catalina the anti-aliasing of Chrome is working perfectly with the hacks disabled, but the San Francisco font kerning indeed seems smaller, more squeezed and slightly thin. It happens only with Chrome, and only on Catalina. 🙄 Firefox and Safari renders the San Francisco font perfectly like native apps. |
Steps to Reproduce:
I know there's already #51132 but manually changing a system-wide property affecting all applications to a legacy setting (and sub-pixel smoothing is a legacy setting in Mojave) shouldn't be marked as "fixing" this issue.
I think it's important to stay in line with how the target OS is functioning. Here's how Xcode renders fonts:
Here's iTerm:
Here's VS Code:
And here's an animated version, for easy comparison:
So even on Retina screens, the fonts are very thin and hard to read.☹️
I realize this is related to Electron, as it affects Atom as well – atom/atom#17486. I don't see anyone raising this issue but I think it's very important. Setting
CGFontRenderingFontSmoothingDisabled
toNO
is reverting the entire OS back to the legacy setting. Not cool. Let's do it the right way. I'd be happy to open an upstream issue and follow through with this if you can point me in the right direction.(ping @bpasero)
The text was updated successfully, but these errors were encountered: