Fontconfig incorrectly selects OpenDyslexic WOFF for sans-serif and causes IntelliJ/Copilot UI freeze

Hello Zorin OS team,

I found a fontconfig issue on my Zorin OS system that caused IntelliJ IDEA and GitHub Copilot to freeze when opening the Copilot Chat/Agent UI.

System:

  • Zorin OS 18
  • Ubuntu 24.04 (Noble) base
  • GNOME Shell 46
  • IntelliJ IDEA Ultimate 2026.2.3
  • GitHub Copilot plugin 1.18.0

Problem

GitHub Copilot was stuck at:

"Loading / Initializing Copilot..."

IntelliJ itself worked normally when Copilot was disabled.

After taking a Java thread dump, the AWT Event Dispatch Thread was found blocked while creating the Copilot Compose/Skia UI:

org.jetbrains.skia.FontMgrKt._nDefault
androidx.compose.ui.text.platform.FontCache
androidx.compose.ui.text.font.SkiaFontLoader
com.github.copilot.agentHarness.ui.ComposeBackgroundAgentPanelFactory
com.github.copilot.chat.window.CopilotChatToolWindowController

I initially investigated Copilot configuration, MCP, GPU/JCEF and network issues, but none of those resolved the problem.

Fontconfig investigation

Before the workaround:

$ fc-match sans-serif
OpenDyslexic-Bold.woff: "Arimo" ""

$ fc-match "Noto Sans"
OpenDyslexic-Bold.woff: "Noto Sans" ""

$ fc-match "Arimo"
OpenDyslexic-Bold.woff: "Arimo" ""

This seemed unusual because the system was configured to use Noto Sans, but Fontconfig was selecting OpenDyslexic-Bold.woff for generic and named font requests.

Zorin package information

The OpenDyslexic font is installed through the Ubuntu/Debian package:

fonts-opendyslexic

And on my system:

$ apt-cache depends fonts-zorin-os-core | grep -i opendyslexic
Recommends: fonts-opendyslexic

$ apt-mark showauto | grep -E 'fonts-opendyslexic|fonts-zorin-os-core'
fonts-opendyslexic
fonts-zorin-os-core

So both packages are installed automatically.

Workaround

I temporarily moved the OpenDyslexic WOFF files out of the active font directory:

sudo mkdir -p /usr/share/fonts/woff/opendyslexic.disabled

sudo mv /usr/share/fonts/woff/opendyslexic/*.woff
/usr/share/fonts/woff/opendyslexic.disabled/

sudo fc-cache -f

After this:

$ fc-match sans-serif
Arimo-Regular.ttf: "Arimo" "Regular"

Then I added a Fontconfig configuration to explicitly prefer Noto Sans for generic sans-serif requests.

After rebuilding the cache:

$ fc-match sans-serif
NotoSans-Regular.ttf: "Noto Sans" "Regular"

$ fc-match "Noto Sans"
NotoSans-Regular.ttf: "Noto Sans" "Regular"

$ fc-match "Arimo"
Arimo-Regular.ttf: "Arimo" "Regular"

Result

After correcting the Fontconfig font selection, IntelliJ IDEA and GitHub Copilot work normally.

Importantly, I can now launch IntelliJ normally without:

SKIKO_RENDER_API=SOFTWARE_FAST
JCEF_DISABLE_GPU=1

and Copilot still works correctly.

Conclusion

I don't know whether the root cause is the OpenDyslexic font itself or a Fontconfig configuration/aliasing issue.

The reproducible part is that Fontconfig selected:

OpenDyslexic-Bold.woff

for:

  • sans-serif
  • Noto Sans
  • Arimo

and correcting the font selection completely resolved the IntelliJ/GitHub Copilot UI freeze.

Could you please investigate whether the Zorin font configuration or the fonts-opendyslexic package integration can cause this behavior?

I would be happy to provide the full thread dump, fontconfig output, or any additional diagnostics if needed.

fc-match -v sans-serif | grep -E 'file:|family:|style:'

/usr/share/fonts/woff/opendyslexic/OpenDyslexic-Bold.woff

Welcome to the Forum!

There is at the Moment as Issue that is fontconfig-related:

You could try this:

2 Likes

Hi folks!
I found another reproducible manifestation of what appears to be the same Fontconfig/Qt6 issue, this time causing Appimage OpenRGB 1.0 to crash on Zorin OS 18.1.

I'm just a regular user and was only able to find and correct this bug with ChatGPT aid, so be aware that the following report was written by ChatGPT (not this paragraph thou :wink: )

My system:

  • Zorin OS 18.1
  • Ubuntu 24.04 base
  • GNOME 46
  • OpenRGB 1.0 AppImage
  • OpenRGB commit: 81bbe18a84c2e507006f19dd252e397e40a56bfe
  • Fontconfig: 2.15.0-1.1ubuntu2

OpenRGB initially failed with a segmentation fault. The crash occurred both under Wayland and Xorg, so it does not appear to be Wayland-specific.

Using GDB, I obtained this relevant backtrace:

#0  ... in ?? () from /lib/x86_64-linux-gnu/libfontconfig.so.1
#1  ... in FcCharSetHasChar()
     from /lib/x86_64-linux-gnu/libfontconfig.so.1
#2  ... in QFontEngineMultiFontConfig::shouldLoadFontEngineForCharacter()
     from .../libQt6Gui.so.6
#3  ... in QFontEngineMulti::stringToCMap()
#4  ... in QTextEngine::shapeText()
#5  ... in QTextEngine::boundingBox()
...

Before the workaround, Fontconfig selected:

/usr/share/fonts/woff/opendyslexic/OpenDyslexic-Bold.woff

for generic font matching.

I tested several Fontconfig configurations. OpenRGB starts normally when the OpenDyslexic WOFF directory is excluded from Fontconfig:

<selectfont>
    <rejectfont>
        <glob>/usr/share/fonts/woff/opendyslexic/*</glob>
    </rejectfont>
</selectfont>

After rebuilding the Fontconfig cache, fc-match "sans-serif" selects a normal font instead:

/usr/share/fonts/truetype/croscore/Arimo-Regular.ttf

OpenRGB then starts normally, without any special environment variables.

I cannot say that one particular OpenDyslexic WOFF file is the sole cause, because excluding individual files did not reproduce the result consistently. The reproducible observation is that rejecting the OpenDyslexic WOFF set prevents the crash.

The OpenDyslexic OTF fonts remain installed.

This seems particularly relevant because the GDB backtrace is essentially the same libfontconfig -> FcCharSetHasChar -> QFontEngineMultiFontConfig path described in recent Qt6/Fontconfig crash reports.

I thought this additional OpenRGB case might be useful for investigating the underlying Fontconfig/Qt6 issue on Zorin OS 18.