From 7168262e2174046e335c445e72504758dbf7049b Mon Sep 17 00:00:00 2001 From: Jeremy Linton Date: Mon, 25 Oct 2021 14:56:14 -0500 Subject: [PATCH] greeter: Do not populate Wayland sessions if /dev/dri does not exist Check for /dev/dri which should indicate that the Wayland will work on this hardware. Signed-off-by: Jeremy Linton --- 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 a0eb3b1..92f6d1a 100644 --- a/src/greeter/SessionModel.cpp +++ b/src/greeter/SessionModel.cpp @@ -22,6 +22,7 @@ #include "Configuration.h" +#include #include #include #include @@ -40,19 +41,26 @@ namespace SDDM { }; SessionModel::SessionModel(QObject *parent) : QAbstractListModel(parent), d(new SessionModelPrivate()) { + // Check for flag to show 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 show Wayland sessions + bool dri_active = QFileInfo::exists(QStringLiteral("/dev/dri")); beginResetModel(); d->sessions.clear(); d->displayNames.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.33.1