File 0001-Also-theme-the-default-cursor-for-the-root-window.patch of Package sddm
From ddbf5d75cb9504279a190b641a3d74edf43d9e76 Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fabian@ritter-vogt.de>
Date: Fri, 5 May 2017 23:17:26 +0200
Subject: [PATCH] Also theme the default cursor for the root window
The root window is still accessible in some cases, like context menu overlays.
---
src/daemon/XorgDisplayServer.cpp | 12 +++++++++++-
1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/src/daemon/XorgDisplayServer.cpp b/src/daemon/XorgDisplayServer.cpp
index d06d89a1..76568566 100644
--- a/src/daemon/XorgDisplayServer.cpp
+++ b/src/daemon/XorgDisplayServer.cpp
@@ -249,7 +249,7 @@ namespace SDDM {
env.insert(QStringLiteral("SHELL"), QStringLiteral("/bin/sh"));
displayStopScript->setProcessEnvironment(env);
- // start display setup script
+ // start display stop script
qDebug() << "Running display stop script " << displayStopCommand;
displayStopScript->start(displayStopCommand);
@@ -285,8 +285,18 @@ namespace SDDM {
env.insert(QStringLiteral("PATH"), mainConfig.Users.DefaultPath.get());
env.insert(QStringLiteral("XAUTHORITY"), m_authPath);
env.insert(QStringLiteral("SHELL"), QStringLiteral("/bin/sh"));
+ env.insert(QStringLiteral("XCURSOR_THEME"), mainConfig.Theme.CursorTheme.get());
displayScript->setProcessEnvironment(env);
+ qDebug() << "Setting default cursor";
+ displayScript->start(QStringLiteral("xsetroot -cursor_name left_ptr"));
+
+ // wait for finished
+ if (!displayScript->waitForFinished(1000)) {
+ qWarning() << "Could not setup default cursor";
+ displayScript->kill();
+ }
+
// delete displayScript on finish
connect(displayScript, SIGNAL(finished(int,QProcess::ExitStatus)), displayScript, SLOT(deleteLater()));