28 Q_ASSERT(qobject_cast<X11Window *>(window) || qobject_cast<XdgToplevelWindow *>(window));
30 m_process.setProcessChannelMode(QProcess::ForwardedChannels);
32 const QFileInfo binaryInfo(KWIN_KILLER_BIN);
33 const QFileInfo buildDirBinary{QDir{QCoreApplication::applicationDirPath()}, binaryInfo.fileName()};
35 if (buildDirBinary.exists()) {
36 m_process.setProgram(buildDirBinary.absoluteFilePath());
38 m_process.setProgram(KWIN_KILLER_BIN);
53 QProcessEnvironment env = kwinApp()->processStartupEnvironment();
56 QString timestampString;
57 QString hostname = QStringLiteral(
"localhost");
61 if (
auto *x11Window = qobject_cast<X11Window *>(m_window)) {
62 platform = QStringLiteral(
"xcb");
63 wid = QString::number(x11Window->window());
64 timestampString = QString::number(timestamp);
65 if (!x11Window->clientMachine()->isLocal()) {
66 hostname = x11Window->clientMachine()->hostName();
68 }
else if (
auto *xdgToplevel = qobject_cast<XdgToplevelWindow *>(m_window)) {
69 platform = QStringLiteral(
"wayland");
75 env.insert(QStringLiteral(
"XDG_ACTIVATION_TOKEN"), token);
77 env.remove(QStringLiteral(
"QT_WAYLAND_RECONNECT"));
81 QStringLiteral(
"-platform"),
83 QStringLiteral(
"--pid"),
84 QString::number(m_window->
pid()),
85 QStringLiteral(
"--windowname"),
87 QStringLiteral(
"--applicationname"),
89 QStringLiteral(
"--wid"),
91 QStringLiteral(
"--hostname"),
93 QStringLiteral(
"--timestamp"),
97 m_process.setArguments(args);
98 m_process.setProcessEnvironment(env);