File 0001-Support-for-theme-supplied-default-avatars.patch of Package sddm
From 2f079338408dfead4ba0e3e424a4d84a6bdf6019 Mon Sep 17 00:00:00 2001
From: Sogatori <Sogatori@users.noreply.github.com>
Date: Sun, 4 Mar 2018 00:42:28 +0100
Subject: [PATCH 1/6] Support for theme supplied default avatars
This patch adds support for custom default avatars
under $ThemeDir/themeName/faces.
This will make sddm use an avatar icon that is provided by
the theme and is consistent with its look.
---
src/greeter/UserModel.cpp | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/greeter/UserModel.cpp b/src/greeter/UserModel.cpp
index ebc1819..c790336 100644
--- a/src/greeter/UserModel.cpp
+++ b/src/greeter/UserModel.cpp
@@ -52,7 +52,10 @@ namespace SDDM {
UserModel::UserModel(QObject *parent) : QAbstractListModel(parent), d(new UserModelPrivate()) {
const QString facesDir = mainConfig.Theme.FacesDir.get();
- const QString defaultFace = QStringLiteral("file://%1/.face.icon").arg(facesDir);
+ const QString themeDir = mainConfig.Theme.ThemeDir.get();
+ const QString currentTheme = mainConfig.Theme.Current.get();
+ const QString themeDefaultFace = QStringLiteral("%1/%2/faces/.face.icon").arg(themeDir).arg(currentTheme);
+ const QString defaultFace = QStringLiteral("%1/.face.icon").arg(facesDir);
struct passwd *current_pw;
while ((current_pw = getpwent()) != nullptr) {
@@ -91,7 +94,10 @@ namespace SDDM {
user->needsPassword = strcmp(current_pw->pw_passwd, "") != 0;
// search for face icon
- user->icon = defaultFace;
+ if (QFile::exists(themeDefaultFace))
+ user->icon = QStringLiteral("file://%1").arg(themeDefaultFace);
+ else
+ user->icon = QStringLiteral("file://%1").arg(defaultFace);
// add user
d->users << user;
--
2.16.2