You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
detect Wayland before Tauri/WebKitGTK initialization
select WebKitGTK's DMA-BUF fallback when no user renderer override is present, avoiding the EGL_BAD_PARAMETER startup abort reported on Arch/Plasma Wayland
preserve explicit WEBKIT_DISABLE_DMABUF_RENDERER choices and provide THINKUTILS_SKIP_WAYLAND_WORKAROUND=1 as an opt-out
document the behavior and cover Wayland, X11, override, and opt-out decisions
The renderer environment must be set before thinkutils_lib::run() initializes Tauri and creates the WebKitGTK webview. Applying it in setup hooks would be too late for the failing EGL display initialization.
Validation
Executed in a clean Debian 12 ARM64 Linux container with the same WebKitGTK/GTK packages required by CI:
cargo fmt --all -- --check
cargo clippy --all-targets -- -D warnings
cargo test — 136 passed, 0 failed, including 2 new Linux Wayland decision tests
git diff --check
I could not reproduce a physical Plasma/Wayland compositor inside the headless container, so the PR remains draft for a reporter/maintainer smoke test on the affected desktop.
I ran an optional Rust architecture pass against this branch with Arcade Agent's in-review Rust parser (lemduc/arcade-agent#18). The first repo-root attempt correctly reported no directly rooted Rust sources, so I reran against src-tauri/ from a clean cache; generated cache data was removed afterward.
General result:
parsed 325 Rust entities and 425 dependency edges into 17 recovered components
main improvement signals: Dependency Distribution 0.4706, Component Balance 0.5747, Hub Balance 0.75
no architecture smells detected
Proposal: once Rust parsing is merged and shipped in an Arcade Agent release, add a non-blocking PR report scoped to src-tauri/. That scope matters here because the repository root is frontend-first and the current analyzer discovers no Rust files from that root. A non-blocking rollout would let maintainers observe score stability before considering regression thresholds.
This PR does not add an analyzer dependency or modify CI policy.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
EGL_BAD_PARAMETERstartup abort reported on Arch/Plasma WaylandWEBKIT_DISABLE_DMABUF_RENDERERchoices and provideTHINKUTILS_SKIP_WAYLAND_WORKAROUND=1as an opt-outCloses #12.
Why this is early startup code
The renderer environment must be set before
thinkutils_lib::run()initializes Tauri and creates the WebKitGTK webview. Applying it in setup hooks would be too late for the failing EGL display initialization.Validation
Executed in a clean Debian 12 ARM64 Linux container with the same WebKitGTK/GTK packages required by CI:
cargo fmt --all -- --checkcargo clippy --all-targets -- -D warningscargo test— 136 passed, 0 failed, including 2 new Linux Wayland decision testsgit diff --checkI could not reproduce a physical Plasma/Wayland compositor inside the headless container, so the PR remains draft for a reporter/maintainer smoke test on the affected desktop.