Skip to content

[WIP] Add Wayland backend to generic_unix

Drew DeVault requested to merge github/fork/status-im/wayland into master

Depends on https://github.com/godotengine/godot/pull/27266.

I started with @toger5's work on #23426 and cleaned things up a bit, then picked up the mantle of implementing more of the OS API for Wayland. This is still a WIP, but feedback is welcome.

Major todo items:

  • Improved HiDPI support
  • Video driver selection
  • Update build system
  • Choose the most suitable backend on startup in main.cpp
  • Compile Wayland protocols with scons
  • Re-evaluate EGL context creation
  • Default Godot cursor images
  • Mouse visible/hidden
  • Pointer constraints (for locking the mouse to the window)
  • Clipboard support
  • Keep screen on (idle inhibit)

Future work:

  • xdg-decoration support (borderless & bordered windows)
  • Adjust editor DPI auto-selection as the window moves between outputs of various DPIs
  • Key repeat
  • Pointer frames
  • Virtual keyboard (OSK) rigging
  • Custom cursor images

Decorations is probably going to be tough, as it will require Godot to render window decorations itself. The only Wayland compositor which requires this, iiuc, is GNOME. We can probably get away with fixing it separately from the main patch.

Merge request reports

Loading