gpui_linux: Consume Wayland startup activation token - #59995
Merged
Conversation
cole-miller
self-requested a review
June 27, 2026 14:38
cole-miller
approved these changes
Jun 27, 2026
4 tasks
15 tasks
AprilNEA
pushed a commit
to AprilNEA/OpenLogi
that referenced
this pull request
Jul 18, 2026
…vation rework (#400) On Linux the GUI could panic at startup ("RefCell already borrowed" in gpui_linux's with_common, wayland client.rs:924 / x11 client.rs:1529), preceded by an "activation token received with no pending activation" error from the xdg-activation Done handler. The pinned zed rev predated gpui's rework of Wayland startup activation (zed-industries/zed#59995), which consumes the launcher's XDG_ACTIVATION_TOKEN on the first toplevel instead of leaving the startup round-trip to racy self-activation. Move the zed pin from eb2223c0 (2026-05-24) to 1a246efd (2026-07-15) — the rev gpui-component master builds against — and bump gpui-component/ gpui-component-assets to 031555662e99 in lockstep, since the old pair does not compile against any newer gpui. The only API drift on our side is gpui's BoxShadow gaining an inset field. The spurious "no pending activation" startup error is gone with the new pin, and Wayland + X11 startup, OS light/dark flips, and window reopen were exercised without a panic.
jolutz
pushed a commit
to jolutz/zed
that referenced
this pull request
Aug 8, 2026
…59995) When opening Zed from GNOME on Wayland, the cursor can stay stuck in the launch spinner state for several seconds because GPUI never tells the compositor that the launched app's first window has loaded. Desktop launchers pass this information through `XDG_ACTIVATION_TOKEN`, which Wayland clients are expected to consume once their first toplevel surface is ready. This PR fixes that by reading and removing `XDG_ACTIVATION_TOKEN` during Wayland client startup, storing it on the client state, and consuming it on the first XDG toplevel surface via the existing `xdg_activation_v1.activate(token, surface)` plumbing. Anthony manually verified this on GNOME Wayland. docs ref: https://wayland.app/protocols/xdg-activation-v1 Release Notes: - Fixed Linux Wayland cursor being stuck as a spinner for a couple of seconds.
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
When opening Zed from GNOME on Wayland, the cursor can stay stuck in the launch spinner state for several seconds because GPUI never tells the compositor that the launched app's first window has loaded. Desktop launchers pass this information through
XDG_ACTIVATION_TOKEN, which Wayland clients are expected to consume once their first toplevel surface is ready.This PR fixes that by reading and removing
XDG_ACTIVATION_TOKENduring Wayland client startup, storing it on the client state, and consuming it on the first XDG toplevel surface via the existingxdg_activation_v1.activate(token, surface)plumbing. Anthony manually verified this on GNOME Wayland.docs ref: https://wayland.app/protocols/xdg-activation-v1
Release Notes: