You are not logged in.
Trying to figure out how or why text is often being displayed pixelated on GTK apps such as Firefox and Inkscape. In Firefox, it seems to only be an issue on some websites where, I believe, it is defaulting to my system font.
Sample of the issue from System Settings in KDE
I'm at a loss here and starting to go mad with all the testing, would love any helpful guidance on common causes for this type of issue.
I've tried just about everything I can find in the wiki and forums, restarting applications or logging in and out each time to test, including:
- Changing default fonts
- Setting specific DPI in KDE system font settings
- Playing with hinting and anti-aliasing
- Disabling bitmap fonts in ~/.config/fontconfig/fonts.conf
- Checking for any strange env variables
- Removing xorg-fonts-75dpi (not that it should matter since this is Wayland, right?)
- Adding and removing explicitly installed fonts
- Change GTK theme
I noticed this line in my gtk settings.ini files: gtk-xft-dpi=98304
I tried removing it and restarting, but it returns on its own. Could that be related?
fc-match --verbose sans:
Pattern has 42 elts (size 48)
family: "Noto Sans"(w)
familylang: "en"(s)
style: "Regular"(s)
stylelang: "en"(s)
fullname: "Noto Sans Regular"(w)
fullnamelang: "en"(s)
slant: 0(i)(s)
weight: 80(f)(s)
width: 100(f)(s)
size: 12(f)(s)
pixelsize: 12.5(f)(s)
foundry: "GOOG"(s)
antialias: True(w)
hintstyle: 1(i)(w)
hinting: True(w)
verticallayout: False(s)
autohint: True(w)
globaladvance: True(s)
file: "/usr/share/fonts/noto/NotoSans-Regular.ttf"(s)
index: 0(i)(w)
outline: True(s)
scalable: True(s)
dpi: 75(f)(s)
rgba: 1(i)(w)
scale: 1(f)(s)
charset:
0000: 00000000 ffffffff ffffffff 7fffffff 00000000 ffffffff ffffffff ffffffff
0001: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
0002: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
0003: ffffffff ffffffff ffffffff fcffffff ffffd7f0 fffffffb ffffffff ffff0003
0004: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
0005: ffffffff 0000ffff 00000000 00000000 00000000 00000000 00000000 00000000
001a: 00000000 00000000 00000000 00000000 00000000 ffff0000 00007fa1 00000000
001c: 00000000 00000000 00000000 00000000 000001ff 00000000 00000000 00000000
001d: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fbffffff
001e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
001f: 3f3fffff ffffffff aaff3f3f 3fffffff ffffffff ffdfffff efcfffdf 7fdcffff
0020: ffffffff ffffffff ffffffff fff3ffdf 1fff7fff ffffffff 00000000 00010000
0021: ffffffff ffffffff ffffffff 00000000 00000210 00000000 00000000 00000000
0022: 00040000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0025: 00000000 00000000 00000000 00000000 00000000 00000000 00001000 00000000
002c: 00000000 00000000 00000000 ffffffff 00000000 00000000 00000000 00000000
002d: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ffffffff
002e: ffffffff ffffffff 3fffffff 00000000 00000000 00000000 00000000 00000000
00a6: 00000000 00000000 ffffffff ffffffff ffffffff 00000000 00000000 00000000
00a7: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 03eb07ff fffc0000
00a9: 00000000 00004000 00000000 00000000 00000000 00000000 00000000 00000000
00ab: 00000000 ffff0000 ffffffff 00000fff 00000000 00000000 00000000 00000000
00fb: 0000007f 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00fe: 00000001 0000ffff 00000000 00000000 00000000 00000000 00000000 80000000
00ff: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 30000000
0107: 00000000 00000000 00000000 00000000 ffffffbf 07fdffff 00000000 00000000
011a: 00000000 00000000 00000000 00000000 00000000 00030000 00000000 00000000
01df: 7fffffff 00000000 00000000 00000000 00000000 00000000 00000000 00000000
(s)
lang: aa|ab|af|ast|av|ay|az-az|ba|bm|be|bg|bi|bin|br|bs|bua|ca|ce|ch|chm|co|cs|cu|cv|cy|da|de|el|en|eo|es|et|eu|fi|fj|fo|fr|ff|fur|fy|ga|gd|gl|gn|gv|ha|haw|ho|hr|hu|ia|ig|id|ie|ik|io|is|it|kaa|ki|kk|kl|ku-am|kum|kv|kw|ky|la|lb|lez|ln|lt|lv|mg|mh|mi|mk|mo|mt|nb|nds|nl|nn|no|nr|nso|ny|oc|om|os|pl|pt|rm|ro|ru|sah|sco|se|sel|sh|shs|sk|sl|sm|sma|smj|smn|sms|so|sq|sr|ss|st|sv|sw|tg|tk|tl|tn|to|tr|ts|tt|tw|tyv|uk|uz|ve|vi|vo|vot|wa|wen|wo|xh|yap|yo|zu|ak|an|ber-dz|crh|csb|ee|fat|fil|hsb|ht|hz|jv|kab|kj|kr|ku-tr|kwm|lg|li|mn-mn|ms|na|ng|nv|pap-an|pap-aw|qu|quz|rn|rw|sc|sg|sn|su|ty|za(s)
fontversion: 131727(i)(s)
capability: "otlayout:DFLT otlayout:cyrl otlayout:grek otlayout:latn"(w)
fontformat: "TrueType"(s)
embeddedbitmap: False(w)
decorative: False(s)
lcdfilter: 1(i)(w)
namelang: "en"(s)
prgname: "fc-match"(s)
postscriptname: "NotoSans-Regular"(s)
color: False(s)
symbol: False(s)
variable: False(s)
fonthashint: True(s)
order: 0(i)(s)
desktop: "KDE"(s)~/.config/fontconfig/fonts.conf
<?xml version='1.0'?>
<!DOCTYPE fontconfig SYSTEM 'urn:fontconfig:fonts.dtd'>
<fontconfig>
<!--
Artificial oblique for fonts without an italic or oblique version
-->
<match target="font">
<!-- check to see if the font is roman -->
<test name="slant">
<const>roman</const>
</test>
<!-- check to see if the pattern requested non-roman -->
<test compare="not_eq" target="pattern" name="slant">
<const>roman</const>
</test>
<!-- multiply the matrix to slant the font -->
<edit mode="assign" name="matrix">
<times>
<name>matrix</name>
<matrix>
<double>1</double>
<double>0.2</double>
<double>0</double>
<double>1</double>
</matrix>
</times>
</edit>
<!-- pretend the font is oblique now -->
<edit mode="assign" name="slant">
<const>oblique</const>
</edit>
<!-- and disable embedded bitmaps for artificial oblique -->
<edit mode="assign" name="embeddedbitmap">
<bool>false</bool>
</edit>
</match>
<!--
Synthetic emboldening for fonts that do not have bold face available
-->
<match target="font">
<!-- check to see if the weight in the font is less than medium which possibly need emboldening -->
<test compare="less_eq" name="weight">
<const>medium</const>
</test>
<!-- check to see if the pattern requests bold -->
<test compare="more_eq" target="pattern" name="weight">
<const>bold</const>
</test>
<!--
set the embolden flag
needed for applications using cairo, e.g. gucharmap, gedit, ...
-->
<edit mode="assign" name="embolden">
<bool>true</bool>
</edit>
<!--
set weight to bold
needed for applications using Xft directly, e.g. Firefox, ...
-->
<edit mode="assign" name="weight">
<const>bold</const>
</edit>
</match>
<dir>~/.fonts</dir>
<match target="font">
<edit mode="assign" name="hinting">
<bool>true</bool>
</edit>
</match>
<match target="font">
<edit mode="assign" name="hintstyle">
<const>hintslight</const>
</edit>
</match>
<match target="font">
<edit mode="assign" name="rgba">
<const>rgb</const>
</edit>
</match>
<match target="font">
<edit mode="assign" name="antialias">
<bool>true</bool>
</edit>
</match>
<match target="font">
<edit name="embeddedbitmap" mode="assign">
<bool>false</bool>
</edit>
</match>
</fontconfig>If anyone can help, thanks in advance.
Last edited by geedorah (2023-02-21 20:51:19)
Offline
https://wiki.archlinux.org/title/Font_c … plications
I tried removing it and restarting, but it returns on its own.
What if you set it to 96 instead?
Online
Good idea, but it didn't seem to have any effect on new applications and the change would not persist after logout/login.
Offline
Did you also try to alter the xrdb config? ("xrdb -q | grep xft")
Online
xrdb -q | grep xftreturns no result as user or root. Also, since this is Wayland I think the issue has something to do with the DPI settings there. Is it possible Firefox/other applications aren't actually using my system fonts due to permissions or something? The text doesn't just look pixelated, it looks like a different font.
Offline
Here's a sample of some medium size text in Firefox for example:
Last edited by geedorah (2023-02-20 06:24:39)
Offline
on GTK apps such as Firefox and Inkscape
Do those run natively or on xwayland?
Online
Seems to only be an issue up to a certain size of font.
Here's the heading of this Wikipedia page's heading at 100% in Firefox:
Here's the same heading at 150% zoom:
How...
Offline
fc-conflistThere're several "20-unhint-small-*" configurations, they affect font heights < 8 *pixels*, but perhaps the calculation is off because of wayland.
Online
Okay, this is bizarre—Firefox defaults to Times up to 40px in size, then switches to Nimbus (I'm guessing Times is the hardcoded default). Thing is, I don't have Times installed. At one point I installed ttf-ms-win11-auto from AUR, but since removed it while testing. Seems like Times is what's broken and GTK apps are defaulting to it incorrectly?
See images of Inspector in Firefox:

Last edited by geedorah (2023-02-20 08:45:04)
Offline
The first fron is resolved from https://archlinux.org/packages/extra/an … ts-100dpi/ …
Online
Still at a loss here. I've reinstalled ttf-ms-win11-auto from AUR yet the issue persists. No clue what's causing fonts to look so /wrong/.
fc-conflist
+ /etc/fonts/conf.d/10-autohint.conf: Enable autohinter
+ /etc/fonts/conf.d/10-hinting-slight.conf: Set hintslight to hintstyle
+ /etc/fonts/conf.d/10-powerline-symbols.conf: No description
+ /etc/fonts/conf.d/10-scale-bitmap-fonts.conf: Bitmap scaling
+ /etc/fonts/conf.d/10-sub-pixel-rgb.conf: Enable sub-pixel rendering with the RGB stripes layout
+ /etc/fonts/conf.d/10-symbols.conf: No description
+ /etc/fonts/conf.d/10-yes-antialias.conf: Enable antialiasing
+ /etc/fonts/conf.d/11-lcdfilter-default.conf: Use lcddefault as default for LCD filter
+ /etc/fonts/conf.d/20-unhint-small-dejavu-lgc-sans-mono.conf: No description
+ /etc/fonts/conf.d/20-unhint-small-dejavu-lgc-sans.conf: No description
+ /etc/fonts/conf.d/20-unhint-small-dejavu-lgc-serif.conf: No description
+ /etc/fonts/conf.d/20-unhint-small-dejavu-sans-mono.conf: No description
+ /etc/fonts/conf.d/20-unhint-small-dejavu-sans.conf: No description
+ /etc/fonts/conf.d/20-unhint-small-dejavu-serif.conf: No description
+ /etc/fonts/conf.d/20-unhint-small-vera.conf: Disable hinting for Bitstream Vera fonts when the size is less than 8ppem
+ /etc/fonts/conf.d/30-metric-aliases.conf: Set substitutions for similar/metric-compatible families
+ /etc/fonts/conf.d/30-win32-aliases.conf: No description
+ /etc/fonts/conf.d/40-nonlatin.conf: Set substitutions for non-Latin fonts
+ /etc/fonts/conf.d/45-generic.conf: Set substitutions for emoji/math fonts
+ /etc/fonts/conf.d/45-latin.conf: Set substitutions for Latin fonts
+ /etc/fonts/conf.d/46-noto-mono.conf: No description
+ /etc/fonts/conf.d/46-noto-sans.conf: No description
+ /etc/fonts/conf.d/46-noto-serif.conf: No description
+ /etc/fonts/conf.d/48-spacing.conf: Add mono to the family when spacing is 100
+ /etc/fonts/conf.d/49-sansserif.conf: Add sans-serif to the family when no generic name
+ /home/cooper/.config/fontconfig/conf.d/20-no-embedded.conf: No description
+ /home/cooper/.config/fontconfig/fonts.conf: No description
+ /etc/fonts/conf.d/50-user.conf: Load per-user customization files
+ /etc/fonts/conf.d/51-local.conf: Load local customization file
+ /etc/fonts/conf.d/57-dejavu-sans-mono.conf: No description
+ /etc/fonts/conf.d/57-dejavu-sans.conf: No description
+ /etc/fonts/conf.d/57-dejavu-serif.conf: No description
+ /etc/fonts/conf.d/58-dejavu-lgc-sans-mono.conf: No description
+ /etc/fonts/conf.d/58-dejavu-lgc-sans.conf: No description
+ /etc/fonts/conf.d/58-dejavu-lgc-serif.conf: No description
+ /etc/fonts/conf.d/60-generic.conf: Set preferable fonts for emoji/math fonts
+ /etc/fonts/conf.d/60-latin.conf: Set preferable fonts for Latin
+ /etc/fonts/conf.d/65-fonts-persian.conf: No description
+ /etc/fonts/conf.d/65-nonlatin.conf: Set preferable fonts for non-Latin
+ /etc/fonts/conf.d/66-noto-mono.conf: No description
+ /etc/fonts/conf.d/66-noto-sans.conf: No description
+ /etc/fonts/conf.d/66-noto-serif.conf: No description
+ /etc/fonts/conf.d/69-unifont.conf: No description
+ /etc/fonts/conf.d/69-urw-bookman.conf: No description
+ /etc/fonts/conf.d/69-urw-c059.conf: No description
+ /etc/fonts/conf.d/69-urw-d050000l.conf: No description
+ /etc/fonts/conf.d/69-urw-fallback-backwards.conf: No description
+ /etc/fonts/conf.d/69-urw-fallback-generics.conf: No description
+ /etc/fonts/conf.d/69-urw-fallback-specifics.conf: No description
+ /etc/fonts/conf.d/69-urw-gothic.conf: No description
+ /etc/fonts/conf.d/69-urw-nimbus-mono-ps.conf: No description
+ /etc/fonts/conf.d/69-urw-nimbus-roman.conf: No description
+ /etc/fonts/conf.d/69-urw-nimbus-sans.conf: No description
+ /etc/fonts/conf.d/69-urw-p052.conf: No description
+ /etc/fonts/conf.d/69-urw-standard-symbols-ps.conf: No description
+ /etc/fonts/conf.d/69-urw-z003.conf: No description
+ /etc/fonts/conf.d/75-yes-terminus.conf: No description
+ /etc/fonts/conf.d/80-delicious.conf: No description
+ /etc/fonts/conf.d/90-synthetic.conf: No description
+ /etc/fonts/fonts.conf: Default configuration file
- /usr/share/fontconfig/conf.avail/05-reset-dirs-sample.conf: Re-define fonts dirs sample
- /usr/share/fontconfig/conf.avail/09-autohint-if-no-hinting.conf: Enable autohinter if font doesn't have any hinting
- /usr/share/fontconfig/conf.avail/09-texlive-fonts.conf: No description
- /usr/share/fontconfig/conf.avail/10-hinting-full.conf: Set hintfull to hintstyle
- /usr/share/fontconfig/conf.avail/10-hinting-medium.conf: Set hintmedium to hintstyle
- /usr/share/fontconfig/conf.avail/10-hinting-none.conf: Set hintnone to hintstyle
- /usr/share/fontconfig/conf.avail/10-hinting-slight.conf: Set hintslight to hintstyle
- /usr/share/fontconfig/conf.avail/10-no-antialias.conf: Disable antialiasing
- /usr/share/fontconfig/conf.avail/10-powerline-symbols.conf: No description
- /usr/share/fontconfig/conf.avail/10-scale-bitmap-fonts.conf: Bitmap scaling
- /usr/share/fontconfig/conf.avail/10-sub-pixel-bgr.conf: Enable sub-pixel rendering with the BGR stripes layout
- /usr/share/fontconfig/conf.avail/10-sub-pixel-none.conf: Disable sub-pixel rendering
- /usr/share/fontconfig/conf.avail/10-sub-pixel-rgb.conf: Enable sub-pixel rendering with the RGB stripes layout
- /usr/share/fontconfig/conf.avail/10-sub-pixel-vbgr.conf: Enable sub-pixel rendering with the vertical BGR stripes layout
- /usr/share/fontconfig/conf.avail/10-sub-pixel-vrgb.conf: Enable sub-pixel rendering with the vertical RGB stripes layout
- /usr/share/fontconfig/conf.avail/10-symbols.conf: No description
- /usr/share/fontconfig/conf.avail/10-unhinted.conf: Disable hinting
- /usr/share/fontconfig/conf.avail/10-yes-antialias.conf: Enable antialiasing
- /usr/share/fontconfig/conf.avail/11-lcdfilter-default.conf: Use lcddefault as default for LCD filter
- /usr/share/fontconfig/conf.avail/11-lcdfilter-legacy.conf: Use lcdlegacy as default for LCD filter
- /usr/share/fontconfig/conf.avail/11-lcdfilter-light.conf: Use lcdlight as default for LCD filter
- /usr/share/fontconfig/conf.avail/20-unhint-small-dejavu-lgc-sans-mono.conf: No description
- /usr/share/fontconfig/conf.avail/20-unhint-small-dejavu-lgc-sans.conf: No description
- /usr/share/fontconfig/conf.avail/20-unhint-small-dejavu-lgc-serif.conf: No description
- /usr/share/fontconfig/conf.avail/20-unhint-small-dejavu-sans-mono.conf: No description
- /usr/share/fontconfig/conf.avail/20-unhint-small-dejavu-sans.conf: No description
- /usr/share/fontconfig/conf.avail/20-unhint-small-dejavu-serif.conf: No description
- /usr/share/fontconfig/conf.avail/20-unhint-small-vera.conf: Disable hinting for Bitstream Vera fonts when the size is less than 8ppem
- /usr/share/fontconfig/conf.avail/25-unhint-nonlatin.conf: Disable hinting for CJK fonts
- /usr/share/fontconfig/conf.avail/30-metric-aliases.conf: Set substitutions for similar/metric-compatible families
- /usr/share/fontconfig/conf.avail/30-win32-aliases.conf: No description
- /usr/share/fontconfig/conf.avail/35-lang-normalize.conf: No description
- /usr/share/fontconfig/conf.avail/40-nonlatin.conf: Set substitutions for non-Latin fonts
- /usr/share/fontconfig/conf.avail/45-generic.conf: Set substitutions for emoji/math fonts
- /usr/share/fontconfig/conf.avail/45-latin.conf: Set substitutions for Latin fonts
- /usr/share/fontconfig/conf.avail/46-noto-mono.conf: No description
- /usr/share/fontconfig/conf.avail/46-noto-sans.conf: No description
- /usr/share/fontconfig/conf.avail/46-noto-serif.conf: No description
- /usr/share/fontconfig/conf.avail/48-spacing.conf: Add mono to the family when spacing is 100
- /usr/share/fontconfig/conf.avail/49-sansserif.conf: Add sans-serif to the family when no generic name
- /usr/share/fontconfig/conf.avail/50-user.conf: Load per-user customization files
- /usr/share/fontconfig/conf.avail/51-local.conf: Load local customization file
- /usr/share/fontconfig/conf.avail/57-dejavu-sans-mono.conf: No description
- /usr/share/fontconfig/conf.avail/57-dejavu-sans.conf: No description
- /usr/share/fontconfig/conf.avail/57-dejavu-serif.conf: No description
- /usr/share/fontconfig/conf.avail/58-dejavu-lgc-sans-mono.conf: No description
- /usr/share/fontconfig/conf.avail/58-dejavu-lgc-sans.conf: No description
- /usr/share/fontconfig/conf.avail/58-dejavu-lgc-serif.conf: No description
- /usr/share/fontconfig/conf.avail/60-generic.conf: Set preferable fonts for emoji/math fonts
- /usr/share/fontconfig/conf.avail/60-latin.conf: Set preferable fonts for Latin
- /usr/share/fontconfig/conf.avail/65-fonts-persian.conf: No description
- /usr/share/fontconfig/conf.avail/65-khmer.conf: No description
- /usr/share/fontconfig/conf.avail/65-nonlatin.conf: Set preferable fonts for non-Latin
- /usr/share/fontconfig/conf.avail/66-noto-mono.conf: No description
- /usr/share/fontconfig/conf.avail/66-noto-sans.conf: No description
- /usr/share/fontconfig/conf.avail/66-noto-serif.conf: No description
- /usr/share/fontconfig/conf.avail/69-unifont.conf: No description
- /usr/share/fontconfig/conf.avail/69-urw-bookman.conf: No description
- /usr/share/fontconfig/conf.avail/69-urw-c059.conf: No description
- /usr/share/fontconfig/conf.avail/69-urw-d050000l.conf: No description
- /usr/share/fontconfig/conf.avail/69-urw-fallback-backwards.conf: No description
- /usr/share/fontconfig/conf.avail/69-urw-fallback-generics.conf: No description
- /usr/share/fontconfig/conf.avail/69-urw-fallback-specifics.conf: No description
- /usr/share/fontconfig/conf.avail/69-urw-gothic.conf: No description
- /usr/share/fontconfig/conf.avail/69-urw-nimbus-mono-ps.conf: No description
- /usr/share/fontconfig/conf.avail/69-urw-nimbus-roman.conf: No description
- /usr/share/fontconfig/conf.avail/69-urw-nimbus-sans.conf: No description
- /usr/share/fontconfig/conf.avail/69-urw-p052.conf: No description
- /usr/share/fontconfig/conf.avail/69-urw-standard-symbols-ps.conf: No description
- /usr/share/fontconfig/conf.avail/69-urw-z003.conf: No description
- /usr/share/fontconfig/conf.avail/70-no-bitmaps.conf: Reject bitmap fonts
- /usr/share/fontconfig/conf.avail/70-yes-bitmaps.conf: Accept bitmap fonts
- /usr/share/fontconfig/conf.avail/75-yes-terminus.conf: No description
- /usr/share/fontconfig/conf.avail/80-delicious.conf: No description
- /usr/share/fontconfig/conf.avail/90-synthetic.conf: No descriptionLast edited by geedorah (2023-02-21 05:55:05)
Offline
Solved. The issue was Nimbus Sans which is included in the "gnu-free-fonts" package. Firefox and other applications were defaulting to Nimbus which has poor readability at smaller sizes.
Offline