File no-x11.patch of Package kwin
diff -ur kwin-6.4.4/src/workspace.cpp kwin-6.4.4-new/src/workspace.cpp
--- kwin-6.4.4/src/workspace.cpp 2025-08-05 18:50:46.000000000 +0800
+++ kwin-6.4.4-new/src/workspace.cpp 2025-08-19 15:57:23.026232308 +0800
@@ -35,7 +35,6 @@
#include "rules.h"
#include "screenedge.h"
#include "scripting/scripting.h"
-#include "syncalarmx11filter.h"
#include "tiles/tilemanager.h"
#include "window.h"
#if KWIN_BUILD_TABBOX
@@ -86,16 +85,6 @@
namespace KWin
{
-X11EventFilterContainer::X11EventFilterContainer(X11EventFilter *filter)
- : m_filter(filter)
-{
-}
-
-X11EventFilter *X11EventFilterContainer::filter() const
-{
- return m_filter;
-}
-
Workspace *Workspace::_self = nullptr;
Workspace::Workspace()
diff -ur kwin-6.4.4/src/cursor.cpp kwin-6.4.4-new/src/cursor.cpp
--- kwin-6.4.4/src/cursor.cpp 2025-08-05 18:50:46.000000000 +0800
+++ kwin-6.4.4-new/src/cursor.cpp 2025-08-19 15:41:57.427175657 +0800
@@ -122,9 +122,6 @@
QDBusConnection::sessionBus().connect(QString(), QStringLiteral("/KGlobalSettings"), QStringLiteral("org.kde.KGlobalSettings"),
QStringLiteral("notifyChange"), this, SLOT(slotKGlobalSettingsNotifyChange(int, int)));
- connect(kwinApp(), &Application::x11ConnectionChanged, this, [this]() {
- m_cursors.clear();
- });
}
void Cursor::loadThemeSettings()
diff -ur kwin-6.4.4/src/cursor.h kwin-6.4.4-new/src/cursor.h
--- kwin-6.4.4/src/cursor.h 2025-08-05 18:50:46.000000000 +0800
+++ kwin-6.4.4-new/src/cursor.h 2025-08-19 15:45:12.478187595 +0800
@@ -15,8 +15,7 @@
#include <QPoint>
// KF
#include <KSharedConfig>
-// xcb
-#include <xcb/xcb.h>
+typedef uint32_t xcb_cursor_t;
class QTimer;
diff --git a/src/effect/effecthandler.cpp b/src/effect/effecthandler.cpp
index 60e0354ec6..5dace349cd 100644
--- a/src/effect/effecthandler.cpp
+++ b/src/effect/effecthandler.cpp
@@ -40,7 +40,6 @@
#include "sm.h"
#include "virtualdesktops.h"
#include "wayland_server.h"
-#include "window_property_notify_x11_filter.h"
#include "workspace.h"
#if KWIN_BUILD_X11
#include "x11window.h"
--- a/src/effect/effecthandler.h
+++ b/src/effect/effecthandler.h
@@ -76,7 +76,6 @@
class TabletToolId;
class Window;
class WindowItem;
-class WindowPropertyNotifyX11Filter;
class WorkspaceScene;
class VirtualDesktop;
class OpenGlContext;
@@ -1116,7 +1115,6 @@
WorkspaceScene *m_scene;
QList<Effect *> m_grabbedMouseEffects;
EffectLoader *m_effectLoader;
- std::unique_ptr<WindowPropertyNotifyX11Filter> m_x11WindowPropertyNotify;
};
/**
diff --git a/src/helpers/killer/killer.cpp b/src/helpers/killer/killer.cpp
index f61e18d864..4b362bccbc 100644
--- a/src/helpers/killer/killer.cpp
+++ b/src/helpers/killer/killer.cpp
@@ -22,9 +22,6 @@
#include <qpa/qplatformwindow_p.h>
-#include <private/qtx11extras_p.h>
-#include <xcb/xcb.h>
-
#include <cerrno>
#include <csignal>
#include <memory>
@@ -109,20 +106,13 @@ int main(int argc, char *argv[])
QString caption = parser.value(windowNameOption);
QString appname = parser.value(applicationNameOption);
bool id_ok = false;
- xcb_window_t wid = XCB_WINDOW_NONE;
QString windowHandle;
- if (isX11) {
- wid = parser.value(widOption).toULong(&id_ok);
- } else {
- windowHandle = parser.value(widOption);
- }
+ windowHandle = parser.value(widOption);
// on Wayland XDG_ACTIVATION_TOKEN is set in the environment.
bool time_ok = false;
- xcb_timestamp_t timestamp = parser.value(timestampOption).toULong(&time_ok);
- if (!pid_ok || pid == 0 || ((!id_ok || wid == XCB_WINDOW_NONE) && windowHandle.isEmpty())
- || (isX11 && (!time_ok || timestamp == XCB_CURRENT_TIME))
+ if (!pid_ok || pid == 0
|| hostname.isEmpty() || caption.isEmpty() || appname.isEmpty()) {
fprintf(stdout, "%s\n", qPrintable(i18n("This helper utility is not supposed to be called directly.")));
parser.showHelp(1);
@@ -156,10 +146,6 @@ int main(int argc, char *argv[])
KGuiItem continueButton = KGuiItem(i18nc("@action:button Terminate app", "&Terminate %1", appname), QStringLiteral("application-exit"));
KGuiItem cancelButton = KGuiItem(i18nc("@action:button Wait for frozen app to maybe respond again", "&Wait Longer"), QStringLiteral("chronometer"));
- if (isX11) {
- QX11Info::setAppUserTime(timestamp);
- }
-
auto *dialog = new KMessageDialog(KMessageDialog::WarningContinueCancel, question);
dialog->setAttribute(Qt::WA_DeleteOnClose);
dialog->setCaption(i18nc("@title:window", "Not Responding"));
@@ -188,13 +174,7 @@ int main(int argc, char *argv[])
std::unique_ptr<XdgImporter> xdgImporter;
std::unique_ptr<XdgImported> importedParent;
- if (isX11) {
- if (QWindow *foreignParent = QWindow::fromWinId(wid)) {
- dialog->windowHandle()->setTransientParent(foreignParent);
- }
- } else {
- xdgImporter = std::make_unique<XdgImporter>();
- }
+ xdgImporter = std::make_unique<XdgImporter>();
QObject::connect(dialog, &QDialog::finished, &app, [pid, hostname, isLocal](int result) {
if (result == KMessageBox::PrimaryAction) {
diff --git a/src/screenedge.h b/src/screenedge.h
index 66bfb8364b..1b84e706d7 100644
--- a/src/screenedge.h
+++ b/src/screenedge.h
@@ -28,7 +28,6 @@
#include <QRect>
#include <memory>
-#include <xcb/xcb.h>
class QAction;
class QMouseEvent;
diff --git a/src/window.h b/src/window.h
index 2e7d4c9f15..ed41477f35 100644
--- a/src/window.h
+++ b/src/window.h
@@ -1072,7 +1072,6 @@ public:
*/
virtual bool dockWantsInput() const;
void checkWorkspacePosition(QRectF oldGeometry = QRectF(), const VirtualDesktop *oldDesktop = nullptr);
- virtual xcb_timestamp_t userTime() const;
void keyPressEvent(uint key_code);
--- a/src/shadow.h
+++ b/src/shadow.h
@@ -15,8 +15,6 @@
#include <QObject>
#include <QRectF>
-#include <xcb/xcb.h>
-
namespace KDecoration3
{
class Decoration;
@@ -122,11 +120,9 @@ public Q_SLOTS:
void geometryChanged();
private:
- static std::unique_ptr<Shadow> createShadowFromX11(Window *window);
static std::unique_ptr<Shadow> createShadowFromDecoration(Window *window);
static std::unique_ptr<Shadow> createShadowFromWayland(Window *window);
static std::unique_ptr<Shadow> createShadowFromInternalWindow(Window *window);
- static QList<uint32_t> readX11ShadowProperty(xcb_window_t id);
bool init(const QList<uint32_t> &data);
bool init(KDecoration3::Decoration *decoration);
bool init(const QPointer<ShadowInterface> &shadow);
--- a/src/window.cpp
+++ b/src/window.cpp
@@ -422,11 +422,6 @@
return c1->belongsToSameApplication(c2, checks);
}
-xcb_timestamp_t Window::userTime() const
-{
- return XCB_TIME_CURRENT_TIME;
-}
-
void Window::setSkipSwitcher(bool set)
{
set = rules()->checkSkipSwitcher(set);