如何在我创建的 Qt Wayland 合成器中打开像 firefox 这样的 gui 应用程序
Posted
技术标签:
【中文标题】如何在我创建的 Qt Wayland 合成器中打开像 firefox 这样的 gui 应用程序【英文标题】:How to open gui applications like firefox in the Qt Wayland compositor which I created 【发布时间】:2021-11-14 15:15:43 【问题描述】:我创建了一个示例 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)
ListModelid:shellSurfaces
WlShell
onWlShellSurfaceCreated:
shellSurfaces.append(shellSurface:shellSurface);
我知道我可以在命令后使用--platform wayland
打开一个摆动窗口。如何在 Wayland 合成器中打开其他软件窗口(例如 Firefox)?
(我不了解显示服务器和 Wayland 合成器的基础知识。我认为我创建的合成器就像一个窗口管理器,我在其中打开的应用程序应该在它打开时在合成器中打开在窗口管理器中)。
【问题讨论】:
【参考方案1】:当您的合成器加载时,它会在您的计算机上创建一个套接字。在我的机器上,它位于/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
我想你明白了。
【讨论】:
以上是关于如何在我创建的 Qt Wayland 合成器中打开像 firefox 这样的 gui 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
PyCharm运行出现 Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run
Qt 使应用程序始终在 Weston/Wayland 平台上