You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sddm/sddm-0.20.0-allow-hiding-wa...

59 lines
2.2 KiB

From 7168262e2174046e335c445e72504758dbf7049b 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 /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 <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 a0eb3b1..92f6d1a 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>
@@ -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