如何在我创建的 Qt Wayland 合成器中打开 firefox 等 gui 应用程序

How to open gui applications like firefox in the Qt Wayland compositor which I created

我创建了一个示例 Qt Wayland 合成器,QML 代码如下:

import QtQuick 2.15
import QtQuick.Window 2.15
import QtQuick.Controls 2.0
import QtWayland.Compositor 1.0

WaylandCompositor{
    id:comp
    WaylandOutput{
        compositor:comp
        sizeFollowsWindow:true
        window:Window{
            visible:true
            width:700
            height:700
            Repeater{
                model:shellSurfaces
                ShellSurfaceItem{
                    shellSurface:modelData
                    onSurfaceDestroyed:shellSurfaces.remove(index)
                }
            }
        }
    }
    ListModel{id:shellSurfaces}
    WlShell{
        onWlShellSurfaceCreated:{
            shellSurfaces.append({shellSurface:shellSurface});
        }
    }
}

我知道我可以在命令后使用 --platform wayland 打开一个摇摆不定的 window。如何在 Wayland 合成器(例如 Firefox)中打开其他软件windows?

(我不知道显示服务器和 Wayland 合成器的基础知识。我认为我创建的合成器就像一个 window 管理器,我在其中打开的应用程序应该直接打开在合成器中,因为它在 window 管理器中打开)。

当您的合成器加载时,它会在您的计算机上创建一个套接字。在我的机器上,它位于 /run/user/1000。它应该被命名为 0-wayland.

为了启动应用程序,您需要通过环境变量将 wayland 显示传递给它。

示例:

启动火狐:WAYLAND_DISPLAY=wayland-0 XDG_RUNTIME_DIR=/run/user/1000 XDG_SESSION_TYPE="wayland" firefox

启动 kcalc(KDE 的计算器):WAYLAND_DISPLAY=wayland-0 XDG_RUNTIME_DIR=/run/user/1000 XDG_SESSION_TYPE="wayland" kcalc

我想你明白了。