From 86af4eb07e1fb1f795f18a3606b2e3b8ff1ae718 Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Thu, 22 Jan 2026 19:10:03 -0800 Subject: [PATCH] Attempt to use the IPC reset function --- kwin/src/kcm/breezydesktopeffectkcm.cpp | 41 ++----------------------- 1 file changed, 2 insertions(+), 39 deletions(-) diff --git a/kwin/src/kcm/breezydesktopeffectkcm.cpp b/kwin/src/kcm/breezydesktopeffectkcm.cpp index 31748b7..223c43e 100644 --- a/kwin/src/kcm/breezydesktopeffectkcm.cpp +++ b/kwin/src/kcm/breezydesktopeffectkcm.cpp @@ -455,48 +455,11 @@ BreezyDesktopEffectConfig::BreezyDesktopEffectConfig(QObject *parent, const KPlu setRequestInProgress({sender()}, true); - const QString systemctl = QStandardPaths::findExecutable(QStringLiteral("systemctl")); - if (systemctl.isEmpty()) { - showStatus(labelStatus, false, tr("systemctl not found; cannot restart xr-driver.")); - setRequestInProgress({sender()}, false); - return; - } - - QProcess proc; - proc.setProgram(systemctl); - proc.setArguments({QStringLiteral("--user"), QStringLiteral("restart"), QStringLiteral("xr-driver")}); - proc.setProcessChannelMode(QProcess::MergedChannels); - proc.start(); - - if (!proc.waitForStarted(5000)) { - showStatus(labelStatus, false, tr("Failed to start systemctl.")); - setRequestInProgress({sender()}, false); - return; - } - - if (!proc.waitForFinished(15000)) { - proc.kill(); - proc.waitForFinished(3000); - showStatus(labelStatus, false, tr("Timed out restarting xr-driver.")); - setRequestInProgress({sender()}, false); - return; - } - - const QString output = QString::fromUtf8(proc.readAll()).trimmed(); - const bool ok = (proc.exitStatus() == QProcess::NormalExit && proc.exitCode() == 0); + const bool ok = XRDriverIPC::instance().resetDriver(); if (ok) { - if (!output.isEmpty()) { - qCWarning(KWIN_XR) << "Unexpected output resetting the driver:" << output; - } showStatus(labelStatus, true, tr("Driver restarted.")); - - // Refresh state shortly after restart. - QTimer::singleShot(1000, this, [this]() { - pollDriverState(); - }); } else { - const QString err = output.isEmpty() ? tr("Unknown error") : output; - showStatus(labelStatus, false, tr("Failed to restart driver: %1").arg(err)); + showStatus(labelStatus, false, tr("Failed to restart driver.")); } setRequestInProgress({sender()}, false);