diff options
Diffstat (limited to 'sddm-0.19.0-allow-hiding-wayland-sessions.patch')
-rw-r--r-- | sddm-0.19.0-allow-hiding-wayland-sessions.patch | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/sddm-0.19.0-allow-hiding-wayland-sessions.patch b/sddm-0.19.0-allow-hiding-wayland-sessions.patch new file mode 100644 index 0000000..9eb550e --- /dev/null +++ b/sddm-0.19.0-allow-hiding-wayland-sessions.patch @@ -0,0 +1,57 @@ +From 0b5040a887459a974bb4a3a4512a8392daa0eb66 Mon Sep 17 00:00:00 2001 +From: Jeremy Linton <jeremy.linton@arm.com> +Date: Mon, 25 Oct 2021 14:56:14 -0500 +Subject: [PATCH] greeter: Do not populate Wayland sessions if they are to be + hidden + +Check for /dev/dri which should indicate that the Wayland will work +on this hardware. + +Signed-off-by: Jeremy Linton <jeremy.linton@arm.com> +--- + src/greeter/SessionModel.cpp | 12 ++++++++++-- + 1 file changed, 10 insertions(+), 2 deletions(-) + +diff --git a/src/greeter/SessionModel.cpp b/src/greeter/SessionModel.cpp +index 1953c76..b1f3296 100644 +--- a/src/greeter/SessionModel.cpp ++++ b/src/greeter/SessionModel.cpp +@@ -22,6 +22,7 @@ + + #include "Configuration.h" + ++#include <QFileInfo> + #include <QVector> + #include <QProcessEnvironment> + #include <QFileSystemWatcher> +@@ -39,18 +40,25 @@ namespace SDDM { + }; + + SessionModel::SessionModel(QObject *parent) : QAbstractListModel(parent), d(new SessionModelPrivate()) { ++ // Check for flag to hide Wayland sessions ++ bool dri_active = QFileInfo::exists(QStringLiteral("/dev/dri")); ++ + // initial population + beginResetModel(); +- populate(Session::WaylandSession, mainConfig.Wayland.SessionDir.get()); ++ if (dri_active) ++ populate(Session::WaylandSession, mainConfig.Wayland.SessionDir.get()); + populate(Session::X11Session, mainConfig.X11.SessionDir.get()); + endResetModel(); + + // refresh everytime a file is changed, added or removed + QFileSystemWatcher *watcher = new QFileSystemWatcher(this); + connect(watcher, &QFileSystemWatcher::directoryChanged, [this](const QString &path) { ++ // Recheck for flag to hide Wayland sessions ++ bool dri_active = QFileInfo::exists(QStringLiteral("/dev/dri")); + beginResetModel(); + d->sessions.clear(); +- populate(Session::WaylandSession, mainConfig.Wayland.SessionDir.get()); ++ if (dri_active) ++ populate(Session::WaylandSession, mainConfig.Wayland.SessionDir.get()); + populate(Session::X11Session, mainConfig.X11.SessionDir.get()); + endResetModel(); + }); +-- +2.32.0 + |