linuxdeploy / linuxdeploy-plugin-qt

Qt plugin for linuxdeploy, bundling Qt resources, plugins, QML files and a lot more.
https://github.com/linuxdeploy/linuxdeploy
MIT License
102 stars 36 forks source link

Export Qt wayland plugins #160

Open oyvindln opened 6 months ago

oyvindln commented 6 months ago

The plugin currently only exports Qt plugins for X11. Distributions are now moving towards Wayland as default so it would be nice if there was at least an optional setting for also exporting the needed Qt wayland platform plugins to run natively on wayland instead of having to run the appimage via xwayland. Just adding them as EXTRA_PLATFORM_PLUGINS does not seem to add all the needed files.

PR #157 may solve this but not sure.

mdear commented 6 months ago

I am also aiming to package for Wayland / Weston. I create a packaging VM using Yocto Poky Kirkstone Linux and explicitly remove X11 collateral and explicitly add Wayland / Weston collateral in my $POKY_ROOT/build/conf/local.conf prior to launching a build. I'm building against target qemuarm64 and running under QEMU emulation from an x86_64 packaging VM. The VM comes up with a standard Weston desktop where I can launch a terminal and move it around with my mouse.

Here are some hints to get you started:

Add the following lines to your local.conf, remove all content under cache* and tmp in your build directory and bitbake a fresh binary.

DISTRO_FEATURES:remove = "x11" DISTRO_FEATURES:append = " wayland" PACKAGECONFIG:remove:pn-qtbase = "x11" PACKAGECONFIG:append:pn-qtbase = " wayland"

Also, since we're using the commercial license, there are a few more steps to include the commercial FFMPEG collateral.

With all that said, I'm also seeing evidence that plugins for Wayland, even when made available in the underlying build system, are not making their way into the AppImage. Since my neck is on the line for this, I'll tinker and try to get a PR that will extend the tool. I'll also take a look at the PR you mentioned. Wish me luck !

SushiTee commented 6 months ago

PR #157 may solve this but not sure.

It does for me. I'm not sure though if this is the best solution. It would be nice if there was a way to simply tell linuxdeploy which directories from the plugins directory to deploy instead of connecting it to the actual plugin names of Qt.

mdear commented 6 months ago

For the record, here's what I get when I run the AppImage (Dice 3D/physics example that ships with Qt6) on a freshly rebooted CrossControl v700 device (i.MX8DualXPlus ARMv8 aarch64 platform):

root@v700:/home/ccs/Downloads# export QT_QPA_PLATFORM=wayland
root@v700:/home/ccs/Downloads# ./Dice-aarch64.AppImage
qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in ""
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Aborted
root@v700:/home/ccs/Downloads#

On my platform, the westin user has id 1000 export XDG_RUNTIME_DIR=/run/user/1000

The toolchain works as shown below, without me setting the following line: export EXTRA_PLATFORM_PLUGINS="libqwayland-egl.so libqwayland-generic.so"

When I specify the extra plugins, I get the following error: ERROR: Cannot deploy non-existing library file: /usr/lib/plugins/platforms/libqwayland-egl.so libqwayland-generic.so

even though the files are actually available:

root@qemuarm64:/home/ccs/Qt/Projects/CortexBuilds/bin# ls /usr/lib/plugins/platforms
libqeglfs.so  libqminimalegl.so  libqminimal.so  libqoffscreen.so  libqvkkhrdisplay.so  libqvnc.so  libqwayland-egl.so  libqwayland-generic.so  libqxcb.so

Here's the file structure created by the linuxdeploy toolchain with qt input plugin and appimage output plugin : Note the conspicuous absence of content in the /usr/plugins/platforms portion of the tree :

.
├── AppRun
├── apprun-hooks
│   └── linuxdeploy-plugin-qt-hook.sh
├── AppRun.wrapped -> usr/bin/dice
├── dice.desktop -> usr/share/applications/dice.desktop
├── dice.png -> usr/share/icons/hicolor/160x160/apps/dice.png
└── usr
    ├── bin
    │   ├── dice
    │   └── qt.conf
    ├── lib
    │   ├── libavcodec.so.59
    │   ├── libavformat.so.59
    │   ├── libavutil.so.57
    │   ├── libbz2.so.1
    │   ├── libdbus-1.so.3
    │   ├── libffi.so.8
    │   ├── libFLAC.so.8
    │   ├── libGLESv2.so.2
    │   ├── libglib-2.0.so.0
    │   ├── libgmodule-2.0.so.0
    │   ├── libgobject-2.0.so.0
    │   ├── libgstallocators-1.0.so.0
    │   ├── libgstapp-1.0.so.0
    │   ├── libgstaudio-1.0.so.0
    │   ├── libgstbase-1.0.so.0
    │   ├── libgstgl-1.0.so.0
    │   ├── libgstpbutils-1.0.so.0
    │   ├── libgstphotography-1.0.so.0
    │   ├── libgstreamer-1.0.so.0
    │   ├── libgsttag-1.0.so.0
    │   ├── libgstvideo-1.0.so.0
    │   ├── libicudata.so.70
    │   ├── libicui18n.so.70
    │   ├── libicuuc.so.70
    │   ├── libjpeg.so.62
    │   ├── liblzma.so.5
    │   ├── libogg.so.0
    │   ├── liborc-0.4.so.0
    │   ├── libpcre2-16.so.0
    │   ├── libpcre.so.1
    │   ├── libpng16.so.16
    │   ├── libpulsecommon-15.0.so
    │   ├── libpulse.so.0
    │   ├── libQt6Core.so.6
    │   ├── libQt6DBus.so.6
    │   ├── libQt6Gui.so.6
    │   ├── libQt6LabsFolderListModel.so.6
    │   ├── libQt6LabsQmlModels.so.6
    │   ├── libQt6MultimediaQuick.so.6
    │   ├── libQt6Multimedia.so.6
    │   ├── libQt6Network.so.6
    │   ├── libQt6OpenGL.so.6
    │   ├── libQt6QmlCore.so.6
    │   ├── libQt6QmlLocalStorage.so.6
    │   ├── libQt6QmlModels.so.6
    │   ├── libQt6Qml.so.6
    │   ├── libQt6QmlWorkerScript.so.6
    │   ├── libQt6QmlXmlListModel.so.6
    │   ├── libQt6Quick3DAssetImport.so.6
    │   ├── libQt6Quick3DAssetUtils.so.6
    │   ├── libQt6Quick3DEffects.so.6
    │   ├── libQt6Quick3DHelpersImpl.so.6
    │   ├── libQt6Quick3DHelpers.so.6
    │   ├── libQt6Quick3DParticleEffects.so.6
    │   ├── libQt6Quick3DParticles.so.6
    │   ├── libQt6Quick3DPhysicsHelpers.so.6
    │   ├── libQt6Quick3DPhysics.so.6
    │   ├── libQt6Quick3DRuntimeRender.so.6
    │   ├── libQt6Quick3D.so.6
    │   ├── libQt6Quick3DSpatialAudio.so.6
    │   ├── libQt6Quick3DUtils.so.6
    │   ├── libQt6QuickControls2Impl.so.6
    │   ├── libQt6QuickControls2.so.6
    │   ├── libQt6QuickDialogs2QuickImpl.so.6
    │   ├── libQt6QuickDialogs2.so.6
    │   ├── libQt6QuickDialogs2Utils.so.6
    │   ├── libQt6QuickEffects.so.6
    │   ├── libQt6QuickLayouts.so.6
    │   ├── libQt6QuickParticles.so.6
    │   ├── libQt6QuickShapes.so.6
    │   ├── libQt6Quick.so.6
    │   ├── libQt6QuickTemplates2.so.6
    │   ├── libQt6QuickTest.so.6
    │   ├── libQt6QuickTimeline.so.6
    │   ├── libQt6SensorsQuick.so.6
    │   ├── libQt6Sensors.so.6
    │   ├── libQt6ShaderTools.so.6
    │   ├── libQt6SpatialAudio.so.6
    │   ├── libQt6Sql.so.6
    │   ├── libQt6Test.so.6
    │   ├── libQt6WaylandCompositor.so.6
    │   ├── libsensorsquickplugin.so
    │   ├── libsndfile.so.1
    │   ├── libswresample.so.4
    │   ├── libswscale.so.6
    │   ├── libtheoradec.so.1
    │   ├── libtheoraenc.so.1
    │   ├── libvorbisenc.so.2
    │   ├── libvorbis.so.0
    │   ├── libwayland-client.so.0
    │   ├── libwayland-cursor.so.0
    │   ├── libwayland-egl.so.1
    │   ├── libwayland-server.so.0
    │   ├── libxkbcommon.so.0
    │   └── libzstd.so.1
    ├── plugins
    │   ├── imageformats
    │   │   ├── libqgif.so
    │   │   ├── libqico.so
    │   │   └── libqjpeg.so
    │   ├── multimedia
    │   │   ├── libffmpegmediaplugin.so
    │   │   └── libgstreamermediaplugin.so
    │   ├── platforminputcontexts
    │   │   ├── libcomposeplatforminputcontextplugin.so
    │   │   └── libibusplatforminputcontextplugin.so
    │   ├── platforms
    │   │   └── libqxcb.so
    │   ├── platformthemes
    │   │   └── libqxdgdesktopportal.so
    │   └── tls
    │       ├── libqcertonlybackend.so
    │       └── libqopensslbackend.so
    ├── qml
    │   ├── Qt
    │   │   └── labs
    │   │       ├── folderlistmodel
    │   │       │   ├── libqmlfolderlistmodelplugin.so
    │   │       │   └── qmldir
    │   │       └── qmlmodels
    │   │           ├── liblabsmodelsplugin.so
    │   │           └── qmldir
    │   ├── QtCore
    │   │   ├── libqtqmlcoreplugin.so
    │   │   └── qmldir
    │   ├── QtMultimedia
    │   │   ├── libquickmultimediaplugin.so
    │   │   ├── qmldir
    │   │   └── Video.qml
    │   ├── QtQml
    │   │   ├── Base
    │   │   │   ├── libqmlplugin.so
    │   │   │   └── qmldir
    │   │   ├── libqmlmetaplugin.so
    │   │   ├── Models
    │   │   │   ├── libmodelsplugin.so
    │   │   │   └── qmldir
    │   │   ├── qmldir
    │   │   ├── WorkerScript
    │   │   │   ├── libworkerscriptplugin.so
    │   │   │   └── qmldir
    │   │   └── XmlListModel
    │   │       ├── libqmlxmllistmodelplugin.so
    │   │       └── qmldir
    │   ├── QtQuick
    │   │   ├── Controls
    │   │   │   ├── Basic
    │   │   │   │   ├── AbstractButton.qml
    │   │   │   │   ├── ActionGroup.qml
    │   │   │   │   ├── Action.qml
    │   │   │   │   ├── ApplicationWindow.qml
    │   │   │   │   ├── BusyIndicator.qml
    │   │   │   │   ├── ButtonGroup.qml
    │   │   │   │   ├── Button.qml
    │   │   │   │   ├── CalendarModel.qml
    │   │   │   │   ├── Calendar.qml
    │   │   │   │   ├── CheckBox.qml
    │   │   │   │   ├── CheckDelegate.qml
    │   │   │   │   ├── ComboBox.qml
    │   │   │   │   ├── Container.qml
    │   │   │   │   ├── Control.qml
    │   │   │   │   ├── DayOfWeekRow.qml
    │   │   │   │   ├── DelayButton.qml
    │   │   │   │   ├── DialogButtonBox.qml
    │   │   │   │   ├── Dialog.qml
    │   │   │   │   ├── Dial.qml
    │   │   │   │   ├── Drawer.qml
    │   │   │   │   ├── Frame.qml
    │   │   │   │   ├── GroupBox.qml
    │   │   │   │   ├── HorizontalHeaderView.qml
    │   │   │   │   ├── impl
    │   │   │   │   │   ├── libqtquickcontrols2basicstyleimplplugin.so
    │   │   │   │   │   └── qmldir
    │   │   │   │   ├── ItemDelegate.qml
    │   │   │   │   ├── Label.qml
    │   │   │   │   ├── libqtquickcontrols2basicstyleplugin.so
    │   │   │   │   ├── MenuBarItem.qml
    │   │   │   │   ├── MenuBar.qml
    │   │   │   │   ├── MenuItem.qml
    │   │   │   │   ├── Menu.qml
    │   │   │   │   ├── MenuSeparator.qml
    │   │   │   │   ├── MonthGrid.qml
    │   │   │   │   ├── PageIndicator.qml
    │   │   │   │   ├── Page.qml
    │   │   │   │   ├── Pane.qml
    │   │   │   │   ├── Popup.qml
    │   │   │   │   ├── ProgressBar.qml
    │   │   │   │   ├── qmldir
    │   │   │   │   ├── RadioButton.qml
    │   │   │   │   ├── RadioDelegate.qml
    │   │   │   │   ├── RangeSlider.qml
    │   │   │   │   ├── RoundButton.qml
    │   │   │   │   ├── ScrollBar.qml
    │   │   │   │   ├── ScrollIndicator.qml
    │   │   │   │   ├── ScrollView.qml
    │   │   │   │   ├── SelectionRectangle.qml
    │   │   │   │   ├── Slider.qml
    │   │   │   │   ├── SpinBox.qml
    │   │   │   │   ├── SplitView.qml
    │   │   │   │   ├── StackView.qml
    │   │   │   │   ├── SwipeDelegate.qml
    │   │   │   │   ├── SwipeView.qml
    │   │   │   │   ├── SwitchDelegate.qml
    │   │   │   │   ├── Switch.qml
    │   │   │   │   ├── TabBar.qml
    │   │   │   │   ├── TabButton.qml
    │   │   │   │   ├── TextArea.qml
    │   │   │   │   ├── TextField.qml
    │   │   │   │   ├── ToolBar.qml
    │   │   │   │   ├── ToolButton.qml
    │   │   │   │   ├── ToolSeparator.qml
    │   │   │   │   ├── ToolTip.qml
    │   │   │   │   ├── TreeViewDelegate.qml
    │   │   │   │   ├── Tumbler.qml
    │   │   │   │   ├── VerticalHeaderView.qml
    │   │   │   │   └── WeekNumberColumn.qml
    │   │   │   ├── Fusion
    │   │   │   │   ├── ApplicationWindow.qml
    │   │   │   │   ├── BusyIndicator.qml
    │   │   │   │   ├── Button.qml
    │   │   │   │   ├── CheckBox.qml
    │   │   │   │   ├── CheckDelegate.qml
    │   │   │   │   ├── ComboBox.qml
    │   │   │   │   ├── DelayButton.qml
    │   │   │   │   ├── DialogButtonBox.qml
    │   │   │   │   ├── Dialog.qml
    │   │   │   │   ├── Dial.qml
    │   │   │   │   ├── Drawer.qml
    │   │   │   │   ├── Frame.qml
    │   │   │   │   ├── GroupBox.qml
    │   │   │   │   ├── HorizontalHeaderView.qml
    │   │   │   │   ├── impl
    │   │   │   │   │   ├── ButtonPanel.qml
    │   │   │   │   │   ├── CheckIndicator.qml
    │   │   │   │   │   ├── libqtquickcontrols2fusionstyleimplplugin.so
    │   │   │   │   │   ├── qmldir
    │   │   │   │   │   ├── RadioIndicator.qml
    │   │   │   │   │   ├── SliderGroove.qml
    │   │   │   │   │   ├── SliderHandle.qml
    │   │   │   │   │   └── SwitchIndicator.qml
    │   │   │   │   ├── ItemDelegate.qml
    │   │   │   │   ├── Label.qml
    │   │   │   │   ├── libqtquickcontrols2fusionstyleplugin.so
    │   │   │   │   ├── MenuBarItem.qml
    │   │   │   │   ├── MenuBar.qml
    │   │   │   │   ├── MenuItem.qml
    │   │   │   │   ├── Menu.qml
    │   │   │   │   ├── MenuSeparator.qml
    │   │   │   │   ├── PageIndicator.qml
    │   │   │   │   ├── Page.qml
    │   │   │   │   ├── Pane.qml
    │   │   │   │   ├── Popup.qml
    │   │   │   │   ├── ProgressBar.qml
    │   │   │   │   ├── qmldir
    │   │   │   │   ├── RadioButton.qml
    │   │   │   │   ├── RadioDelegate.qml
    │   │   │   │   ├── RangeSlider.qml
    │   │   │   │   ├── RoundButton.qml
    │   │   │   │   ├── ScrollBar.qml
    │   │   │   │   ├── ScrollIndicator.qml
    │   │   │   │   ├── ScrollView.qml
    │   │   │   │   ├── SelectionRectangle.qml
    │   │   │   │   ├── Slider.qml
    │   │   │   │   ├── SpinBox.qml
    │   │   │   │   ├── SplitView.qml
    │   │   │   │   ├── SwipeDelegate.qml
    │   │   │   │   ├── SwitchDelegate.qml
    │   │   │   │   ├── Switch.qml
    │   │   │   │   ├── TabBar.qml
    │   │   │   │   ├── TabButton.qml
    │   │   │   │   ├── TextArea.qml
    │   │   │   │   ├── TextField.qml
    │   │   │   │   ├── ToolBar.qml
    │   │   │   │   ├── ToolButton.qml
    │   │   │   │   ├── ToolSeparator.qml
    │   │   │   │   ├── ToolTip.qml
    │   │   │   │   ├── TreeViewDelegate.qml
    │   │   │   │   ├── Tumbler.qml
    │   │   │   │   └── VerticalHeaderView.qml
    │   │   │   ├── Imagine
    │   │   │   │   ├── ApplicationWindow.qml
    │   │   │   │   ├── BusyIndicator.qml
    │   │   │   │   ├── Button.qml
    │   │   │   │   ├── CheckBox.qml
    │   │   │   │   ├── CheckDelegate.qml
    │   │   │   │   ├── ComboBox.qml
    │   │   │   │   ├── DelayButton.qml
    │   │   │   │   ├── DialogButtonBox.qml
    │   │   │   │   ├── Dialog.qml
    │   │   │   │   ├── Dial.qml
    │   │   │   │   ├── Drawer.qml
    │   │   │   │   ├── Frame.qml
    │   │   │   │   ├── GroupBox.qml
    │   │   │   │   ├── HorizontalHeaderView.qml
    │   │   │   │   ├── impl
    │   │   │   │   │   ├── libqtquickcontrols2imaginestyleimplplugin.so
    │   │   │   │   │   ├── OpacityMask.qml
    │   │   │   │   │   └── qmldir
    │   │   │   │   ├── ItemDelegate.qml
    │   │   │   │   ├── Label.qml
    │   │   │   │   ├── libqtquickcontrols2imaginestyleplugin.so
    │   │   │   │   ├── MenuItem.qml
    │   │   │   │   ├── Menu.qml
    │   │   │   │   ├── MenuSeparator.qml
    │   │   │   │   ├── PageIndicator.qml
    │   │   │   │   ├── Page.qml
    │   │   │   │   ├── Pane.qml
    │   │   │   │   ├── Popup.qml
    │   │   │   │   ├── ProgressBar.qml
    │   │   │   │   ├── qmldir
    │   │   │   │   ├── RadioButton.qml
    │   │   │   │   ├── RadioDelegate.qml
    │   │   │   │   ├── RangeSlider.qml
    │   │   │   │   ├── RoundButton.qml
    │   │   │   │   ├── ScrollBar.qml
    │   │   │   │   ├── ScrollIndicator.qml
    │   │   │   │   ├── ScrollView.qml
    │   │   │   │   ├── SelectionRectangle.qml
    │   │   │   │   ├── Slider.qml
    │   │   │   │   ├── SpinBox.qml
    │   │   │   │   ├── SplitView.qml
    │   │   │   │   ├── StackView.qml
    │   │   │   │   ├── SwipeDelegate.qml
    │   │   │   │   ├── SwipeView.qml
    │   │   │   │   ├── SwitchDelegate.qml
    │   │   │   │   ├── Switch.qml
    │   │   │   │   ├── TabBar.qml
    │   │   │   │   ├── TabButton.qml
    │   │   │   │   ├── TextArea.qml
    │   │   │   │   ├── TextField.qml
    │   │   │   │   ├── ToolBar.qml
    │   │   │   │   ├── ToolButton.qml
    │   │   │   │   ├── ToolSeparator.qml
    │   │   │   │   ├── ToolTip.qml
    │   │   │   │   ├── Tumbler.qml
    │   │   │   │   └── VerticalHeaderView.qml
    │   │   │   ├── impl
    │   │   │   │   ├── libqtquickcontrols2implplugin.so
    │   │   │   │   └── qmldir
    │   │   │   ├── libqtquickcontrols2plugin.so
    │   │   │   ├── Material
    │   │   │   │   ├── ApplicationWindow.qml
    │   │   │   │   ├── BusyIndicator.qml
    │   │   │   │   ├── Button.qml
    │   │   │   │   ├── CheckBox.qml
    │   │   │   │   ├── CheckDelegate.qml
    │   │   │   │   ├── ComboBox.qml
    │   │   │   │   ├── DelayButton.qml
    │   │   │   │   ├── DialogButtonBox.qml
    │   │   │   │   ├── Dialog.qml
    │   │   │   │   ├── Dial.qml
    │   │   │   │   ├── Drawer.qml
    │   │   │   │   ├── Frame.qml
    │   │   │   │   ├── GroupBox.qml
    │   │   │   │   ├── HorizontalHeaderView.qml
    │   │   │   │   ├── impl
    │   │   │   │   │   ├── BoxShadow.qml
    │   │   │   │   │   ├── CheckIndicator.qml
    │   │   │   │   │   ├── CursorDelegate.qml
    │   │   │   │   │   ├── ElevationEffect.qml
    │   │   │   │   │   ├── libqtquickcontrols2materialstyleimplplugin.so
    │   │   │   │   │   ├── qmldir
    │   │   │   │   │   ├── RadioIndicator.qml
    │   │   │   │   │   ├── RectangularGlow.qml
    │   │   │   │   │   ├── RoundedElevationEffect.qml
    │   │   │   │   │   ├── SliderHandle.qml
    │   │   │   │   │   └── SwitchIndicator.qml
    │   │   │   │   ├── ItemDelegate.qml
    │   │   │   │   ├── Label.qml
    │   │   │   │   ├── libqtquickcontrols2materialstyleplugin.so
    │   │   │   │   ├── MenuBarItem.qml
    │   │   │   │   ├── MenuBar.qml
    │   │   │   │   ├── MenuItem.qml
    │   │   │   │   ├── Menu.qml
    │   │   │   │   ├── MenuSeparator.qml
    │   │   │   │   ├── PageIndicator.qml
    │   │   │   │   ├── Page.qml
    │   │   │   │   ├── Pane.qml
    │   │   │   │   ├── Popup.qml
    │   │   │   │   ├── ProgressBar.qml
    │   │   │   │   ├── qmldir
    │   │   │   │   ├── RadioButton.qml
    │   │   │   │   ├── RadioDelegate.qml
    │   │   │   │   ├── RangeSlider.qml
    │   │   │   │   ├── RoundButton.qml
    │   │   │   │   ├── ScrollBar.qml
    │   │   │   │   ├── ScrollIndicator.qml
    │   │   │   │   ├── ScrollView.qml
    │   │   │   │   ├── SelectionRectangle.qml
    │   │   │   │   ├── Slider.qml
    │   │   │   │   ├── SpinBox.qml
    │   │   │   │   ├── SplitView.qml
    │   │   │   │   ├── StackView.qml
    │   │   │   │   ├── SwipeDelegate.qml
    │   │   │   │   ├── SwipeView.qml
    │   │   │   │   ├── SwitchDelegate.qml
    │   │   │   │   ├── Switch.qml
    │   │   │   │   ├── TabBar.qml
    │   │   │   │   ├── TabButton.qml
    │   │   │   │   ├── TextArea.qml
    │   │   │   │   ├── TextField.qml
    │   │   │   │   ├── ToolBar.qml
    │   │   │   │   ├── ToolButton.qml
    │   │   │   │   ├── ToolSeparator.qml
    │   │   │   │   ├── ToolTip.qml
    │   │   │   │   ├── TreeViewDelegate.qml
    │   │   │   │   ├── Tumbler.qml
    │   │   │   │   └── VerticalHeaderView.qml
    │   │   │   ├── qmldir
    │   │   │   └── Universal
    │   │   │       ├── ApplicationWindow.qml
    │   │   │       ├── BusyIndicator.qml
    │   │   │       ├── Button.qml
    │   │   │       ├── CheckBox.qml
    │   │   │       ├── CheckDelegate.qml
    │   │   │       ├── ComboBox.qml
    │   │   │       ├── DelayButton.qml
    │   │   │       ├── DialogButtonBox.qml
    │   │   │       ├── Dialog.qml
    │   │   │       ├── Dial.qml
    │   │   │       ├── Drawer.qml
    │   │   │       ├── Frame.qml
    │   │   │       ├── GroupBox.qml
    │   │   │       ├── HorizontalHeaderView.qml
    │   │   │       ├── impl
    │   │   │       │   ├── CheckIndicator.qml
    │   │   │       │   ├── libqtquickcontrols2universalstyleimplplugin.so
    │   │   │       │   ├── qmldir
    │   │   │       │   ├── RadioIndicator.qml
    │   │   │       │   └── SwitchIndicator.qml
    │   │   │       ├── ItemDelegate.qml
    │   │   │       ├── Label.qml
    │   │   │       ├── libqtquickcontrols2universalstyleplugin.so
    │   │   │       ├── MenuBarItem.qml
    │   │   │       ├── MenuBar.qml
    │   │   │       ├── MenuItem.qml
    │   │   │       ├── Menu.qml
    │   │   │       ├── MenuSeparator.qml
    │   │   │       ├── PageIndicator.qml
    │   │   │       ├── Page.qml
    │   │   │       ├── Pane.qml
    │   │   │       ├── Popup.qml
    │   │   │       ├── ProgressBar.qml
    │   │   │       ├── qmldir
    │   │   │       ├── RadioButton.qml
    │   │   │       ├── RadioDelegate.qml
    │   │   │       ├── RangeSlider.qml
    │   │   │       ├── RoundButton.qml
    │   │   │       ├── ScrollBar.qml
    │   │   │       ├── ScrollIndicator.qml
    │   │   │       ├── ScrollView.qml
    │   │   │       ├── SelectionRectangle.qml
    │   │   │       ├── Slider.qml
    │   │   │       ├── SpinBox.qml
    │   │   │       ├── SplitView.qml
    │   │   │       ├── StackView.qml
    │   │   │       ├── SwipeDelegate.qml
    │   │   │       ├── SwitchDelegate.qml
    │   │   │       ├── Switch.qml
    │   │   │       ├── TabBar.qml
    │   │   │       ├── TabButton.qml
    │   │   │       ├── TextArea.qml
    │   │   │       ├── TextField.qml
    │   │   │       ├── ToolBar.qml
    │   │   │       ├── ToolButton.qml
    │   │   │       ├── ToolSeparator.qml
    │   │   │       ├── ToolTip.qml
    │   │   │       ├── Tumbler.qml
    │   │   │       └── VerticalHeaderView.qml
    │   │   ├── Dialogs
    │   │   │   ├── libqtquickdialogsplugin.so
    │   │   │   ├── qmldir
    │   │   │   └── quickimpl
    │   │   │       ├── libqtquickdialogs2quickimplplugin.so
    │   │   │       ├── qml
    │   │   │       │   ├── ColorDialog.qml
    │   │   │       │   ├── ColorInputs.qml
    │   │   │       │   ├── FileDialogDelegateLabel.qml
    │   │   │       │   ├── FileDialogDelegate.qml
    │   │   │       │   ├── FileDialog.qml
    │   │   │       │   ├── FolderBreadcrumbBar.qml
    │   │   │       │   ├── FolderDialogDelegateLabel.qml
    │   │   │       │   ├── FolderDialogDelegate.qml
    │   │   │       │   ├── FolderDialog.qml
    │   │   │       │   ├── FontDialogContent.qml
    │   │   │       │   ├── FontDialog.qml
    │   │   │       │   ├── +Fusion
    │   │   │       │   │   ├── ColorDialog.qml
    │   │   │       │   │   ├── FileDialogDelegate.qml
    │   │   │       │   │   ├── FileDialog.qml
    │   │   │       │   │   ├── FolderBreadcrumbBar.qml
    │   │   │       │   │   ├── FolderDialogDelegate.qml
    │   │   │       │   │   ├── FolderDialog.qml
    │   │   │       │   │   ├── FontDialog.qml
    │   │   │       │   │   └── MessageDialog.qml
    │   │   │       │   ├── HueGradient.qml
    │   │   │       │   ├── +Imagine
    │   │   │       │   │   ├── ColorDialog.qml
    │   │   │       │   │   ├── FileDialogDelegate.qml
    │   │   │       │   │   ├── FileDialog.qml
    │   │   │       │   │   ├── FolderBreadcrumbBar.qml
    │   │   │       │   │   ├── FolderDialogDelegate.qml
    │   │   │       │   │   ├── FolderDialog.qml
    │   │   │       │   │   ├── FontDialog.qml
    │   │   │       │   │   └── MessageDialog.qml
    │   │   │       │   ├── +Material
    │   │   │       │   │   ├── ColorDialog.qml
    │   │   │       │   │   ├── FileDialogDelegate.qml
    │   │   │       │   │   ├── FileDialog.qml
    │   │   │       │   │   ├── FolderBreadcrumbBar.qml
    │   │   │       │   │   ├── FolderDialogDelegate.qml
    │   │   │       │   │   ├── FolderDialog.qml
    │   │   │       │   │   ├── FontDialog.qml
    │   │   │       │   │   └── MessageDialog.qml
    │   │   │       │   ├── MessageDialog.qml
    │   │   │       │   ├── PickerHandle.qml
    │   │   │       │   ├── SaturationLightnessPicker.qml
    │   │   │       │   └── +Universal
    │   │   │       │       ├── ColorDialog.qml
    │   │   │       │       ├── FileDialogDelegate.qml
    │   │   │       │       ├── FileDialog.qml
    │   │   │       │       ├── FolderBreadcrumbBar.qml
    │   │   │       │       ├── FolderDialogDelegate.qml
    │   │   │       │       ├── FolderDialog.qml
    │   │   │       │       ├── FontDialog.qml
    │   │   │       │       └── MessageDialog.qml
    │   │   │       └── qmldir
    │   │   ├── Effects
    │   │   │   ├── libeffectsplugin.so
    │   │   │   └── qmldir
    │   │   ├── Layouts
    │   │   │   ├── libqquicklayoutsplugin.so
    │   │   │   └── qmldir
    │   │   ├── libqtquick2plugin.so
    │   │   ├── LocalStorage
    │   │   │   ├── libqmllocalstorageplugin.so
    │   │   │   └── qmldir
    │   │   ├── NativeStyle
    │   │   │   ├── controls
    │   │   │   │   ├── DefaultButton.qml
    │   │   │   │   ├── DefaultCheckBox.qml
    │   │   │   │   ├── DefaultComboBox.qml
    │   │   │   │   ├── DefaultDial.qml
    │   │   │   │   ├── DefaultFrame.qml
    │   │   │   │   ├── DefaultGroupBox.qml
    │   │   │   │   ├── DefaultProgressBar.qml
    │   │   │   │   ├── DefaultRadioButton.qml
    │   │   │   │   ├── DefaultScrollBar.qml
    │   │   │   │   ├── DefaultSlider.qml
    │   │   │   │   ├── DefaultSpinBox.qml
    │   │   │   │   ├── DefaultTextArea.qml
    │   │   │   │   ├── DefaultTextField.qml
    │   │   │   │   └── DefaultTreeViewDelegate.qml
    │   │   │   ├── libqtquickcontrols2nativestyleplugin.so
    │   │   │   └── qmldir
    │   │   ├── Particles
    │   │   │   ├── libparticlesplugin.so
    │   │   │   └── qmldir
    │   │   ├── qmldir
    │   │   ├── Shapes
    │   │   │   ├── libqmlshapesplugin.so
    │   │   │   └── qmldir
    │   │   ├── Templates
    │   │   │   ├── libqtquicktemplates2plugin.so
    │   │   │   └── qmldir
    │   │   ├── Timeline
    │   │   │   ├── libqtquicktimelineplugin.so
    │   │   │   └── qmldir
    │   │   ├── tooling
    │   │   │   ├── Component.qml
    │   │   │   ├── Enum.qml
    │   │   │   ├── libquicktoolingplugin.so
    │   │   │   ├── Member.qml
    │   │   │   ├── Method.qml
    │   │   │   ├── Module.qml
    │   │   │   ├── Parameter.qml
    │   │   │   ├── Property.qml
    │   │   │   ├── qmldir
    │   │   │   └── Signal.qml
    │   │   └── Window
    │   │       ├── libquickwindowplugin.so
    │   │       └── qmldir
    │   ├── QtQuick3D
    │   │   ├── AssetUtils
    │   │   │   ├── libqtquick3dassetutilsplugin.so
    │   │   │   └── qmldir
    │   │   ├── Effects
    │   │   │   ├── AdditiveColorGradient.qml
    │   │   │   ├── Blur.qml
    │   │   │   ├── BrushStrokes.qml
    │   │   │   ├── ChromaticAberration.qml
    │   │   │   ├── ColorMaster.qml
    │   │   │   ├── DepthOfFieldHQBlur.qml
    │   │   │   ├── Desaturate.qml
    │   │   │   ├── DistortionRipple.qml
    │   │   │   ├── DistortionSphere.qml
    │   │   │   ├── DistortionSpiral.qml
    │   │   │   ├── EdgeDetect.qml
    │   │   │   ├── Emboss.qml
    │   │   │   ├── Flip.qml
    │   │   │   ├── Fxaa.qml
    │   │   │   ├── GaussianBlur.qml
    │   │   │   ├── HDRBloomTonemap.qml
    │   │   │   ├── libqtquick3deffectplugin.so
    │   │   │   ├── MotionBlur.qml
    │   │   │   ├── qmldir
    │   │   │   ├── Scatter.qml
    │   │   │   ├── SCurveTonemap.qml
    │   │   │   ├── TiltShift.qml
    │   │   │   └── Vignette.qml
    │   │   ├── Helpers
    │   │   │   ├── AxisHelper.qml
    │   │   │   ├── DebugView.qml
    │   │   │   ├── ExtendedSceneEnvironment.qml
    │   │   │   ├── impl
    │   │   │   │   ├── DepthOfFieldBlur.qml
    │   │   │   │   ├── libqtquick3dhelpersimplplugin.so
    │   │   │   │   ├── LightmapperOutputWindow.qml
    │   │   │   │   ├── qmldir
    │   │   │   │   └── SceneEffect.qml
    │   │   │   ├── libqtquick3dhelpersplugin.so
    │   │   │   ├── LodManager.qml
    │   │   │   ├── meshes
    │   │   │   │   └── axisGrid.mesh
    │   │   │   ├── OrbitCameraController.qml
    │   │   │   ├── qmldir
    │   │   │   └── WasdController.qml
    │   │   ├── libqquick3dplugin.so
    │   │   ├── MaterialEditor
    │   │   │   ├── AboutDialog.qml
    │   │   │   ├── EditorView.qml
    │   │   │   ├── FrostedGlass.qml
    │   │   │   ├── main.qml
    │   │   │   ├── MaterialPropertiesPane.qml
    │   │   │   ├── PreviewControls.qml
    │   │   │   ├── Preview.qml
    │   │   │   ├── qmldir
    │   │   │   ├── SaveChangesDialog.qml
    │   │   │   ├── ShaderEditor.qml
    │   │   │   └── UniformManagerPane.qml
    │   │   ├── ParticleEffects
    │   │   │   ├── libqtquick3dparticleeffectsplugin.so
    │   │   │   └── qmldir
    │   │   ├── Particles3D
    │   │   │   ├── libqtquick3dparticles3dplugin.so
    │   │   │   └── qmldir
    │   │   ├── Physics
    │   │   │   ├── Helpers
    │   │   │   │   ├── libqtquick3dphysicshelpersplugin.so
    │   │   │   │   └── qmldir
    │   │   │   ├── libqquick3dphysicsplugin.so
    │   │   │   └── qmldir
    │   │   ├── qmldir
    │   │   └── SpatialAudio
    │   │       ├── libquick3dspatialaudioplugin.so
    │   │       └── qmldir
    │   ├── QtTest
    │   │   ├── libquicktestplugin.so
    │   │   ├── qmldir
    │   │   ├── SignalSpy.qml
    │   │   ├── TestCase.qml
    │   │   ├── testlogger.js
    │   │   └── TestSchedule.qml
    │   └── QtWayland
    │       └── Compositor
    │           ├── IviApplication
    │           │   ├── libwaylandcompositoriviapplicationplugin.so
    │           │   └── qmldir
    │           ├── libqwaylandcompositorplugin.so
    │           ├── PresentationTime
    │           │   ├── libwaylandcompositorpresentationtimeplugin.so
    │           │   └── qmldir
    │           ├── qmldir
    │           ├── qmlfiles
    │           │   ├── WaylandCursorItem.qml
    │           │   └── WaylandOutputWindow.qml
    │           ├── QtShell
    │           │   ├── libwaylandcompositorqtshellplugin.so
    │           │   └── qmldir
    │           ├── TextureSharingExtension
    │           │   ├── libwaylandtexturesharingextensionplugin.so
    │           │   └── qmldir
    │           ├── WlShell
    │           │   ├── libwaylandcompositorwlshellplugin.so
    │           │   └── qmldir
    │           └── XdgShell
    │               ├── libwaylandcompositorxdgshellplugin.so
    │               └── qmldir
    └── share
        ├── applications
        │   └── dice.desktop
        └── icons
            └── hicolor
                ├── 128x128
                │   └── apps
                ├── 160x160
                │   └── apps
                │       └── dice.png
                ├── 16x16
                │   └── apps
                ├── 256x256
                │   └── apps
                ├── 32x32
                │   └── apps
                ├── 64x64
                │   └── apps
                └── scalable
                    └── apps

94 directories, 625 files
TheAssassin commented 4 months ago

PRs welcome. Wayland is becoming more of a thing lately and we should support it better. Adding those libraries used to cause a lot of issues, if it got better, it's time to re-add them.