Summary
On Linux, Tommy Flyleaf always renders in the dark theme, ignoring the desktop's light/dark (color-scheme) setting. Choosing Light in GNOME still gives the dark UI.
Cause
winit returns None from system_theme() on Linux unconditionally (winit-0.30.x, src/platform_impl/linux/mod.rs); egui-winit passes that through and egui falls back to Theme::Dark. No desktop setting reaches the app.
This is the same defect the rest of the fleet already fixes: slipcase-desktop (its origin), segler-desktop and duckling each carry a system_theme module that reads the XDG desktop portal's color-scheme — treating 0/default as light, per GNOME's spelling — and applies it at startup. Flyleaf is the one desktop app without it.
Impact
- Linux users who choose Light get the dark UI.
- It blocks a light screenshot on Linux. The excelano.com hero rotation theme-swaps each GUI app's screenshot to match the viewer's theme; Flyleaf can only ship a dark shot because a light one can't be captured on Linux, while Segler, Duckling and Slipcase can.
Suggested fix
Port src/system_theme.rs from slipcase-desktop (or segler-desktop) into the flyleaf app crate and call it after the eframe context is created, the way the others do (system_theme::follow(&cc.egui_ctx)). It is Linux-only and no-ops elsewhere, since winit answers system_theme() on macOS and Windows.
Measured
2026-09-08, GNOME 48: with color-scheme set to default / prefer-light, Flyleaf drew dark; Segler, Duckling and Slipcase drew light under the identical setting.
Summary
On Linux, Tommy Flyleaf always renders in the dark theme, ignoring the desktop's light/dark (
color-scheme) setting. Choosing Light in GNOME still gives the dark UI.Cause
winitreturnsNonefromsystem_theme()on Linux unconditionally (winit-0.30.x,src/platform_impl/linux/mod.rs);egui-winitpasses that through and egui falls back toTheme::Dark. No desktop setting reaches the app.This is the same defect the rest of the fleet already fixes:
slipcase-desktop(its origin),segler-desktopandducklingeach carry asystem_thememodule that reads the XDG desktop portal'scolor-scheme— treating0/defaultas light, per GNOME's spelling — and applies it at startup. Flyleaf is the one desktop app without it.Impact
Suggested fix
Port
src/system_theme.rsfromslipcase-desktop(orsegler-desktop) into theflyleafapp crate and call it after the eframe context is created, the way the others do (system_theme::follow(&cc.egui_ctx)). It is Linux-only and no-ops elsewhere, since winit answerssystem_theme()on macOS and Windows.Measured
2026-09-08, GNOME 48: with
color-schemeset todefault/prefer-light, Flyleaf drew dark; Segler, Duckling and Slipcase drew light under the identical setting.