Linux/Electron bootstrap leaves renderer stuck on splash because renderer globals and font loading are fragile
Author: MauricioMCunhaCreated Jun 7, 2026Updated Jun 7, 2026
Summary
On a current Linux desktop, running the current master branch can leave Pencil stuck on the splash screen.
The main window opens, but the UI is never mounted. The renderer keeps the raw <ui:ApplicationPane .../> node in the DOM instead of materializing the application view.
Environment
- OS: Linux
- Branch tested:
master - Commit tested:
7d0ec3d - Electron from project dependencies
Reproduction
- Clone
evolus/pencil - Run
npm installat repository root - Run
npm installinsideapp/ - Start the app
Observed behavior
- Splash stays visible
- Main UI is not mounted
- Renderer throws cascading exceptions
Exceptions observed
Representative failures observed during renderer startup:
- missing renderer globals used by classic scripts, such as
fs,path,remote - font loading path using
document.fontsin a way that does not complete reliably on current Electron/Chromium FontLoader.systemRepobeing read before it is initialized
Examples from runtime inspection:
TypeError: Cannot read properties of undefined (reading 'faces')TypeError: Cannot read properties of undefined (reading 'fonts')
Notes
This seems to be a combination of:
- renderer bootstrap relying on globals that are no longer implicitly shared the way the rest of the code expects
- fragile font-loading bootstrap
FontLoaderassumingsystemRepois already available
I have a local patch that reduces this to a small set of changes in:
app/app.jsapp/pencil-core/common/FontLoader.jsapp/pencil-core/common/FontLoaderUtil.js
If useful, I can turn that into a focused PR.
Source: evolus/pencil