diff --git a/pkgs/applications/display-managers/sddm/default.nix b/pkgs/applications/display-managers/sddm/default.nix index 3ce8d075410..47365fad6c4 100644 --- a/pkgs/applications/display-managers/sddm/default.nix +++ b/pkgs/applications/display-managers/sddm/default.nix @@ -5,7 +5,7 @@ let - version = "0.15.0"; + version = "0.16.0"; in mkDerivation rec { name = "sddm-${version}"; @@ -14,7 +14,7 @@ in mkDerivation rec { owner = "sddm"; repo = "sddm"; rev = "v${version}"; - sha256 = "1wissgl7wd7fblq8ghz8n2fr6wqip7h88p9fiarfpvi1918fgng8"; + sha256 = "1j0rc8nk8bz7sxa0bc6lx9v7r3zlcfyicngfjqb894ni9k71kzsb"; }; patches = diff --git a/pkgs/applications/display-managers/sddm/disable-hidpi-xorg.patch b/pkgs/applications/display-managers/sddm/disable-hidpi-xorg.patch new file mode 100644 index 00000000000..abd10016a20 --- /dev/null +++ b/pkgs/applications/display-managers/sddm/disable-hidpi-xorg.patch @@ -0,0 +1,26 @@ +From 6bff89542a2c1b5719370baf3c3a38fd8b2b3c37 Mon Sep 17 00:00:00 2001 +From: adisbladis +Date: Mon, 16 Oct 2017 02:25:50 +0800 +Subject: [PATCH] Disable HiDPI by default on X11 as it causes segmentation + faults with certain themes (KDE Breeze) + +--- + src/common/Configuration.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/common/Configuration.h b/src/common/Configuration.h +index 19c6fb1..2bb1dc5 100644 +--- a/src/common/Configuration.h ++++ b/src/common/Configuration.h +@@ -69,7 +69,7 @@ namespace SDDM { + Entry(DisplayCommand, QString, _S(DATA_INSTALL_DIR "/scripts/Xsetup"), _S("Path to a script to execute when starting the display server")); + Entry(DisplayStopCommand, QString, _S(DATA_INSTALL_DIR "/scripts/Xstop"), _S("Path to a script to execute when stopping the display server")); + Entry(MinimumVT, int, MINIMUM_VT, _S("The lowest virtual terminal number that will be used.")); +- Entry(EnableHiDPI, bool, false, _S("Enable Qt's automatic high-DPI scaling")); ++ Entry(EnableHiDPI, bool, true, _S("Enable Qt's automatic high-DPI scaling")); + ); + + Section(Wayland, +-- +2.14.2 + diff --git a/pkgs/applications/display-managers/sddm/sddm-ignore-config-mtime.patch b/pkgs/applications/display-managers/sddm/sddm-ignore-config-mtime.patch index 836df2de292..aac09dfe876 100644 --- a/pkgs/applications/display-managers/sddm/sddm-ignore-config-mtime.patch +++ b/pkgs/applications/display-managers/sddm/sddm-ignore-config-mtime.patch @@ -1,28 +1,43 @@ -From e9d82bfbc49993a5be2c93f6b72a969630587f26 Mon Sep 17 00:00:00 2001 -From: Thomas Tuegel -Date: Mon, 23 Nov 2015 06:56:28 -0600 -Subject: [PATCH 1/2] ignore config mtime - ---- - src/common/ConfigReader.cpp | 5 ----- - 1 file changed, 5 deletions(-) - diff --git a/src/common/ConfigReader.cpp b/src/common/ConfigReader.cpp -index cfc9940..5bf5a6a 100644 +index 4b5983c..911c511 100644 --- a/src/common/ConfigReader.cpp +++ b/src/common/ConfigReader.cpp -@@ -138,11 +138,6 @@ namespace SDDM { - QString currentSection = QStringLiteral(IMPLICIT_SECTION); +@@ -147,16 +147,13 @@ namespace SDDM { + // * m_path (classic fallback /etc/sddm.conf) - QFile in(m_path); -- QDateTime modificationTime = QFileInfo(in).lastModified(); -- if (modificationTime <= m_fileModificationTime) { + QStringList files; +- QDateTime latestModificationTime = QFileInfo(m_path).lastModified(); + + if (!m_sysConfigDir.isEmpty()) { + //include the configDir in modification time so we also reload on any files added/removed + QDir dir(m_sysConfigDir); + if (dir.exists()) { +- latestModificationTime = std::max(latestModificationTime, QFileInfo(m_sysConfigDir).lastModified()); + foreach (const QFileInfo &file, dir.entryInfoList(QDir::Files | QDir::NoDotAndDotDot, QDir::LocaleAware)) { + files << (file.absoluteFilePath()); +- latestModificationTime = std::max(latestModificationTime, file.lastModified()); + } + } + } +@@ -164,21 +161,14 @@ namespace SDDM { + //include the configDir in modification time so we also reload on any files added/removed + QDir dir(m_configDir); + if (dir.exists()) { +- latestModificationTime = std::max(latestModificationTime, QFileInfo(m_configDir).lastModified()); + foreach (const QFileInfo &file, dir.entryInfoList(QDir::Files | QDir::NoDotAndDotDot, QDir::LocaleAware)) { + files << (file.absoluteFilePath()); +- latestModificationTime = std::max(latestModificationTime, file.lastModified()); + } + } + } + + files << m_path; + +- if (latestModificationTime <= m_fileModificationTime) { - return; - } -- m_fileModificationTime = modificationTime; - - in.open(QIODevice::ReadOnly); - while (!in.atEnd()) { --- -2.6.3 - +- m_fileModificationTime = latestModificationTime; +- + foreach (const QString &filepath, files) { + loadInternal(filepath); + } diff --git a/pkgs/applications/display-managers/sddm/series b/pkgs/applications/display-managers/sddm/series index cb6ea65fedb..09992b211c5 100644 --- a/pkgs/applications/display-managers/sddm/series +++ b/pkgs/applications/display-managers/sddm/series @@ -1 +1,2 @@ -sddm-ignore-config-mtime.patch \ No newline at end of file +sddm-ignore-config-mtime.patch +disable-hidpi-xorg.patch