Skip to content
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

Wayland client support #183

Closed

Conversation

tdewey-rpi
Copy link

@tdewey-rpi tdewey-rpi commented Jul 29, 2024

With these commits, and a suitable AppImageCraft configuration, I can package Raspberry Pi Imager with the Wayland QPA platform and avoid the use of Xserver on Raspberry Pi OS Bookworm (and likely other clients too).

Fixes: #160 and #130.

In order to effectively use the Wayland platform, you must
provide shell integration plugins. Introduce a deployer
for these, and a new environment variable,
EXTRA_WAYLAND_SHELL_INTEGRATION_PLUGINS to specify them.
In order to use the Wayland QT QPA platform, you must provide:
1) libwayland
2) A shell integration plugin
3) A graphics integration plugin

For Raspberry Pi Bookworm users, (1) is straightforward, (2) can
rely on the default plugin, and (3) will likely be egl - but this
deployer will just package all of them, if you ask for it.
@tdewey-rpi
Copy link
Author

Example fragment appimagecraft configuation:

appimage: linuxdeploy: plugins: - qt raw_environment: QML_SOURCES_PATHS: "\"$PROJECT_ROOT\"/src/qmlcomponents/" environment: EXTRA_PLATFORM_PLUGINS: "libqwayland-egl.so;libqwayland-generic.so" EXTRA_QT_PLUGINS: "wayland-shell-integration;waylandclient;wayland-graphics-integration-client"

@tdewey-rpi
Copy link
Author

I'm prepared to withdraw this PR as the functionality already exists in the tree, albeit in a different way than I'd implemented.

@tdewey-rpi tdewey-rpi closed this Jul 29, 2024
@dantti
Copy link
Contributor

dantti commented Aug 2, 2024

Sorry what am I missing that you say that this already exists?

@tdewey-rpi
Copy link
Author

Sorry what am I missing that you say that this already exists?

https://github.com/linuxdeploy/linuxdeploy-plugin-qt/blob/master/src/deployers/WaylandcompositorPluginsDeployer.cpp

While this PR would have introduced separate deployers for the Qt plugin directories, there's already a combined deployer in the tree, which can service my requirements for Raspberry Pi Imager.

@tdewey-rpi tdewey-rpi deleted the wayland-client-support branch August 2, 2024 15:22
@dantti
Copy link
Contributor

dantti commented Aug 2, 2024

well that install the Qt compositor libraries as well, not sure it's the best thing

@dantti
Copy link
Contributor

dantti commented Aug 2, 2024

I was just trying to pack a wayland libs again and I think your proposal is better, tho I would instead hook both shell and graphics integration into a single WaylandClient, it's easier and better to exclude-libraries than picking what we might need.
I just wish my PRs were merged as your code would be a bit smaller...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Export Qt wayland plugins
2 participants