Update passwordless GDM implementation to match upstream

This adds fix for fingerprint appearing when not corresponding.
Resolves: https://issues.redhat.com/browse/RHEL-145961

Another fix to ensure authPrompt is in proper height.
Resolves: https://issues.redhat.com/browse/RHEL-146299

Required also update fingerprint workaround.
This commit is contained in:
Joan Torres Lopez 2026-02-17 13:10:19 +01:00
parent 3b9645a765
commit 6a8f36d9cd
4 changed files with 2368 additions and 1475 deletions

File diff suppressed because it is too large Load Diff

View File

@ -4,13 +4,13 @@ Date: Tue, 16 Apr 2024 20:49:40 +0200
Subject: [PATCH] data: Update generated stylesheets
---
data/theme/gnome-shell-dark.css | 460 +++++++++++++++++-----
data/theme/gnome-shell-high-contrast.css | 476 ++++++++++++++++++-----
data/theme/gnome-shell-light.css | 460 +++++++++++++++++-----
3 files changed, 1072 insertions(+), 324 deletions(-)
data/theme/gnome-shell-dark.css | 468 +++++++++++++++++-----
data/theme/gnome-shell-high-contrast.css | 484 ++++++++++++++++++-----
data/theme/gnome-shell-light.css | 467 +++++++++++++++++-----
3 files changed, 1095 insertions(+), 324 deletions(-)
diff --git a/data/theme/gnome-shell-dark.css b/data/theme/gnome-shell-dark.css
index 75dc5c6..aa5765d 100644
index 82e68c5..a96fde1 100644
--- a/data/theme/gnome-shell-dark.css
+++ b/data/theme/gnome-shell-dark.css
@@ -42,7 +42,9 @@ stage {
@ -215,8 +215,8 @@ index 75dc5c6..aa5765d 100644
font-size: 1.182em; }
-.login-dialog-not-listed-label, #LookingGlassExtensions .lg-extension .lg-extension-name, #LookingGlassWindows .lg-window .lg-window-name, #LookingGlassPropertyInspector .lg-obj-inspector-title, .background-app-item .title, .quick-toggle .quick-toggle-title, .osd-window, .dialog-list .dialog-list-title, .message-list-controls, .weather-button .weather-box .weather-header-box .weather-header, .world-clocks-button .world-clocks-header, .events-button .events-box .events-list .event-box .event-summary, .events-button .events-box .events-title, .calendar .calendar-month-header .calendar-month-label {
+.login-dialog-auth-list-item-popup-box .login-dialog-auth-list-item-popup-labels, .login-dialog-auth-list-item-first-line,
+.login-dialog-auth-list-item-second-line, .login-dialog-not-listed-label, #LookingGlassExtensions .lg-extension .lg-extension-name, #LookingGlassWindows .lg-window .lg-window-name, #LookingGlassPropertyInspector .lg-obj-inspector-title, .background-app-item .title, .quick-toggle .quick-toggle-title, .osd-window, .dialog-list .dialog-list-title, .message-list-controls, .weather-button .weather-box .weather-header-box .weather-header, .world-clocks-button .world-clocks-header, .events-button .events-box .events-list .event-box .event-summary, .events-button .events-box .events-title, .calendar .calendar-month-header .calendar-month-label {
+.login-dialog-item-icon-popup-box .login-dialog-item-icon-popup-labels, .login-dialog-auth-list-item-title,
+.login-dialog-auth-list-item-subtitle, .login-dialog-not-listed-label, #LookingGlassExtensions .lg-extension .lg-extension-name, #LookingGlassWindows .lg-window .lg-window-name, #LookingGlassPropertyInspector .lg-obj-inspector-title, .background-app-item .title, .quick-toggle .quick-toggle-title, .osd-window, .dialog-list .dialog-list-title, .message-list-controls, .weather-button .weather-box .weather-header-box .weather-header, .world-clocks-button .world-clocks-header, .events-button .events-box .events-list .event-box .event-summary, .events-button .events-box .events-title, .calendar .calendar-month-header .calendar-month-label {
font-weight: 700;
font-size: 1em; }
@ -553,7 +553,21 @@ index 75dc5c6..aa5765d 100644
.app-folder-dialog .message .message-header .message-close-button:active:focus,
.message .message-header .app-folder-dialog .message-close-button:active:focus, .app-folder-dialog .screenshot-ui-show-pointer-button:active:focus {
background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(st-mix(#fafafb, #38383b, 9%), 9%), 5%); }
@@ -3044,19 +3085,62 @@ StScrollBar {
@@ -3032,6 +3073,13 @@ StScrollBar {
background-color: st-lighten(-st-accent-color, 5%);
color: st-lighten(-st-accent-fg-color, 5%); }
+.qr-code {
+ border-radius: 4px;
+ border-width: 1em;
+ background-color: #fafafb;
+ border-color: #fafafb;
+ color: #2e2e33; }
+
.login-dialog,
.unlock-dialog {
color: #fafafb; }
@@ -3044,19 +3092,62 @@ StScrollBar {
.unlock-dialog .login-dialog-prompt-layout {
width: 25em;
spacing: 9px; }
@ -619,7 +633,7 @@ index 75dc5c6..aa5765d 100644
.conflicting-session-dialog-content {
spacing: 20px; }
@@ -3118,49 +3202,103 @@ StScrollBar {
@@ -3118,49 +3209,104 @@ StScrollBar {
background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(#222226, 9%), 5%); }
.login-dialog-auth-list-view {
@ -706,50 +720,51 @@ index 75dc5c6..aa5765d 100644
+ color: #fafafb !important;
+ padding: 0;
+ margin: 0; }
+
+.login-dialog-auth-list-title-label {
+ padding: 6px;
+ text-align: center; }
+
+.login-dialog-auth-list-item-first-line,
+.login-dialog-auth-list-item-second-line {
+ text-align: center;
+ padding: 1.8px 0; }
+
+.login-dialog-auth-list-item-first-line {
+ color: #fafafb; }
-.login-dialog-auth-list-label:ltr {
- padding-left: 15px;
- text-align: left; }
+.login-dialog-auth-list-item-second-line {
+.login-dialog-auth-list-title-label {
+ padding: 6px;
+ text-align: center; }
-.login-dialog-auth-list-label:rtl {
- padding-right: 15px;
- text-align: right; }
+.login-dialog-auth-list-item-title,
+.login-dialog-auth-list-item-subtitle {
+ text-align: center;
+ padding: 1.8px 0; }
+
+.login-dialog-auth-list-item-title {
+ color: #fafafb; }
+
+.login-dialog-auth-list-item-subtitle {
+ color: #c1c1ce;
+ font-weight: 500; }
+
+.login-dialog-auth-list-item-icon {
+.login-dialog-item-icon {
+ width: 1.3em;
+ height: 1.3em;
+ color: #fafafb;
+ padding: 4.2px 6px;
+ border-radius: 8px; }
+ .login-dialog-auth-list-item-icon:hover {
+ .login-dialog-item-icon:hover {
+ background-color: #2e2e33; }
-.login-dialog-auth-list-label:rtl {
- padding-right: 15px;
- text-align: right; }
+.login-dialog-auth-list-item-popup-box .login-dialog-auth-list-item-popup-labels {
+ spacing: 3px;
+ text-align: center; }
+ .login-dialog-auth-list-item-popup-box .login-dialog-auth-list-item-popup-labels > :first-child {
+ color: #b3b3b3;
+ font-weight: 500; }
+ .login-dialog-auth-list-item-popup-box .login-dialog-auth-list-item-popup-labels > :last-child {
+ color: #ffffff; }
+ .login-dialog-item-icon-popup.popup-menu {
+ min-width: 0; }
+ .login-dialog-item-icon-popup-box .login-dialog-item-icon-popup-labels {
+ spacing: 3px;
+ text-align: center; }
+ .login-dialog-item-icon-popup-box .login-dialog-item-icon-popup-labels > :first-child {
+ color: #b3b3b3;
+ font-weight: 500; }
+ .login-dialog-item-icon-popup-box .login-dialog-item-icon-popup-labels > :last-child {
+ color: #ffffff; }
.login-dialog-user-list-view {
width: 25em;
@@ -3189,6 +3327,9 @@ StScrollBar {
@@ -3189,6 +3335,9 @@ StScrollBar {
background-color: st-lighten(st-lighten(st-mix(#fafafb, #222226, 9%), 9%), 4%); }
.login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:active:focus {
background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(st-mix(#fafafb, #222226, 9%), 9%), 5%); }
@ -759,7 +774,7 @@ index 75dc5c6..aa5765d 100644
.login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item .user-icon {
border: 2px solid transparent; }
.login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item .login-dialog-timed-login-indicator {
@@ -3200,6 +3341,102 @@ StScrollBar {
@@ -3200,6 +3349,102 @@ StScrollBar {
.login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:logged-in .user-icon StIcon {
background-color: st-transparentize(-st-accent-color, 0.7); }
@ -862,7 +877,7 @@ index 75dc5c6..aa5765d 100644
.unlock-dialog {
background-color: transparent; }
@@ -3308,3 +3545,10 @@ StScrollBar {
@@ -3308,3 +3553,10 @@ StScrollBar {
.login-dialog .user-widget.vertical .user-icon StIcon,
.unlock-dialog .user-widget.vertical .user-icon StIcon {
padding: 30px; }
@ -874,7 +889,7 @@ index 75dc5c6..aa5765d 100644
+ border-color: #fafafb;
+ color: #222226; }
diff --git a/data/theme/gnome-shell-high-contrast.css b/data/theme/gnome-shell-high-contrast.css
index 69749c1..af1dffc 100644
index b69823f..0ed28a3 100644
--- a/data/theme/gnome-shell-high-contrast.css
+++ b/data/theme/gnome-shell-high-contrast.css
@@ -42,7 +42,9 @@ stage {
@ -1118,8 +1133,8 @@ index 69749c1..af1dffc 100644
font-size: 1.182em; }
-.login-dialog-not-listed-label, #LookingGlassExtensions .lg-extension .lg-extension-name, #LookingGlassWindows .lg-window .lg-window-name, #LookingGlassPropertyInspector .lg-obj-inspector-title, .background-app-item .title, .quick-toggle .quick-toggle-title, .osd-window, .dialog-list .dialog-list-title, .message-list-controls, .weather-button .weather-box .weather-header-box .weather-header, .world-clocks-button .world-clocks-header, .events-button .events-box .events-list .event-box .event-summary, .events-button .events-box .events-title, .calendar .calendar-month-header .calendar-month-label {
+.login-dialog-auth-list-item-popup-box .login-dialog-auth-list-item-popup-labels, .login-dialog-auth-list-item-first-line,
+.login-dialog-auth-list-item-second-line, .login-dialog-not-listed-label, #LookingGlassExtensions .lg-extension .lg-extension-name, #LookingGlassWindows .lg-window .lg-window-name, #LookingGlassPropertyInspector .lg-obj-inspector-title, .background-app-item .title, .quick-toggle .quick-toggle-title, .osd-window, .dialog-list .dialog-list-title, .message-list-controls, .weather-button .weather-box .weather-header-box .weather-header, .world-clocks-button .world-clocks-header, .events-button .events-box .events-list .event-box .event-summary, .events-button .events-box .events-title, .calendar .calendar-month-header .calendar-month-label {
+.login-dialog-item-icon-popup-box .login-dialog-item-icon-popup-labels, .login-dialog-auth-list-item-title,
+.login-dialog-auth-list-item-subtitle, .login-dialog-not-listed-label, #LookingGlassExtensions .lg-extension .lg-extension-name, #LookingGlassWindows .lg-window .lg-window-name, #LookingGlassPropertyInspector .lg-obj-inspector-title, .background-app-item .title, .quick-toggle .quick-toggle-title, .osd-window, .dialog-list .dialog-list-title, .message-list-controls, .weather-button .weather-box .weather-header-box .weather-header, .world-clocks-button .world-clocks-header, .events-button .events-box .events-list .event-box .event-summary, .events-button .events-box .events-title, .calendar .calendar-month-header .calendar-month-label {
font-weight: 700;
font-size: 1em; }
@ -1469,7 +1484,21 @@ index 69749c1..af1dffc 100644
.app-folder-dialog .message .message-header .message-close-button:active:focus,
.message .message-header .app-folder-dialog .message-close-button:active:focus, .app-folder-dialog .screenshot-ui-show-pointer-button:active:focus {
background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(st-mix(#ffffff, #252525, 9%), 9%), #ffffff, 87%), 5%); }
@@ -3374,19 +3415,62 @@ StScrollBar {
@@ -3362,6 +3403,13 @@ StScrollBar {
background-color: st-lighten(-st-accent-color, 5%);
color: st-lighten(-st-accent-fg-color, 5%); }
+.qr-code {
+ border-radius: 4px;
+ border-width: 1em;
+ background-color: #ffffff;
+ border-color: #ffffff;
+ color: #0d0d0d; }
+
.login-dialog,
.unlock-dialog {
color: #ffffff; }
@@ -3374,19 +3422,62 @@ StScrollBar {
.unlock-dialog .login-dialog-prompt-layout {
width: 25em;
spacing: 9px; }
@ -1535,7 +1564,7 @@ index 69749c1..af1dffc 100644
.conflicting-session-dialog-content {
spacing: 20px; }
@@ -3455,53 +3539,111 @@ StScrollBar {
@@ -3455,53 +3546,112 @@ StScrollBar {
background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(#000000, 9%), #ffffff, 87%), 5%); }
.login-dialog-auth-list-view {
@ -1630,50 +1659,51 @@ index 69749c1..af1dffc 100644
+ color: #ffffff !important;
+ padding: 0;
+ margin: 0; }
-.login-dialog-auth-list-label:ltr {
- padding-left: 15px;
- text-align: left; }
+
+.login-dialog-auth-list-title-label {
+ padding: 6px;
+ text-align: center; }
+
+.login-dialog-auth-list-item-first-line,
+.login-dialog-auth-list-item-second-line {
+.login-dialog-auth-list-item-title,
+.login-dialog-auth-list-item-subtitle {
+ text-align: center;
+ padding: 1.8px 0; }
-.login-dialog-auth-list-label:ltr {
- padding-left: 15px;
- text-align: left; }
+.login-dialog-auth-list-item-title {
+ color: #ffffff; }
-.login-dialog-auth-list-label:rtl {
- padding-right: 15px;
- text-align: right; }
+.login-dialog-auth-list-item-first-line {
+ color: #ffffff; }
+
+.login-dialog-auth-list-item-second-line {
+.login-dialog-auth-list-item-subtitle {
+ color: #cccccc;
+ font-weight: 500; }
+
+.login-dialog-auth-list-item-icon {
+.login-dialog-item-icon {
+ width: 1.3em;
+ height: 1.3em;
+ color: #ffffff;
+ padding: 4.2px 6px;
+ border-radius: 8px; }
+ .login-dialog-auth-list-item-icon:hover {
+ .login-dialog-item-icon:hover {
+ background-color: #0d0d0d; }
+
+.login-dialog-auth-list-item-popup-box .login-dialog-auth-list-item-popup-labels {
+ spacing: 3px;
+ text-align: center; }
+ .login-dialog-auth-list-item-popup-box .login-dialog-auth-list-item-popup-labels > :first-child {
+ color: #b3b3b3;
+ font-weight: 500; }
+ .login-dialog-auth-list-item-popup-box .login-dialog-auth-list-item-popup-labels > :last-child {
+ color: #ffffff; }
+ .login-dialog-item-icon-popup.popup-menu {
+ min-width: 0; }
+ .login-dialog-item-icon-popup-box .login-dialog-item-icon-popup-labels {
+ spacing: 3px;
+ text-align: center; }
+ .login-dialog-item-icon-popup-box .login-dialog-item-icon-popup-labels > :first-child {
+ color: #b3b3b3;
+ font-weight: 500; }
+ .login-dialog-item-icon-popup-box .login-dialog-item-icon-popup-labels > :last-child {
+ color: #ffffff; }
.login-dialog-user-list-view {
width: 25em;
@@ -3534,6 +3676,13 @@ StScrollBar {
@@ -3534,6 +3684,13 @@ StScrollBar {
background-color: st-lighten(st-lighten(st-mix(#ffffff, #000000, 9%), 9%), 4%); }
.login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:active:focus {
background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-mix(st-lighten(st-mix(#ffffff, #000000, 9%), 9%), #ffffff, 87%), 5%); }
@ -1687,7 +1717,7 @@ index 69749c1..af1dffc 100644
.login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item .user-icon {
border: 2px solid transparent; }
.login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item .login-dialog-timed-login-indicator {
@@ -3545,6 +3694,110 @@ StScrollBar {
@@ -3545,6 +3702,110 @@ StScrollBar {
.login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:logged-in .user-icon StIcon {
background-color: st-transparentize(-st-accent-color, 0.7); }
@ -1798,7 +1828,7 @@ index 69749c1..af1dffc 100644
.unlock-dialog {
background-color: transparent; }
@@ -3655,3 +3908,10 @@ StScrollBar {
@@ -3655,3 +3916,10 @@ StScrollBar {
.login-dialog .user-widget.vertical .user-icon StIcon,
.unlock-dialog .user-widget.vertical .user-icon StIcon {
padding: 30px; }
@ -1810,7 +1840,7 @@ index 69749c1..af1dffc 100644
+ border-color: #ffffff;
+ color: #000000; }
diff --git a/data/theme/gnome-shell-light.css b/data/theme/gnome-shell-light.css
index 174d723..fa83485 100644
index 2b67846..792690e 100644
--- a/data/theme/gnome-shell-light.css
+++ b/data/theme/gnome-shell-light.css
@@ -42,7 +42,9 @@ stage {
@ -2015,8 +2045,8 @@ index 174d723..fa83485 100644
font-size: 1.182em; }
-.login-dialog-not-listed-label, #LookingGlassExtensions .lg-extension .lg-extension-name, #LookingGlassWindows .lg-window .lg-window-name, #LookingGlassPropertyInspector .lg-obj-inspector-title, .background-app-item .title, .quick-toggle .quick-toggle-title, .osd-window, .dialog-list .dialog-list-title, .message-list-controls, .weather-button .weather-box .weather-header-box .weather-header, .world-clocks-button .world-clocks-header, .events-button .events-box .events-list .event-box .event-summary, .events-button .events-box .events-title, .calendar .calendar-month-header .calendar-month-label {
+.login-dialog-auth-list-item-popup-box .login-dialog-auth-list-item-popup-labels, .login-dialog-auth-list-item-first-line,
+.login-dialog-auth-list-item-second-line, .login-dialog-not-listed-label, #LookingGlassExtensions .lg-extension .lg-extension-name, #LookingGlassWindows .lg-window .lg-window-name, #LookingGlassPropertyInspector .lg-obj-inspector-title, .background-app-item .title, .quick-toggle .quick-toggle-title, .osd-window, .dialog-list .dialog-list-title, .message-list-controls, .weather-button .weather-box .weather-header-box .weather-header, .world-clocks-button .world-clocks-header, .events-button .events-box .events-list .event-box .event-summary, .events-button .events-box .events-title, .calendar .calendar-month-header .calendar-month-label {
+.login-dialog-item-icon-popup-box .login-dialog-item-icon-popup-labels, .login-dialog-auth-list-item-title,
+.login-dialog-auth-list-item-subtitle, .login-dialog-not-listed-label, #LookingGlassExtensions .lg-extension .lg-extension-name, #LookingGlassWindows .lg-window .lg-window-name, #LookingGlassPropertyInspector .lg-obj-inspector-title, .background-app-item .title, .quick-toggle .quick-toggle-title, .osd-window, .dialog-list .dialog-list-title, .message-list-controls, .weather-button .weather-box .weather-header-box .weather-header, .world-clocks-button .world-clocks-header, .events-button .events-box .events-list .event-box .event-summary, .events-button .events-box .events-title, .calendar .calendar-month-header .calendar-month-label {
font-weight: 700;
font-size: 1em; }
@ -2353,7 +2383,20 @@ index 174d723..fa83485 100644
.app-folder-dialog .message .message-header .message-close-button:active:focus,
.message .message-header .app-folder-dialog .message-close-button:active:focus, .app-folder-dialog .screenshot-ui-show-pointer-button:active:focus {
background-color: st-mix(-st-accent-color, st-lighten(st-mix(#fafafb, #38383b, 12%), 9%), 5%); }
@@ -3045,19 +3086,62 @@ StScrollBar {
@@ -3033,6 +3074,12 @@ StScrollBar {
background-color: st-lighten(-st-accent-color, 5%);
color: st-lighten(-st-accent-fg-color, 5%); }
+.qr-code {
+ border-radius: 4px;
+ border-width: 1em;
+ background-color: #e9e9ea;
+ border-color: #e9e9ea; }
+
.login-dialog,
.unlock-dialog {
color: #fafafb; }
@@ -3045,19 +3092,62 @@ StScrollBar {
.unlock-dialog .login-dialog-prompt-layout {
width: 25em;
spacing: 9px; }
@ -2419,7 +2462,7 @@ index 174d723..fa83485 100644
.conflicting-session-dialog-content {
spacing: 20px; }
@@ -3119,49 +3203,103 @@ StScrollBar {
@@ -3119,49 +3209,104 @@ StScrollBar {
background-color: st-mix(-st-accent-color, st-lighten(#222226, 9%), 5%); }
.login-dialog-auth-list-view {
@ -2506,50 +2549,51 @@ index 174d723..fa83485 100644
+ color: #fafafb !important;
+ padding: 0;
+ margin: 0; }
+
+.login-dialog-auth-list-title-label {
+ padding: 6px;
+ text-align: center; }
+
+.login-dialog-auth-list-item-first-line,
+.login-dialog-auth-list-item-second-line {
+ text-align: center;
+ padding: 1.8px 0; }
+
+.login-dialog-auth-list-item-first-line {
+ color: #fafafb; }
-.login-dialog-auth-list-label:ltr {
- padding-left: 15px;
- text-align: left; }
+.login-dialog-auth-list-item-second-line {
+ color: #c1c1ce;
+ font-weight: 500; }
+.login-dialog-auth-list-title-label {
+ padding: 6px;
+ text-align: center; }
+
+.login-dialog-auth-list-item-title,
+.login-dialog-auth-list-item-subtitle {
+ text-align: center;
+ padding: 1.8px 0; }
+
+.login-dialog-auth-list-item-title {
+ color: #fafafb; }
-.login-dialog-auth-list-label:rtl {
- padding-right: 15px;
- text-align: right; }
+.login-dialog-auth-list-item-icon {
+.login-dialog-auth-list-item-subtitle {
+ color: #c1c1ce;
+ font-weight: 500; }
+
+.login-dialog-item-icon {
+ width: 1.3em;
+ height: 1.3em;
+ color: #fafafb;
+ padding: 4.2px 6px;
+ border-radius: 8px; }
+ .login-dialog-auth-list-item-icon:hover {
+ .login-dialog-item-icon:hover {
+ background-color: #2e2e33; }
+
+.login-dialog-auth-list-item-popup-box .login-dialog-auth-list-item-popup-labels {
+ spacing: 3px;
+ text-align: center; }
+ .login-dialog-auth-list-item-popup-box .login-dialog-auth-list-item-popup-labels > :first-child {
+ color: black;
+ font-weight: 500; }
+ .login-dialog-auth-list-item-popup-box .login-dialog-auth-list-item-popup-labels > :last-child {
+ color: #222226; }
+ .login-dialog-item-icon-popup.popup-menu {
+ min-width: 0; }
+ .login-dialog-item-icon-popup-box .login-dialog-item-icon-popup-labels {
+ spacing: 3px;
+ text-align: center; }
+ .login-dialog-item-icon-popup-box .login-dialog-item-icon-popup-labels > :first-child {
+ color: black;
+ font-weight: 500; }
+ .login-dialog-item-icon-popup-box .login-dialog-item-icon-popup-labels > :last-child {
+ color: #222226; }
.login-dialog-user-list-view {
width: 25em;
@@ -3190,6 +3328,9 @@ StScrollBar {
@@ -3190,6 +3335,9 @@ StScrollBar {
background-color: st-lighten(st-lighten(st-mix(#fafafb, #222226, 12%), 9%), 4%); }
.login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:active:focus {
background-color: st-mix(-st-accent-color, st-lighten(st-mix(#fafafb, #222226, 12%), 9%), 5%); }
@ -2559,7 +2603,7 @@ index 174d723..fa83485 100644
.login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item .user-icon {
border: 2px solid transparent; }
.login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item .login-dialog-timed-login-indicator {
@@ -3201,6 +3342,102 @@ StScrollBar {
@@ -3201,6 +3349,102 @@ StScrollBar {
.login-dialog-user-list-view .login-dialog-user-list .login-dialog-user-list-item:logged-in .user-icon StIcon {
background-color: st-transparentize(-st-accent-color, 0.7); }
@ -2662,7 +2706,7 @@ index 174d723..fa83485 100644
.unlock-dialog {
background-color: transparent; }
@@ -3309,3 +3546,10 @@ StScrollBar {
@@ -3309,3 +3553,10 @@ StScrollBar {
.login-dialog .user-widget.vertical .user-icon StIcon,
.unlock-dialog .user-widget.vertical .user-icon StIcon {
padding: 30px; }
@ -2674,5 +2718,5 @@ index 174d723..fa83485 100644
+ border-color: #e9e9ea;
+ color: #222226; }
--
2.51.1
2.53.0

View File

@ -9,44 +9,70 @@ the PAM configuration has not been updated and no prints are enrolled.
So, consider a verification failure within one second to be a service
failure instead.
---
js/gdm/util.js | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
js/gdm/authServicesLegacy.js | 44 +++++++++++++++++++++++++-----------
1 file changed, 31 insertions(+), 13 deletions(-)
diff --git a/js/gdm/util.js b/js/gdm/util.js
index f6b797c321..aced46e78c 100644
--- a/js/gdm/util.js
+++ b/js/gdm/util.js
@@ -109,6 +109,7 @@ export class ShellUserVerifier extends Signals.EventEmitter {
this._defaultService = null;
this._preemptingService = null;
this._fingerprintReaderType = FingerprintReaderType.NONE;
+ this._fprintStartTime = -1;
diff --git a/js/gdm/authServicesLegacy.js b/js/gdm/authServicesLegacy.js
index 0813622a01..c85a9572f5 100644
--- a/js/gdm/authServicesLegacy.js
+++ b/js/gdm/authServicesLegacy.js
@@ -58,6 +58,7 @@ export class AuthServicesLegacy extends AuthServices {
this._addCredentialManager(Vmware.SERVICE_NAME, Vmware.getVmwareCredentialsManager());
this._messageQueue = [];
this._messageQueueTimeoutId = 0;
@@ -670,6 +671,10 @@ export class ShellUserVerifier extends Signals.EventEmitter {
this._hold.acquire();
try {
this._activeServices.add(serviceName);
this._fingerprintReadyTimeoutId = 0;
+ this._fprintStartTime = -1;
}
_handleSelectChoice(serviceName, key) {
@@ -117,16 +118,20 @@ export class AuthServicesLegacy extends AuthServices {
}
_handleOnConversationStarted(serviceName) {
- if (serviceName === Const.FINGERPRINT_SERVICE_NAME &&
- this._fingerprintReadyTimeoutId === 0) {
- this._fingerprintReadyTimeoutId = GLib.timeout_add(
- GLib.PRIORITY_DEFAULT,
- FINGERPRINT_READY_TIMEOUT_MS,
- () => {
- this._fingerprintReadyTimeoutId = 0;
- this._setFingerprintReady();
- return GLib.SOURCE_REMOVE;
- });
+ if (serviceName === Const.FINGERPRINT_SERVICE_NAME) {
+ this._fprintStartTime = GLib.get_monotonic_time();
+
+ if (serviceName == FINGERPRINT_SERVICE_NAME)
+ this._fprintStartTime = GLib.get_monotonic_time();
+
if (this._userName) {
await this._userVerifier.call_begin_verification_for_user(
serviceName, this._userName, this._cancellable);
@@ -764,6 +769,7 @@ export class ShellUserVerifier extends Signals.EventEmitter {
const cancellable = this._cancellable;
this._fingerprintFailedId = GLib.timeout_add(GLib.PRIORITY_DEFAULT,
FINGERPRINT_ERROR_TIMEOUT_WAIT, () => {
+ log("Generating _verificationFailed!");
this._fingerprintFailedId = 0;
if (!cancellable.is_cancelled())
this._verificationFailed(serviceName, false);
@@ -837,6 +843,18 @@ export class ShellUserVerifier extends Signals.EventEmitter {
if (serviceName === FINGERPRINT_SERVICE_NAME) {
if (this._fingerprintFailedId)
GLib.source_remove(this._fingerprintFailedId);
+ if (this._fingerprintReadyTimeoutId === 0) {
+ this._fingerprintReadyTimeoutId = GLib.timeout_add(
+ GLib.PRIORITY_DEFAULT,
+ FINGERPRINT_READY_TIMEOUT_MS,
+ () => {
+ this._fingerprintReadyTimeoutId = 0;
+ this._setFingerprintReady();
+ return GLib.SOURCE_REMOVE;
+ });
+ }
}
}
@@ -234,6 +239,7 @@ export class AuthServicesLegacy extends AuthServices {
this._fingerprintFailedId = GLib.timeout_add(GLib.PRIORITY_DEFAULT,
FINGERPRINT_ERROR_TIMEOUT_WAIT, () => {
+ log("Generating _verificationFailed!");
this._fingerprintFailedId = 0;
if (!this._cancellable.is_cancelled())
this._verificationFailed(serviceName, false);
@@ -314,9 +320,21 @@ export class AuthServicesLegacy extends AuthServices {
_handleVerificationFailed(serviceName) {
if (serviceName === Const.FINGERPRINT_SERVICE_NAME &&
- this._enabledMechanisms.some(m => m.serviceName === serviceName) &&
- this._fingerprintFailedId)
- GLib.source_remove(this._fingerprintFailedId);
+ this._enabledMechanisms.some(m => m.serviceName === serviceName)) {
+ if (this._fingerprintFailedId)
+ GLib.source_remove(this._fingerprintFailedId);
+
+ // On Fedora we have the problem that fingerprint auth fails
+ // immediately if the PAM configuration has not been updated and no
@ -56,12 +82,12 @@ index f6b797c321..aced46e78c 100644
+ if (this._fprintStartTime > GLib.get_monotonic_time() - GLib.USEC_PER_SEC) {
+ log("Fingerprint service failed almost immediately, considering it unavailable.");
+ log("Please fix your configuration by running: authselect select --force sssd with-fingerprint with-silent-lastlog");
+ this._onServiceUnavailable(this._client, serviceName, null);
+ return;
+ this._onServiceUnavailable(serviceName, null);
+ }
}
+ }
}
// For Not Listed / enterprise logins, immediately reset
_handleOnVerificationComplete(serviceName) {
--
2.51.1
2.53.0

View File

@ -33,10 +33,6 @@ Patch: 0001-build-Lower-gsettings-desktop-schemas-requirement.patch
Patch: 0001-Revert-data-Drop-org.gnome.Shell.desktop.patch
Patch: 0002-Reapply-main-Notify-gnome-session-when-we-re-ready.patch
# Some users might have a broken PAM config, so we really need this
# downstream patch to stop trying on configuration errors.
Patch: 0001-gdm-Work-around-failing-fingerprint-auth.patch
# GDM/Lock stuff
Patch: 0001-screenShield-unblank-when-inserting-smartcard.patch
Patch: enforce-smartcard-at-unlock.patch
@ -45,6 +41,9 @@ Patch: 0001-main-Register-session-with-GDM-on-startup.patch
# Passwordless work
# https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3212
Patch: 0001-Support-for-web-login-and-unified-auth-mechanism.patch
# Some users might have a broken PAM config, so we really need this
# downstream patch to stop trying on configuration errors.
Patch: 0001-gdm-Work-around-failing-fingerprint-auth.patch
# Extensions
Patch: 0001-extensionDownloader-Refuse-to-override-system-extens.patch