about summary refs log tree commit diff
path: root/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch')
-rw-r--r--pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch129
1 files changed, 129 insertions, 0 deletions
diff --git a/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch b/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch
new file mode 100644
index 000000000000..a4eadfd77501
--- /dev/null
+++ b/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch
@@ -0,0 +1,129 @@
+From 1796822e4c97062b919a596ce13db68e2c46c7e8 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Tue, 28 Jan 2020 05:00:53 -0600
+Subject: [PATCH] startkde
+
+---
+ startkde/startplasma-waylandsession.cpp |  2 +-
+ startkde/startplasma-x11.cpp            |  2 +-
+ startkde/startplasma.cpp                | 32 ++++++++-----------------
+ 3 files changed, 12 insertions(+), 24 deletions(-)
+
+diff --git a/startkde/startplasma-waylandsession.cpp b/startkde/startplasma-waylandsession.cpp
+index 87c71c6..5fc5314 100644
+--- a/startkde/startplasma-waylandsession.cpp
++++ b/startkde/startplasma-waylandsession.cpp
+@@ -67,7 +67,7 @@ int main(int /*argc*/, char** /*argv*/)
+     waitForKonqi();
+     out << "startplasma-waylandsession: Shutting down...\n";
+ 
+-    runSync(QStringLiteral("kdeinit5_shutdown"), {});
++    runSync(QStringLiteral(NIXPKGS_KDEINIT5_SHUTDOWN), {});
+ 
+     cleanupX11();
+     out << "startplasma-waylandsession: Done.\n";
+diff --git a/startkde/startplasma-x11.cpp b/startkde/startplasma-x11.cpp
+index 3314b62..14cbe29 100644
+--- a/startkde/startplasma-x11.cpp
++++ b/startkde/startplasma-x11.cpp
+@@ -111,7 +111,7 @@ int main(int /*argc*/, char** /*argv*/)
+ 
+     out << "startkde: Shutting down...\n";
+ 
+-    runSync(QStringLiteral("kdeinit5_shutdown"), {});
++    runSync(QStringLiteral(NIXPKGS_KDEINIT5_SHUTDOWN), {});
+ 
+     cleanupPlasmaEnvironment();
+     cleanupX11();
+diff --git a/startkde/startplasma.cpp b/startkde/startplasma.cpp
+index e0f7004..8ac41fd 100644
+--- a/startkde/startplasma.cpp
++++ b/startkde/startplasma.cpp
+@@ -34,7 +34,7 @@ QTextStream out(stderr);
+ void messageBox(const QString &text)
+ {
+     out << text;
+-    runSync(QStringLiteral("xmessage"), {QStringLiteral("-geometry"), QStringLiteral("500x100"), text});
++    runSync(QStringLiteral(NIXPKGS_XMESSAGE), {QStringLiteral("-geometry"), QStringLiteral("500x100"), text});
+ }
+ 
+ QStringList allServices(const QLatin1String& prefix)
+@@ -184,14 +184,6 @@ void runEnvironmentScripts()
+         }
+     }
+     sourceFiles(scripts);
+-
+-    // Make sure that the KDE prefix is first in XDG_DATA_DIRS and that it's set at all.
+-    // The spec allows XDG_DATA_DIRS to be not set, but X session startup scripts tend
+-    // to set it to a list of paths *not* including the KDE prefix if it's not /usr or
+-    // /usr/local.
+-    if (!qEnvironmentVariableIsSet("XDG_DATA_DIRS")) {
+-        qputenv("XDG_DATA_DIRS", KDE_INSTALL_FULL_DATAROOTDIR ":/usr/share:/usr/local/share");
+-    }
+ }
+ 
+ 
+@@ -240,15 +232,15 @@ void setupX11()
+ //     If the user has overwritten fonts, the cursor font may be different now
+ //     so don't move this up.
+ 
+-    runSync(QStringLiteral("xsetroot"), {QStringLiteral("-cursor_name"), QStringLiteral("left_ptr")});
+-    runSync(QStringLiteral("xprop"), {QStringLiteral("-root"), QStringLiteral("-f"), QStringLiteral("KDE_FULL_SESSION"), QStringLiteral("8t"), QStringLiteral("-set"), QStringLiteral("KDE_FULL_SESSION"), QStringLiteral("true")});
+-    runSync(QStringLiteral("xprop"), {QStringLiteral("-root"), QStringLiteral("-f"), QStringLiteral("KDE_SESSION_VERSION"), QStringLiteral("32c"), QStringLiteral("-set"), QStringLiteral("KDE_SESSION_VERSION"), QStringLiteral("5")});
++    runSync(QStringLiteral(NIXPKGS_XSETROOT), {QStringLiteral("-cursor_name"), QStringLiteral("left_ptr")});
++    runSync(QStringLiteral(NIXPKGS_XPROP), {QStringLiteral("-root"), QStringLiteral("-f"), QStringLiteral("KDE_FULL_SESSION"), QStringLiteral("8t"), QStringLiteral("-set"), QStringLiteral("KDE_FULL_SESSION"), QStringLiteral("true")});
++    runSync(QStringLiteral(NIXPKGS_XPROP), {QStringLiteral("-root"), QStringLiteral("-f"), QStringLiteral("KDE_SESSION_VERSION"), QStringLiteral("32c"), QStringLiteral("-set"), QStringLiteral("KDE_SESSION_VERSION"), QStringLiteral("5")});
+ }
+ 
+ void cleanupX11()
+ {
+-    runSync(QStringLiteral("xprop"), { QStringLiteral("-root"), QStringLiteral("-remove"), QStringLiteral("KDE_FULL_SESSION") });
+-    runSync(QStringLiteral("xprop"), { QStringLiteral("-root"), QStringLiteral("-remove"), QStringLiteral("KDE_SESSION_VERSION") });
++    runSync(QStringLiteral(NIXPKGS_XPROP), { QStringLiteral("-root"), QStringLiteral("-remove"), QStringLiteral("KDE_FULL_SESSION") });
++    runSync(QStringLiteral(NIXPKGS_XPROP), { QStringLiteral("-root"), QStringLiteral("-remove"), QStringLiteral("KDE_SESSION_VERSION") });
+ }
+ 
+ // TODO: Check if Necessary
+@@ -265,11 +257,7 @@ bool syncDBusEnvironment()
+ {
+     int exitCode;
+     // At this point all environment variables are set, let's send it to the DBus session server to update the activation environment
+-    if (!QStandardPaths::findExecutable(QStringLiteral("dbus-update-activation-environment")).isEmpty()) {
+-        exitCode = runSync(QStringLiteral("dbus-update-activation-environment"), { QStringLiteral("--systemd"), QStringLiteral("--all") });
+-    } else {
+-        exitCode = runSync(QStringLiteral(CMAKE_INSTALL_FULL_LIBEXECDIR "/ksyncdbusenv"), {});
+-    }
++		exitCode = runSync(QStringLiteral(NIXPKGS_DBUS_UPDATE_ACTIVATION_ENVIRONMENT), { QStringLiteral("--systemd"), QStringLiteral("--all") });
+     return exitCode == 0;
+ }
+ 
+@@ -285,7 +273,7 @@ void setupFontDpi()
+     //TODO port to c++?
+     const QByteArray input = "Xft.dpi: " + QByteArray::number(fontsCfg.readEntry("forceFontDPI", 0));
+     QProcess p;
+-    p.start(QStringLiteral("xrdb"), { QStringLiteral("-quiet"), QStringLiteral("-merge"), QStringLiteral("-nocpp") });
++    p.start(QStringLiteral(NIXPKGS_XRDB), { QStringLiteral("-quiet"), QStringLiteral("-merge"), QStringLiteral("-nocpp") });
+     p.setProcessChannelMode(QProcess::ForwardedChannels);
+     p.write(input);
+     p.closeWriteChannel();
+@@ -307,7 +295,7 @@ QProcess* setupKSplash()
+         KConfigGroup ksplashCfg = cfg.group("KSplash");
+         if (ksplashCfg.readEntry("Engine", QStringLiteral("KSplashQML")) == QLatin1String("KSplashQML")) {
+             p = new QProcess;
+-            p->start(QStringLiteral("ksplashqml"), { ksplashCfg.readEntry("Theme", QStringLiteral("Breeze")) });
++            p->start(QStringLiteral(CMAKE_INSTALL_FULL_BINDIR "/ksplashqml"), { ksplashCfg.readEntry("Theme", QStringLiteral("Breeze")) });
+         }
+     }
+     return p;
+@@ -329,7 +317,7 @@ bool startKDEInit()
+ {
+     // We set LD_BIND_NOW to increase the efficiency of kdeinit.
+     // kdeinit unsets this variable before loading applications.
+-    const int exitCode = runSync(QStringLiteral(CMAKE_INSTALL_FULL_LIBEXECDIR_KF5 "/start_kdeinit_wrapper"), { QStringLiteral("--kded"), QStringLiteral("+kcminit_startup") }, { QStringLiteral("LD_BIND_NOW=true") });
++    const int exitCode = runSync(QStringLiteral(NIXPKGS_START_KDEINIT_WRAPPER), { QStringLiteral("--kded"), QStringLiteral("+kcminit_startup") }, { QStringLiteral("LD_BIND_NOW=true") });
+     if (exitCode != 0) {
+         messageBox(QStringLiteral("startkde: Could not start kdeinit5. Check your installation."));
+         return false;
+-- 
+2.23.1
+