From efee142b4b64c8f3ffe9a6a3e8465f514d90f8ae Mon Sep 17 00:00:00 2001 From: WarmUpTill <19472752+WarmUpTill@users.noreply.github.com> Date: Mon, 17 Aug 2026 19:31:03 +0200 Subject: [PATCH] Adaptitions for kWin support on Flatpak --- lib/linux/advanced-scene-switcher-nix.cpp | 17 +++++++++-------- lib/linux/kwin-helpers.cpp | 8 ++++++-- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/lib/linux/advanced-scene-switcher-nix.cpp b/lib/linux/advanced-scene-switcher-nix.cpp index 2862a38c..90b4d7bb 100644 --- a/lib/linux/advanced-scene-switcher-nix.cpp +++ b/lib/linux/advanced-scene-switcher-nix.cpp @@ -630,14 +630,9 @@ int ignoreXerror(Display *d, XErrorEvent *e) void PlatformInit() { - auto display = disp(); - if (!display) { - return; - } - KWin = isKWinAvailable(); - if (!(KWin && startKWinScript(KWinScriptObjectPath) && - registerKWinDBusListener(¬ifier))) { + if (!(KWin && registerKWinDBusListener(¬ifier) && + startKWinScript(KWinScriptObjectPath))) { // something bad happened while trying to initialize // the KWin script/dbus so disable it KWin = false; @@ -646,9 +641,15 @@ void PlatformInit() blog(LOG_INFO, "using KWin compat"); } - initXss(); initProcps(); initProc2(); + + auto display = disp(); + if (!display) { + return; + } + + initXss(); XSetErrorHandler(ignoreXerror); } diff --git a/lib/linux/kwin-helpers.cpp b/lib/linux/kwin-helpers.cpp index 7d7efb68..f60e514b 100644 --- a/lib/linux/kwin-helpers.cpp +++ b/lib/linux/kwin-helpers.cpp @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include @@ -97,7 +98,9 @@ bool isKWinAvailable() bool startKWinScript(QString &scriptObjectPath) { const QString scriptPath = - "/tmp/AdvancedSceneSwitcher/KWinFocusNotifier.js"; + QStandardPaths::writableLocation( + QStandardPaths::RuntimeLocation) + + "/AdvancedSceneSwitcher/KWinFocusNotifier.js"; const QString script = R"(var adss = "com.github.AdvancedSceneSwitcher"; @@ -129,7 +132,8 @@ workspace.windowActivated.connect(function(client) { }))"; if (const QDir dir; !dir.mkpath(QFileInfo(scriptPath).absolutePath())) { - blog(LOG_ERROR, "error creating /tmp/AdvancedSceneSwitcher"); + blog(LOG_ERROR, + "error creating KWinFocusNotifier script directory"); return false; }