Qt applications rendering glyphs instead of text for a few character combinations

50 Views Asked by At

I've had this annoying issue where in QT applications (only) certain character combinations are rendered as glyphs instead of the characters. For example fi is always rendered as a telephone, ff is rendered as two right chevrons. For example:

enter image description here

My $XDG_CONFIG_HOME/fontconfig/fonts.conf is included below.

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
  <!--Global settings-->
  <match target="font">
    <edit name="antialias" mode="assign">
      <bool>true</bool>
    </edit>
    <edit name="autohint" mode="assign">
      <bool>true</bool>
    </edit>
    <edit name="hinting" mode="assign">
      <bool>true</bool>
    </edit>
    <edit mode="assign" name="hintstyle">
      <!--Values: hintnone, hintslight, hintmedium, hintfull-->
      <const>hintslight</const>
    </edit>
    <edit mode="assign" name="lcdfilter">
      <const>lcddefault</const>
    </edit>
    <!--Subpixel rendering: pixel alignment-->
    <edit name="rgba" mode="assign">
      <const>rgb</const>
    </edit>
    <edit name="dpi" mode="assign">
      <double>96</double>
      <!-- <double>144</double> -->
    </edit>
  </match>

  <!--Change monospace font globally-->
  <match target="pattern">
    <test name="family" qual="any">
      <string>monospace</string>
    </test>
    <edit binding="strong" mode="prepend" name="family">
      <string>UbuntuMono</string>
    </edit>
  </match>

  <alias>
    <family>Century</family>
    <prefer>
      <family>Ubuntu Nerd Font Propo</family>
    </prefer>
  </alias>

  <!--Change serif font globally-->
  <alias>
    <family>serif</family>
    <prefer>
      <family>NotoSerif Nerd Font Propo</family>
    </prefer>
  </alias>

  <!--Change sans-serif font globally-->
  <alias>
    <family>sans-serif</family>
    <prefer>
      <family>Ubuntu Nerd Font Propo</family>
    </prefer>
  </alias>

  <match>
    <test name="family"><string>sans-serif</string></test>
    <edit name="family" mode="prepend" binding="strong">
      <string>Ubuntu Nerd Font Propo</string>
    </edit>
  </match>

  <match>
    <test name="family"><string>serif</string></test>
    <edit name="family" mode="prepend" binding="strong">
      <string>NotoSerif Nerd Font Propo</string>
    </edit>
  </match>

  <match>
    <test name="family"><string>Apple Color Emoji</string></test>
    <edit name="family" mode="prepend" binding="strong">
      <string>Apple Color Emoji</string>
    </edit>
  </match>

  <!-- Disable bitmap fonts to work around https://github.com/flatpak/flatpak/issues/2861 -->
  <selectfont><rejectfont><pattern>
    <patelt name="scalable"><bool>false</bool></patelt>
  </pattern></rejectfont></selectfont>
</fontconfig>

The screenshot example above seems to be a sans-serif font, so for example, here's my fc-match --verbose sans output below:

Pattern has 42 elts (size 48)
    family: "Ubuntu Nerd Font Propo"(s)
    familylang: "en"(s)
    style: "Regular"(s)
    stylelang: "en"(s)
    fullname: "Ubuntu Nerd Font Propo"(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: "DAMA"(s)
    antialias: True(w)
    hintstyle: 1(i)(w)
    hinting: True(w)
    verticallayout: False(s)
    autohint: True(w)
    globaladvance: True(s)
    file: "/usr/share/fonts/TTF/UbuntuNerdFontPropo-Regular.ttf"(s)
    index: 0(i)(w)
    outline: True(s)
    scalable: True(s)
    dpi: 96(f)(w)
    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 0000ffff 00000000 00040000 10000000 3f0002c0 00000000
    0003: 00020000 00000000 00000000 00000000 ffffd770 fffffffb 00007fff 00000000
    0004: ffffffff ffffffff ffffffff 003c000c fffffc00 ffffffff ffffffff 03ffffff
    001e: 00000000 00000000 00000000 00000000 0000003f 00000000 00000000 000c0000
    001f: 3f3fffff ffffffff aaff3f3f 3fffffff ffffffff ffdfffff efcfffdf 7fdcffff
    0020: 77380000 06010047 00000010 03f10000 000003ff 02105000 00000000 00000000
    0021: 00480000 00004044 7ff80000 00000000 00000000 00000000 00000000 00000000
    0022: 46268044 00000800 00000100 00000031 00000000 00000000 00000000 00000000
    0023: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 78000000
    0025: 00000000 00000000 00000000 00000000 00000000 00000000 00000400 00000000
    0026: 00000000 00010000 00000000 00000020 00000000 00000002 00000000 00000000
    0027: 00000000 00000000 00000000 0003f000 00000000 00000000 00000000 00000000
    002b: 00000000 00000000 01000000 00000000 00000000 00000000 00000000 00000000
    00e0: 000007ff 00000000 00000000 00000000 00000000 ffff000f 0017f5ff 80000000
    00e2: ffffffff ffffffff ffffffff ffffffff ffffffff 000003ff 00000000 00000000
    00e3: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 0000000f
    00e5: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 fc000000
    00e6: ffffffff ffffffff ffffffff ffffffff ffffffff 00003fff 00000000 00000000
    00e7: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 0000003f 00000000
    00ea: 00000000 00000000 00000000 ffffffff ffff9dff ffffffff fffff2ff ffffffff
    00eb: fffffbff ffffffff ffff7fff ffffffff ffffffff ffffffff ffffffff 00000fff
    00ef: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 20000000
    00f0: 7fff7fff 7ffffffe 7fff7fff 7fff7fff 7fff7fff 00077fff 7fff7fff ffff7fff
    00f1: 7fff7fff 7fff7fff 7fff7fff 7fff7fff 7fff7fff 7fff7fff 7fff7fff 7fff7fff
    00f2: 7fff7fff 7ffffffe 7fff7fff 7fff7fff 7fff7fff 7fff7fff 7fff7fff 00000001
    00f3: ffffffff 0000ffff 00000000 00000000 00000000 00000000 00000000 00000000
    00f4: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    00f5: ffffffff 000fffff 00000000 00000000 00000000 00000000 00000000 00000000
    00f8: 3fffffff 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    00fb: 0000001f 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    0f00: fffffffe ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0f01: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0f02: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0f03: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0f04: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0f05: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0f06: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0f07: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0f08: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0f09: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0f0a: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0f0b: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0f0c: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0f0d: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0f0e: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0f0f: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0f10: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0f11: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0f12: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0f13: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0f14: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0f15: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0f16: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0f17: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0f18: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0f19: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff
    0f1a: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff 0001ffff
(s)
    lang: aa|ab|af|av|ay|ba|be|bg|bi|br|bs|bua|ca|ce|ch|chm|co|cs|cv|cy|da|de|el|en|eo|es|et|eu|fi|fj|fo|fr|fur|fy|gd|gl|gv|ho|hr|hu|ia|id|ie|ik|io|is|it|kaa|ki|kk|kl|kum|kv|kw|ky|la|lb|lez|lt|lv|mg|mh|mk|mo|mt|nb|nds|nl|nn|no|nr|nso|ny|oc|om|os|pl|pt|rm|ro|ru|sah|sco|se|sel|sh|sk|sl|sma|smj|smn|sms|so|sq|sr|ss|st|sv|sw|tg|tk|tl|tn|tr|ts|tt|tyv|uk|uz|vo|vot|wa|wen|wo|xh|yap|zu|an|crh|csb|fil|hsb|ht|jv|kj|kr|ku-tr|kwm|lg|li|mn-mn|ms|na|ng|pap-an|pap-aw|rn|rw|sc|sg|sn|su|ty|za(s)
    fontversion: 54394(i)(s)
    capability: "otlayout:cyrl otlayout:grek otlayout:latn"(w)
    fontformat: "TrueType"(s)
    embeddedbitmap: True(s)
    decorative: False(s)
    lcdfilter: 1(i)(w)
    namelang: "en"(s)
    prgname: "fc-match"(s)
    postscriptname: "UbuntuNFP"(s)
    color: False(s)
    symbol: False(s)
    variable: False(s)
    fonthashint: True(s)
    order: 0(i)(s)
    desktop: "Hyprland"(s)

Any other output I can provide to help debug this? I've tried all sorts of fonts.conf options, but nothing seems to have helped here. Any idea whats going on here or what I can do to continue debugging? My google-fu is running out haha

0

There are 0 best solutions below