-
-
Save pandasauce/398c080f9054f05bee6e1c465416b53b to your computer and use it in GitHub Desktop.
# 75.0.3770.142 | |
0x04b58615 7626 => 9090 0x04b58615 | |
0x04b5861d 31c0488945 => 9090909090 0x04b5861d | |
Due to a beautiful bug in Chromium, it turns out you don't need this binary patch and can **enable** subpixel positioning by asking Chrome **to disable it**: https://bugs.chromium.org/p/chromium/issues/detail?id=824153#c39 | |
Needless to say, I won't be maintaining this gist any longer. |
How do try this out ? I am a KDE Plasma user and I read your article. i have the fonts from my Windows machine already installed and working but like you I use chrome a lot so I would like to give this a shot. I also have font cache scaling turned on in flags.
Just install windows loool
How do try this out ? I am a KDE Plasma user and I read your article. i have the fonts from my Windows machine already installed and working but like you I use chrome a lot so I would like to give this a shot. I also have font cache scaling turned on in flags.
Currently this requires manually patching your Chrome binary for every release. Once the source patch is merged, this is how it will work out of the box when fontconfig
is set to full hinting. Note that it requires a build of freetype
with subpixel rendering enabled, which is not the default on some distros. I do the patching with radare2.
- Open the binary in write mode
r2 -w chrome
- Seek to the address specified, i.e.
0x04982102
:s 0x04982102
- Write the bytes specified, i.e.
b80001
:wx b80001
- Repeat for every offset listed
Hi, If I want to make it force hintslight instead of hintfull, what do I need to do?
@AnwarShah, reverse engineer the binary and come up with your own binary patch :)
They changed enough things in v74 to make the binary very different from v72 and v73, so my full hinting patch will take a few nights of reversing too.
This will no longer force full hinting, it just removes the line that would otherwise disable hinting for subpixel positioning. The reason is I switched to using full hinting by default system-wide.
So, I can use this to use slight hinting system-wide and force chrome to use hinting for subpixel positioning, right?
@AnwarShah, subpixel positioning is different from hinting. They are two different concepts. This binary patch forces params.subpixel_positioning = true
similar to how this patch will do it once merged. As of v74, it does not force any hinting settings.
Due to a beautiful bug in Chromium, it turns out you don't need this binary patch and can enable subpixel positioning by asking Chrome to disable it: https://bugs.chromium.org/p/chromium/issues/detail?id=824153#c39
Needless to say, I won't be maintaining this gist any longer.
Due to a beautiful bug in Chromium, it turns out you don't need this binary patch and can enable subpixel positioning by asking Chrome to disable it: https://bugs.chromium.org/p/chromium/issues/detail?id=824153#c39
Needless to say, I won't be maintaining this gist any longer.
User need to re-compile though, right? Is there any flag ?
@AnwarShah, no. Just add --disable-font-subpixel-positioning
as a command line argument when launching Chrome. It will do the exact opposite to what it says and enable subpixel positioning unconditionally.
@pandasauce That's awesome actually. I'm immediately seeing much improvement on brave browser which is chromium based. The texts are much sharper. Thanks!
Glad you like it. Something that is implied, but maybe I should point it out: this trick applies to all Chromium-based desktop applications too, i.e. Spotify and Slack.
Yeah. I knew it.
How do try this out ? I am a KDE Plasma user and I read your article. i have the fonts from my Windows machine already installed and working but like you I use chrome a lot so I would like to give this a shot. I also have font cache scaling turned on in flags.