mirror of
https://github.com/johannesjo/super-productivity.git
synced 2026-07-17 16:37:43 +00:00
Trace the root cause to Electron's init order: Ozone platform selection fires in C++ PreEarlyInitialization() and the chosen platform is memoized in ui/ozone/platform_selection.cc's g_selected_platform static. Any app.commandLine.appendSwitch() from main.js runs in PostEarlyInitialization() — after the memoization, so the write is correct but the read has already happened. Primary source: electron PR #48301 diff + Chromium ui/ozone/platform_selection.cc. This confirms the argv wrapper is structurally the only fix available from outside the Electron binary. Also documents why the two lower-friction alternatives don't work: - ELECTRON_OZONE_PLATFORM_HINT env var was removed as dead code in Electron 39 (PR #47983). - Setting XDG_SESSION_TYPE=x11 via snapcraft.yaml environment: would work for Ozone but would fool IdleTimeHandler, silently breaking GNOME Wayland idle detection. Confidence in the mechanism hypothesis is raised from ~40% to ~85%. Residual unknown: whether GPU child-process CommandLine inheritance exposes a late appendSwitch to subsystems other than Ozone. Not verified from source; does not change the shipping recommendation. Related: issue #7270. |
||
|---|---|---|
| .. | ||
| recurring-events-gap-analysis.md | ||
| recurring-events-implementation-plan.md | ||
| recurring-events-industry-standards.md | ||
| snap-wayland-gpu-fix-research.md | ||