Skip to content

gpui: Implement support for wlr layer shell #32651

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

zeroeightysix
Copy link

I was interested in potentially using gpui for a hobby project, but needed layer shell support for it. Turns out gpui's (excellent!) architecture made that super easy to implement, so I went ahead and did it.

Layer shell is a window role used for notification windows, lock screens, docks, backgrounds, etc. Supporting it in gpui opens the door to implementing applications like that using the framework.

If this turns out interesting enough to merge - I'm also happy to provide a follow-up PR (when I have the time to) to implement some of the desirable window options for layer shell surfaces, such as:

  • namespace (currently always "")
  • keyboard interactivity (currently always OnDemand, which mimics normal keyboard interactivity)
  • anchor, exclusive zone, margins
  • popups

Release Notes:

  • Added support for wayland layer shell surfaces in gpui

@cla-bot cla-bot bot added the cla-signed The user has signed the Contributor License Agreement label Jun 13, 2025
@jansol
Copy link
Contributor

jansol commented Jun 17, 2025

Turning popups like menus in Zed into separate wayland surfaces would be nice, would interact much better with the compositor e.g. when the main window is a small tile (let the menu float over adjacent windows instead of covering the entire Zed window with it). And some nice to haves such as "free" background blurs to match the main window itself :P

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cla-signed The user has signed the Contributor License Agreement
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants