diff --git a/src/main_wayland.cpp b/src/main_wayland.cpp index 4be3b6f1b4..279b0ede57 100644 --- a/src/main_wayland.cpp +++ b/src/main_wayland.cpp @@ -593,11 +593,6 @@ int main(int argc, char *argv[]) } QObject::connect(&a, &KWin::Application::workspaceCreated, server, &KWin::WaylandServer::initWorkspace); - if (!server->socketName().isEmpty()) { - environment.insert(QStringLiteral("WAYLAND_DISPLAY"), server->socketName()); - qputenv("WAYLAND_DISPLAY", server->socketName().toUtf8()); - } - a.setProcessStartupEnvironment(environment); #if KWIN_BUILD_X11 if (parser.isSet(xwaylandOption)) { @@ -627,6 +622,7 @@ int main(int argc, char *argv[]) } #endif + a.setProcessStartupEnvironment(environment); a.setApplicationsToStart(parser.positionalArguments()); a.setInputMethodServerToStart(parser.value(inputMethodOption)); a.start(); diff --git a/src/wayland_server.cpp b/src/wayland_server.cpp index 5a3f7d4812..e5a42256f4 100644 --- a/src/wayland_server.cpp +++ b/src/wayland_server.cpp @@ -318,6 +318,13 @@ void WaylandServer::handleOutputDisabled(Output *output) bool WaylandServer::start() { + QProcessEnvironment environment = kwinApp()->processStartupEnvironment(); + if (!socketName().isEmpty()) { + environment.insert(QStringLiteral("WAYLAND_DISPLAY"), socketName()); + qputenv("WAYLAND_DISPLAY", socketName().toUtf8()); + } + kwinApp()->setProcessStartupEnvironment(environment); + return m_display->start(); }