-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
[WIP] Add Wayland backend #11546
base: master
Are you sure you want to change the base?
[WIP] Add Wayland backend #11546
Conversation
Thank you so much for your work! I hope this gets merged into 11! |
@affederaffe Do you think this can be still merged for the 11 update? |
There are still some minor bugs to be fixed before merging and since Avalonia 11 seems to be moving closer and closer to RCs (feature freeze), I don't think we'll see this merged before 11.0. 11.x seems to be possible though, see the prior discussion |
# Conflicts: # src/Avalonia.DesignerSupport/Remote/Stubs.cs # src/Headless/Avalonia.Headless/HeadlessWindowImpl.cs
11.1. 11.0 rc is coming in a matter of days and the team wont have time to test or review this in that time. 11.1 is likely to be very very soon after 11.0 however. |
When it comes to "ownership" of a Wayland object there is wl_proxy_set_tag but it's just a tag that exists per-object. The event handler thing is still definitely an issue I think. |
Adding on to some of my previous comments here: providing access to all Wayland singletons used by Avalonia ( |
# Conflicts: # src/Avalonia.FreeDesktop/DBusSystemDialog.cs # src/Avalonia.X11/X11Window.Ime.cs
Still the same issues left? |
Going to assume that this is wayland related - I'm using the unofficial avalonia vlc with overlay on Avalonia. Overlay/compositing/alpha works fine but when I exit the app the whole screen freezes and spits
Looking at the Avalonia Window source code and Ryujinx, I'm wondering if Avalonia needs to expose better Window close methods for native components but other than that, the hack from the unofficial VLC with an Avalonia window on top of the VLC component works like a charm. |
As I see it window embedding isn't really a problem anymore, at least on the video-player side. |
Any update on this PR? |
There's still some work to do:
|
|
is this dead? |
The plan is to figure something about CSD support in core avalonia and continue. Alternatively we could release it without CSD for usage with embedded systems, wayland seems to be ready enough for those. |
There are just too many unresolved issues, until I have the time and motivation to address those this PR continues to be WIP and thus unmergable from my perspective. |
What does the pull request do?
Add a Wayland backend for Linux.
This PR is based on the previous one with significant bug fixes and easier maintenance .
In order to test this PR, locally building NWayland NuGet packages is required:
git clone --recursive https://github.com/affederaffe/NWayland
next to theAvalonia
directory├── Avalonia
│ ├── samples
│ ├── src
│ ├── ...
├── NWayland
│ ├── src
│ ├── ...
Navigate to
./NWayland/src/NWayland.Scanner
anddotnet run
to generate the bindings.Then
dotnet build -c Release
the./NWayland/src/NWayland
and./NWayland/src/NWayland.Protocols.Plasma
projects, which creates the required NuGet packages.These steps won't be necessary once NWayland is released officially on NuGet.
TODOs:
What is the current behavior?
XWayland is used in order to run Avalonia apps on Wayland systems.
What is the updated/expected behavior with this PR?
Use Wayland instead of X11 on compatible systems.
How was the solution implemented (if it's not obvious)?
Checklist
Breaking changes
None
Obsoletions / Deprecations
None
Fixed issues
Fixes #1243
Fixes #2338