diff -Naur a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt	2023-11-05 16:54:50.000000000 +0600
+++ b/CMakeLists.txt	2023-11-06 14:08:26.743012855 +0600
@@ -8,7 +8,7 @@
 
 
 set(LXQTBT_MINIMUM_VERSION "0.13.0")
-set(KF5_MINIMUM_VERSION "5.101.0")
+set(KF5_MINIMUM_VERSION "5.96.0")
 set(QT_MINIMUM_VERSION "5.15.0")
 set(QTXDG_MINIMUM_VERSION "3.12.0")
 
diff -Naur a/lxqtsingleapplication.cpp b/lxqtsingleapplication.cpp
--- a/lxqtsingleapplication.cpp	2023-11-05 16:54:50.000000000 +0600
+++ b/lxqtsingleapplication.cpp	2023-11-06 14:11:14.118014903 +0600
@@ -28,7 +28,6 @@
 #include "lxqtsingleapplication.h"
 #include "singleapplicationadaptor.h"
 #include <KWindowSystem/KWindowSystem>
-#include <KWindowSystem/KX11Extras>
 #include <QDBusMessage>
 #include <QWidget>
 #include <QDebug>
@@ -99,13 +98,9 @@
         KWindowInfo info(window, KWindowSystem::WMDesktop);
         int windowDesktop = info.desktop();
 
-        if (windowDesktop != KX11Extras::currentDesktop())
-            KX11Extras::setCurrentDesktop(windowDesktop);
-
-        if (QWindow *w = mActivationWindow->windowHandle())
-            KWindowSystem::activateWindow(w);
-         else
-            qDebug() << Q_FUNC_INFO << "Got null windowHandle";
+        if (windowDesktop != KWindowSystem::currentDesktop())
+            KWindowSystem::setCurrentDesktop(windowDesktop);
+        KWindowSystem::activateWindow(window);
     } else {
         qDebug() << Q_FUNC_INFO << "activationWindow not set or null";
     }
