macOS Like Fonts on Manjaro/Arch Linux
aswinmohan.me
aswinmohan.me
Since then I have yet to see an environment meet that bar, and have wasted no more time configuring X, fonts, compositors, themes, key binds, etc. I look forward to this changing one day, but I'm not expecting it soon. The ecosystem moves between technical targets too often to reach sufficient polish to meet the bar.
Making a font change to an open source project is a good way to attract angry replies in issue trackers if you’re not careful. The Perfect Configuration (TM) simply doesn’t exist.
In both of these images you can clearly see bad color bleed in the title bar font, and in the content font in the after case. I'm guessing the users main concern is that they want a higher text density which the after shot demonstrates. IMO both of these cases can be improved substantially to remove the color faults using grayscale subpixel rather than this colorful mess.
RGB subpixel has not looked good on any screen I've used in what about 10 years? The shapes of displays no longer produces good results with these techniques.
Why? Take a picture of your screen from close up with a modern phone and zoom in. You may see a non-RGB layout, but even if you don't you'll almost certainly observe a pattern where the empty space is significantly vertically larger around one boundary (often red/blue), this is related to the brightness targets monitors have been hitting for so long. As the pixels no longer align with the theoretical shape, if you can see the colors, the colors often look super trashy.
I generally replace the monospace/console font - but i do that on MacOS and windows too.
Tbh I find the lack of decent (tiled) wm (as well as broken display on "low-res" (1440p/QHD) external displays) on MacOS much more frustrating. I make do with yabai, but the hoops one needs to jump through and the resulting fragile setup isn't great.
Hm, now i came across this - so maybe there's a decent fix for that too?
Curious as to what's being referred to here. I've used 27" 2560x1440 displays with macOS for a long time, both with Intel and M-series Macs.
I had to buy a new monitor and went with a 1440p to save money, but returned it and got the 4K. It's significantly better.
In some ways, this is smart - it avoids the need for applications to handle anything other than 1x and 2x modes, and it avoids the complications of handling fractional pixel sizes (how does an application draw a 1 logical pixel wide line at a 1.5x scale).
In other ways it is monumentally stupid. The macOS technique wastes resources rendering at a higher resolution than you actually need. Worse, even though the downscaling is excellent in macOS, it still has ringing artifacts and it still is blurrier than native fractional scaling.
This is personally one of the things that I hate most about macOS. Many Mac laptops ship with internal displays that default to a resolution that is scaled in this way (though fortunately not the 14/16 inch Apple Silicon MacBook Pro). That's annoying, but it's not nearly as bad as the situation with external displays. I use a UHD (3840x2160) 32" display. On Windows it's perfect at 1.25x scale. On macOS, my laptop ends up rendering at 6144x3456 and then scaling the output down. This looks very noticably blurry, and it's a huge waste of resources.
Only Windows really gets this right among desktop/laptop operating systems.
GNOME uses the same behavior as macOS, except that the "render at higher resolution and scale down" options are hidden by default, and the scaling itself is a lot blurrier.
KDE does support native fractional scaling, but there are a ton of bugs related to rounding errors causing 1px gaps and random cases where applications end up being blurry, especially on Wayland. Worse, display scaling changes often don't apply until you log out or restart applications, which is particularly annoying if you have a different scale factor on an internal and external display.
Windows on the other hand handles this relatively well, although there are still some annoying bugs on Windows 10 related to the taskbar and notifications (mostly fixed in Windows 11). There are also still a lot of Windows applications that do not handle scaling at all, which end up in blur city.
This doesn't sound right - i had gnome/Wayland running on two external displays with different fractional scaling - and a window spanning the gap or being moved from one screen to the other looked fine?
This (fractional scaling) only worked under Wayland - but there it worked fine.
It was my mainly driver for a few years and I remember at least a few announcements of breaking changes.
One thing I'd tweak for my own usage though is to use Inter[0] in place of TeX Gyre Heros for the sans-serif font. Inter, as its name suggests, is designed specifically for usage as a screen/UI font and has metrics extremely similar to those of San Francisco, which is the font that Apple has been using for its UIs for several years now. Inter also has broad language support with a wider variety of weights, so there's practically no situation in which it comes up lacking.
Wasn't aware of the Figma-related heritage, but real-world dog-fooding use helps explain the professionalism.
<edit name="autohint" mode="assign">
<bool>true</bool>
</edit>
<edit name="hinting" mode="assign">
<bool>true</bool>
</edit>
<edit mode="assign" name="hintstyle">
<const>hintslight</const>
</edit>
I thought macOS did very little font hinting? I personally turn off hinting in my fonts.conf. Also, TeX Gyre Heros isn't identical to Helvetica Neue, which itself is not hard to find on the Internet.You'd achieve macOS style rendering on Linux by:
* disabling hinting completely (don't forget the auto hinter)
* disable subpixel anti-aliasing (use only grayscale full pixel anti-aliasing)
Then you need to find a way to enable sub-pixel positioning (which uses anti-aliasing to offset glyphs by fractions of a pixel). If your applications are all QT5/6 or GTK4, you're done, because this is enabled by default. Applications that use other text drawing methods (including GTK2/3 but probably others) may need additional adjustment. I think the only sure-fire way of doing it would be to patch Pango / Cairo.
Personally, I do most of the above but leave sub-pixel anti-aliasing enabled, because it works better on my low-DPI monitor.
The advice given on the page is outright wrong for a few reasons:
* it doesn't mention sub-pixel anti-aliasing at all (and leaves it enabled!)
* the before picture appears to have less hinting than the after picture, and therefore more macOS like (??)
* it doesn't mention sub-pixel positioning at all
Something else to note: Chrome/Chromium does its own font rasterization using Skia, and it tends to not abide by font settings.
This font config is what I've been using for ages: https://gist.github.com/radupotop/acec155e01a3b5c7ec9beff100...
Basically it boils down to: rgba=none, hinting=true, hintstyle=hintslight, antialias=true, with a few font replacement directives.
Having a High-DPI screen obviously helps. I found that 27 inch monitors with UHD resolutions to provide a good density at around 163 PPI.
It's worse with extended color gamut monitors. sRGB is necessary for the color weights to be properly balanced.
It's probably me, but font rendering sucks on macos. The out-of-the-box experience on external screens which are not hidpi is worse than windows XP. I needed all kinds of small tools and the commandline to make MacOS not do a terrible job. The macos forums have loads of complaints about this, of course almost all are answered with: "well, you got used to hi-dpi on your mac, that's how bad it looks on low-dpi screens, you should buy an thunderbolt/5k screen".
Btw, this used to be fine when i used MacOSX in ca 2012-2015. The subpixel hinting has explicitly been disabled since Mac mojave [1]
In short, the MacOS envy is highly misplaced.
[1]: https://www.reddit.com/r/apple/comments/8wpk18/macos_mojave_...
And I also wish Terminal (not to mention XQuartz) rendered bitmap fonts properly (sharply) with antialiasing disabled. iTerm2 does it correctly, but it's sluggish compared to Terminal.
Fortunately I use HiDPI 99.9% of the time.
But I still wish they'd fix bitmap font rendering.
I re-cropped the images myself, here's a link: https://imgur.com/a/KBljy6S
Wikipedia results on macOS Chrome https://i.imgur.com/uE6BZ3g.png
https://web.archive.org/web/20230531183821/https://aswinmoha...
I use macOS, I use Linux, I don't have a problem with the fonts. In my opinion they all look great.
I'd say this though, macOS fonts generally look worse and too thick on a 1080p display.
Looking at the screenshots in the article, I personally prefer the "before" version.
On my Linux machine I use Deja Vu fonts for pretty much anything. I very intentionally don't install "Windows compatibility fonts" and the like. In my opinion it looks great, but someone else might have a different opinion.
I also used the classic "Xterm fixed" fonts for a long time and thought that looked great too (I switched to DejaVu Sans Mono a long time ago, mostly for better scaling) which still has a group of dedicated "fans" today, but many would probably consider it horrendous.
One thing I will say that's objectively bad is fontconfig configuration, which is quite arcane.
The OP doesn't even configure font rendering beyond the default, they're just adding macOS fonts to Linux.
Then windows improved a lot (and I assume linux also did improve but honestly I stopped using Linux for the desktop long time ago so I don't remember) while MacOS support for low resolution text stagnated and I believe you if you say that on windows and/or Linux fonts may render better on low DPI than on a Mac.
But I have to nitpick your phrasing that MacOS hasn't been designed to run on non-hidpi: that can be right since the design is not something you just change due to neglect; a design is something that stays forever and you see vestiges of
No, that’s not how it works - this is engineering, not Deepak Chopra. Apple is not big on backward compat and legacy and when a compromise has to be made to favor either their current line up or legacy/3rd party they always choose the former.
For instance new versions of macOS simply don’t support subpixel AA anymore because no standard Apple config involves non hidpi displays. Additionally, macOS renders via framebuffer scaling, not flexible UI scaling (with some good reasons for this compromise), but it’s a compromise and non retina font rendering suffers for it.
Correctly configured Windows and Linux offer superior font rendering on non HiDPI and Linux is easily tunable to be subjectively better on any config.
I don't have a citation handy, but I believe this was a conscious design choice to favor HiDPI displays.
macOS quite literally is not designed for non-hidpi displays anymore.
A 27" 5K is 218 PPI, which is the minimum pixel density for desk work, IMO.
I completely disagree with that. 110 dpi is totally fine for desk work. Always has been and will probably continue to be for a really long time.
I take my 38" doing 3840x1600 at 110 DPI over a 27"K (or even two) doing 218 DPI any day.
Now if you do photography or work on designing bills (as in money), then you'll want higher DPI. But for "desk work", there's zero need for anything more than 110 DPI. It may be "nice" to have retina fonts but it's by not a requirement.
I'd even say the real world is powered by something like 95%+ of people doing "desk work" on 110 DPI (or less) screen.
Also, if 5K / 218 PPI is the "minimum pixel density" for desk work, what's the minimum density for creatives?
By "desk work" I mean the type of work where the physical distance between your eyes and the display is ~50cm. Mobile devices like phones have higher pixel density because they are held closer to the eyes (~25cm) than a computer monitor on a desk. Angular pixel density is the important factor here.
As kitsunesoba mentioned, I find >200 PPI much easier on the eyes when reading and writing text, my eyes don't get nearly as fatigued as they do on low PPI displays.
I think it's one of those things that once you get used to high PPI displays, it's really hard to go back to low PPI. Have you looked at a pre-Retina iPhone or iPad recently? Would you take that over the high PPI display common on every mobile device today?
Personally I wouldn't take an ultrawide over a high PPI main display and "regular" PPI second display but that's purely a matter of preference.
I think it was the font smoothing feature.
Fortunately, you can remedy this by installing better fonts. Some people will even go so far as to install all the fonts from Windows and MacOS to give them the right look wherever they go.
Fortunately, I have found that you can enable subpixel AA in browsers and in CSS stylesheets, and that solves the problem. Just weird that subpixel AA is not on by default on non-retina displays.