File 0001-Read-the-DISPLAYMANAGER_AUTOLOGIN-value-from-sysconf.patch of Package sddm
From 5cc1a99fadce25298124cde0be8be9bab25c87cc Mon Sep 17 00:00:00 2001
From: Hrvoje Senjan <hrvoje.senjan@gmail.com>
Date: Sat, 2 Sep 2017 11:27:01 +0200
Subject: [PATCH] Read the DISPLAYMANAGER_AUTOLOGIN value from
sysconfig/displaymanager
Support DISPLAYMANAGER_AUTOLOGIN entry from /etc/sysconfig/displaymanager,
the value overwrites any entry in sddm.conf/[Autologin]/User.
Patch also defaults to default.desktop as default autologin session.
This is controlled only by sddm.conf file.
---
CMakeLists.txt | 1 +
src/common/Configuration.h | 5 +++--
src/common/Constants.h.in | 1 +
src/daemon/Display.cpp | 6 ++++++
4 files changed, 11 insertions(+), 2 deletions(-)
Index: sddm-0.21.0/CMakeLists.txt
===================================================================
--- sddm-0.21.0.orig/CMakeLists.txt
+++ sddm-0.21.0/CMakeLists.txt
@@ -184,6 +184,7 @@ set(CONFIG_FILE "${CMAKE
set(CONFIG_DIR "${CMAKE_INSTALL_FULL_SYSCONFDIR}/sddm.conf.d" CACHE PATH "Path of the sddm config directory")
set(ACCOUNTSSERVICE_DATA_DIR "/var/lib/AccountsService" CACHE PATH "Path of the accountsservice data directory")
set(SYSTEM_CONFIG_DIR "${CMAKE_INSTALL_PREFIX}/lib/sddm/sddm.conf.d" CACHE PATH "Path of the system sddm config directory")
+set(DISPLAY_MANAGER_CONFIG_FILE "${CMAKE_INSTALL_FULL_SYSCONFDIR}/sysconfig/displaymanager" CACHE PATH "Path of the sysconfig/displaymanager config file")
set(LOG_FILE "${CMAKE_INSTALL_FULL_LOCALSTATEDIR}/log/sddm.log" CACHE PATH "Path of the sddm log file")
set(DBUS_CONFIG_FILENAME "org.freedesktop.DisplayManager.conf" CACHE STRING "Name of the sddm config file")
set(COMPONENTS_TRANSLATION_DIR "${DATA_INSTALL_DIR}/translations-qt${QT_MAJOR_VERSION}" CACHE PATH "Components translations directory")
Index: sddm-0.21.0/src/common/Constants.h.in
===================================================================
--- sddm-0.21.0.orig/src/common/Constants.h.in
+++ sddm-0.21.0/src/common/Constants.h.in
@@ -36,6 +36,7 @@
#define CONFIG_FILE "@CONFIG_FILE@"
#define CONFIG_DIR "@CONFIG_DIR@"
#define SYSTEM_CONFIG_DIR "@SYSTEM_CONFIG_DIR@"
+#define DISPLAY_MANAGER_CONFIG_FILE "@DISPLAY_MANAGER_CONFIG_FILE@"
#define LOG_FILE "@LOG_FILE@"
#define PID_FILE "@PID_FILE@"
Index: sddm-0.21.0/src/daemon/Display.cpp
===================================================================
--- sddm-0.21.0.orig/src/daemon/Display.cpp
+++ sddm-0.21.0/src/daemon/Display.cpp
@@ -35,6 +35,7 @@
#include <QFile>
#include <QTimer>
#include <QLocalSocket>
+#include <QSettings>
#include <pwd.h>
#include <unistd.h>
@@ -166,6 +167,11 @@ namespace SDDM {
});
connect(m_greeter, &Greeter::displayServerFailed, this, &Display::displayServerFailed);
+ QSettings sysconfSettings(QStringLiteral(DISPLAY_MANAGER_CONFIG_FILE), QSettings::NativeFormat);
+ QString sysconfigUser = sysconfSettings.value(QStringLiteral("DISPLAYMANAGER_AUTOLOGIN"), QStringLiteral("")).toString();
+
+ mainConfig.Autologin.User.set(sysconfigUser);
+
// Load autologin configuration (whether to autologin, user, session, session type)
if ((daemonApp->first || mainConfig.Autologin.Relogin.get()) &&
!mainConfig.Autologin.User.get().isEmpty()) {