import Oracle_OSS gnome-shell-49.4-8.el10_2

This commit is contained in:
AlmaLinux RelEng Bot 2026-07-21 08:35:47 -04:00
parent cc8a335aa1
commit dec6b3e199
7 changed files with 2952 additions and 2278 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 | 468 +++++++++++++++++-----
data/theme/gnome-shell-high-contrast.css | 484 ++++++++++++++++++-----
data/theme/gnome-shell-light.css | 467 +++++++++++++++++-----
3 files changed, 1095 insertions(+), 324 deletions(-)
data/theme/gnome-shell-dark.css | 492 +++++++++++++++++-----
data/theme/gnome-shell-high-contrast.css | 508 ++++++++++++++++++-----
data/theme/gnome-shell-light.css | 491 +++++++++++++++++-----
3 files changed, 1161 insertions(+), 330 deletions(-)
diff --git a/data/theme/gnome-shell-dark.css b/data/theme/gnome-shell-dark.css
index 82e68c5..a96fde1 100644
index 82e68c5..e112db8 100644
--- a/data/theme/gnome-shell-dark.css
+++ b/data/theme/gnome-shell-dark.css
@@ -42,7 +42,9 @@ stage {
@ -567,23 +567,38 @@ index 82e68c5..a96fde1 100644
.login-dialog,
.unlock-dialog {
color: #fafafb; }
@@ -3044,19 +3092,62 @@ StScrollBar {
@@ -3042,21 +3090,88 @@ StScrollBar {
color: #fafafb; }
.login-dialog .login-dialog-prompt-layout,
.unlock-dialog .login-dialog-prompt-layout {
width: 25em;
spacing: 9px; }
- width: 25em;
+ width: 30em;
+ margin-top: 80px; }
+ .login-dialog .login-dialog-prompt-layout.web-login-active,
+ .unlock-dialog .login-dialog-prompt-layout.web-login-active {
+ width: 37.5em; }
+ width: 37.5em;
+ margin-top: 0; }
+ .login-dialog .login-dialog-input-well,
+ .unlock-dialog .login-dialog-input-well {
spacing: 9px; }
+ .login-dialog .login-dialog-prompt-entry-area,
+ .unlock-dialog .login-dialog-prompt-entry-area {
+ margin: 0.5em 20px; }
+ .login-dialog .login-dialog-prompt-entry,
+ .unlock-dialog .login-dialog-prompt-entry {
+ border-radius: 12px;
+ padding-right: 3em; }
+ .login-dialog .login-dialog-default-button-well,
+ .unlock-dialog .login-dialog-default-button-well {
+ margin-right: 1em; }
+ border-radius: 12px; }
+ .login-dialog .login-dialog-prompt-entry :ltr,
+ .unlock-dialog .login-dialog-prompt-entry :ltr {
+ padding-right: 2.5em; }
+ .login-dialog .login-dialog-prompt-entry :rtl,
+ .unlock-dialog .login-dialog-prompt-entry :rtl {
+ padding-left: 2.5em; }
+ .login-dialog .login-dialog-default-button-well :ltr,
+ .unlock-dialog .login-dialog-default-button-well :ltr {
+ margin-right: 0.5em; }
+ .login-dialog .login-dialog-default-button-well :rtl,
+ .unlock-dialog .login-dialog-default-button-well :rtl {
+ margin-left: 0.5em; }
.login-dialog-bottom-button-group {
padding: 32px;
@ -599,33 +614,45 @@ index 82e68c5..a96fde1 100644
+
.login-dialog-button.cancel-button {
- padding: 9px; }
+ padding: 12px; }
+ padding: 12px;
+ margin: 0.5em 0; }
+
+.login-dialog-auth-menu-button-popup {
+ padding: 18px;
+ margin-right: 12px; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-header {
+ font-size: 0.909em;
+ text-align: center;
+ font-weight: bold;
+ padding-top: 18px;
+ padding-bottom: 6px; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-header:first-child {
+ padding-top: 6px; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-indicator {
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-section {
+ padding-top: 6px; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-section:first-child {
+ padding-top: 0; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-section-label {
+ font-size: 0.909em;
+ font-weight: bold;
+ color: #fafafb; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-icon {
+ color: #fafafb;
+ icon-size: 1.091em;
+ margin-right: 8px; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-box {
+ spacing: 3px; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-indicator .login-dialog-auth-menu-item-indicator-name {
+ font-size: 1.159em;
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-box-name {
+ color: #fafafb;
+ font-size: 1em;
+ font-weight: bold; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-indicator .login-dialog-auth-menu-item-indicator-description {
+ font-size: 0.977em; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-box-description {
+ color: #fafafb;
+ font-size: 0.909em; }
+
+.login-dialog-auth-menu-button-indicator {
+ background-color: transparent !important; }
+ background-color: transparent !important;
+ margin: 32px; }
+ .login-dialog-auth-menu-button-indicator .login-dialog-auth-menu-button-indicator-icons {
+ spacing: 18px; }
+ .login-dialog-auth-menu-button-indicator .login-dialog-auth-menu-button-indicator-icons .login-dialog-auth-menu-button-indicator-icon {
+ icon-size: 2em; }
+ .login-dialog-auth-menu-button-indicator .login-dialog-auth-menu-button-indicator-description {
+ font-size: 1em;
+ font-weight: normal;
+ margin-left: 12px; }
.login-dialog-button-box {
- spacing: 12px; }
@ -633,7 +660,7 @@ index 82e68c5..a96fde1 100644
.conflicting-session-dialog-content {
spacing: 20px; }
@@ -3118,49 +3209,104 @@ StScrollBar {
@@ -3118,49 +3233,104 @@ StScrollBar {
background-color: st-mix(st-mix(-st-accent-color, #ffffff, 60%), st-lighten(#222226, 9%), 5%); }
.login-dialog-auth-list-view {
@ -703,8 +730,8 @@ index 82e68c5..a96fde1 100644
+.login-dialog .login-dialog-auth-list-item {
+ min-height: 3em;
+ padding: 9px;
+ margin: 0 20px;
+ margin-bottom: 4px; }
+ margin-bottom: 4px;
+ margin-right: 4px; }
.unlock-dialog .login-dialog-auth-list-item {
- border-radius: 9.6px;
@ -712,29 +739,26 @@ index 82e68c5..a96fde1 100644
+ border-radius: 12px;
+ min-height: 3em;
+ padding: 9px;
+ margin: 0 20px;
+ margin-bottom: 4px; }
+ margin-bottom: 4px;
+ margin-right: 4px; }
+
+.unlock-dialog .login-dialog-auth-list-title {
+ background-color: transparent !important;
+ color: #fafafb !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-label:rtl {
- padding-right: 15px;
- text-align: right; }
-.login-dialog-auth-list-label:ltr {
- padding-left: 15px;
- text-align: left; }
+.login-dialog-auth-list-item-title,
+.login-dialog-auth-list-item-subtitle {
+ text-align: center;
+ padding: 1.8px 0; }
+ padding: 1.8px 2em; }
+
+.login-dialog-auth-list-item-title {
+ color: #fafafb; }
@ -742,7 +766,10 @@ index 82e68c5..a96fde1 100644
+.login-dialog-auth-list-item-subtitle {
+ color: #c1c1ce;
+ font-weight: 500; }
+
-.login-dialog-auth-list-label:rtl {
- padding-right: 15px;
- text-align: right; }
+.login-dialog-item-icon {
+ width: 1.3em;
+ height: 1.3em;
@ -764,7 +791,7 @@ index 82e68c5..a96fde1 100644
.login-dialog-user-list-view {
width: 25em;
@@ -3189,6 +3335,9 @@ StScrollBar {
@@ -3189,6 +3359,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%); }
@ -774,7 +801,7 @@ index 82e68c5..a96fde1 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 +3349,102 @@ StScrollBar {
@@ -3200,6 +3373,104 @@ 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); }
@ -855,7 +882,8 @@ index 82e68c5..a96fde1 100644
+ background-color: st-darken(st-mix(#fafafb, #222226, 9%), 3%); }
+
+.login-dialog .web-login-intro-button {
+ padding: 0; }
+ padding: 0;
+ margin: 0.2em 20px; }
+
+.login-dialog .web-login-prompt-button {
+ padding: 15px 24px;
@ -867,7 +895,8 @@ index 82e68c5..a96fde1 100644
+ border-radius: 32px; }
+
+.unlock-dialog .web-login-intro-button {
+ padding: 0; }
+ padding: 0;
+ margin: 0.2em 20px; }
+
+.unlock-dialog .web-login-prompt-button {
+ padding: 15px 24px;
@ -877,19 +906,18 @@ index 82e68c5..a96fde1 100644
.unlock-dialog {
background-color: transparent; }
@@ -3308,3 +3553,10 @@ StScrollBar {
.login-dialog .user-widget.vertical .user-icon StIcon,
.unlock-dialog .user-widget.vertical .user-icon StIcon {
padding: 30px; }
+
+.qr-code {
+ border-radius: 4px;
+ border-width: 1em;
+ background-color: #fafafb;
+ border-color: #fafafb;
+ color: #222226; }
@@ -3212,7 +3483,8 @@ StScrollBar {
.unlock-dialog-clock {
color: #fafafb;
- spacing: 2em; }
+ spacing: 2em;
+ margin-top: 150px; }
.unlock-dialog-clock .unlock-dialog-clock-time {
font-size: 6.546em;
font-weight: 800; }
diff --git a/data/theme/gnome-shell-high-contrast.css b/data/theme/gnome-shell-high-contrast.css
index b69823f..0ed28a3 100644
index b69823f..bc41454 100644
--- a/data/theme/gnome-shell-high-contrast.css
+++ b/data/theme/gnome-shell-high-contrast.css
@@ -42,7 +42,9 @@ stage {
@ -1498,23 +1526,38 @@ index b69823f..0ed28a3 100644
.login-dialog,
.unlock-dialog {
color: #ffffff; }
@@ -3374,19 +3422,62 @@ StScrollBar {
@@ -3372,21 +3420,88 @@ StScrollBar {
color: #ffffff; }
.login-dialog .login-dialog-prompt-layout,
.unlock-dialog .login-dialog-prompt-layout {
width: 25em;
spacing: 9px; }
- width: 25em;
+ width: 30em;
+ margin-top: 80px; }
+ .login-dialog .login-dialog-prompt-layout.web-login-active,
+ .unlock-dialog .login-dialog-prompt-layout.web-login-active {
+ width: 37.5em; }
+ width: 37.5em;
+ margin-top: 0; }
+ .login-dialog .login-dialog-input-well,
+ .unlock-dialog .login-dialog-input-well {
spacing: 9px; }
+ .login-dialog .login-dialog-prompt-entry-area,
+ .unlock-dialog .login-dialog-prompt-entry-area {
+ margin: 0.5em 20px; }
+ .login-dialog .login-dialog-prompt-entry,
+ .unlock-dialog .login-dialog-prompt-entry {
+ border-radius: 12px;
+ padding-right: 3em; }
+ .login-dialog .login-dialog-default-button-well,
+ .unlock-dialog .login-dialog-default-button-well {
+ margin-right: 1em; }
+ border-radius: 12px; }
+ .login-dialog .login-dialog-prompt-entry :ltr,
+ .unlock-dialog .login-dialog-prompt-entry :ltr {
+ padding-right: 2.5em; }
+ .login-dialog .login-dialog-prompt-entry :rtl,
+ .unlock-dialog .login-dialog-prompt-entry :rtl {
+ padding-left: 2.5em; }
+ .login-dialog .login-dialog-default-button-well :ltr,
+ .unlock-dialog .login-dialog-default-button-well :ltr {
+ margin-right: 0.5em; }
+ .login-dialog .login-dialog-default-button-well :rtl,
+ .unlock-dialog .login-dialog-default-button-well :rtl {
+ margin-left: 0.5em; }
.login-dialog-bottom-button-group {
padding: 32px;
@ -1530,33 +1573,45 @@ index b69823f..0ed28a3 100644
+
.login-dialog-button.cancel-button {
- padding: 9px; }
+ padding: 12px; }
+ padding: 12px;
+ margin: 0.5em 0; }
+
+.login-dialog-auth-menu-button-popup {
+ padding: 18px;
+ margin-right: 12px; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-header {
+ font-size: 0.909em;
+ text-align: center;
+ font-weight: bold;
+ padding-top: 18px;
+ padding-bottom: 6px; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-header:first-child {
+ padding-top: 6px; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-indicator {
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-section {
+ padding-top: 6px; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-section:first-child {
+ padding-top: 0; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-section-label {
+ font-size: 0.909em;
+ font-weight: bold;
+ color: #ffffff; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-icon {
+ color: #ffffff;
+ icon-size: 1.091em;
+ margin-right: 8px; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-box {
+ spacing: 3px; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-indicator .login-dialog-auth-menu-item-indicator-name {
+ font-size: 1.159em;
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-box-name {
+ color: #ffffff;
+ font-size: 1em;
+ font-weight: bold; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-indicator .login-dialog-auth-menu-item-indicator-description {
+ font-size: 0.977em; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-box-description {
+ color: #ffffff;
+ font-size: 0.909em; }
+
+.login-dialog-auth-menu-button-indicator {
+ background-color: transparent !important; }
+ background-color: transparent !important;
+ margin: 32px; }
+ .login-dialog-auth-menu-button-indicator .login-dialog-auth-menu-button-indicator-icons {
+ spacing: 18px; }
+ .login-dialog-auth-menu-button-indicator .login-dialog-auth-menu-button-indicator-icons .login-dialog-auth-menu-button-indicator-icon {
+ icon-size: 2em; }
+ .login-dialog-auth-menu-button-indicator .login-dialog-auth-menu-button-indicator-description {
+ font-size: 1em;
+ font-weight: normal;
+ margin-left: 12px; }
.login-dialog-button-box {
- spacing: 12px; }
@ -1564,7 +1619,7 @@ index b69823f..0ed28a3 100644
.conflicting-session-dialog-content {
spacing: 20px; }
@@ -3455,53 +3546,112 @@ StScrollBar {
@@ -3455,53 +3570,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 {
@ -1642,8 +1697,8 @@ index b69823f..0ed28a3 100644
+.login-dialog .login-dialog-auth-list-item {
+ min-height: 3em;
+ padding: 9px;
+ margin: 0 20px;
+ margin-bottom: 4px; }
+ margin-bottom: 4px;
+ margin-right: 4px; }
.unlock-dialog .login-dialog-auth-list-item {
- border-radius: 9.6px;
@ -1651,15 +1706,18 @@ index b69823f..0ed28a3 100644
+ border-radius: 12px;
+ min-height: 3em;
+ padding: 9px;
+ margin: 0 20px;
+ margin-bottom: 4px; }
+ margin-bottom: 4px;
+ margin-right: 4px; }
+
+.unlock-dialog .login-dialog-auth-list-title {
+ background-color: transparent !important;
+ 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; }
@ -1667,17 +1725,14 @@ index b69823f..0ed28a3 100644
+.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; }
+ padding: 1.8px 2em; }
-.login-dialog-auth-list-label:rtl {
- padding-right: 15px;
- text-align: right; }
+.login-dialog-auth-list-item-title {
+ color: #ffffff; }
+
+.login-dialog-auth-list-item-subtitle {
+ color: #cccccc;
+ font-weight: 500; }
@ -1703,7 +1758,7 @@ index b69823f..0ed28a3 100644
.login-dialog-user-list-view {
width: 25em;
@@ -3534,6 +3684,13 @@ StScrollBar {
@@ -3534,6 +3708,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%); }
@ -1717,7 +1772,7 @@ index b69823f..0ed28a3 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 +3702,110 @@ StScrollBar {
@@ -3545,6 +3726,112 @@ 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); }
@ -1806,7 +1861,8 @@ index b69823f..0ed28a3 100644
+ border: none; }
+
+.login-dialog .web-login-intro-button {
+ padding: 0; }
+ padding: 0;
+ margin: 0.2em 20px; }
+
+.login-dialog .web-login-prompt-button {
+ padding: 15px 24px;
@ -1818,7 +1874,8 @@ index b69823f..0ed28a3 100644
+ border-radius: 32px; }
+
+.unlock-dialog .web-login-intro-button {
+ padding: 0; }
+ padding: 0;
+ margin: 0.2em 20px; }
+
+.unlock-dialog .web-login-prompt-button {
+ padding: 15px 24px;
@ -1828,19 +1885,18 @@ index b69823f..0ed28a3 100644
.unlock-dialog {
background-color: transparent; }
@@ -3655,3 +3916,10 @@ StScrollBar {
.login-dialog .user-widget.vertical .user-icon StIcon,
.unlock-dialog .user-widget.vertical .user-icon StIcon {
padding: 30px; }
+
+.qr-code {
+ border-radius: 4px;
+ border-width: 1em;
+ background-color: #ffffff;
+ border-color: #ffffff;
+ color: #000000; }
@@ -3557,7 +3844,8 @@ StScrollBar {
.unlock-dialog-clock {
color: #ffffff;
- spacing: 2em; }
+ spacing: 2em;
+ margin-top: 150px; }
.unlock-dialog-clock .unlock-dialog-clock-time {
font-size: 6.546em;
font-weight: 800; }
diff --git a/data/theme/gnome-shell-light.css b/data/theme/gnome-shell-light.css
index 2b67846..792690e 100644
index 2b67846..c3288bb 100644
--- a/data/theme/gnome-shell-light.css
+++ b/data/theme/gnome-shell-light.css
@@ -42,7 +42,9 @@ stage {
@ -2396,23 +2452,38 @@ index 2b67846..792690e 100644
.login-dialog,
.unlock-dialog {
color: #fafafb; }
@@ -3045,19 +3092,62 @@ StScrollBar {
@@ -3043,21 +3090,88 @@ StScrollBar {
color: #fafafb; }
.login-dialog .login-dialog-prompt-layout,
.unlock-dialog .login-dialog-prompt-layout {
width: 25em;
spacing: 9px; }
- width: 25em;
+ width: 30em;
+ margin-top: 80px; }
+ .login-dialog .login-dialog-prompt-layout.web-login-active,
+ .unlock-dialog .login-dialog-prompt-layout.web-login-active {
+ width: 37.5em; }
+ width: 37.5em;
+ margin-top: 0; }
+ .login-dialog .login-dialog-input-well,
+ .unlock-dialog .login-dialog-input-well {
spacing: 9px; }
+ .login-dialog .login-dialog-prompt-entry-area,
+ .unlock-dialog .login-dialog-prompt-entry-area {
+ margin: 0.5em 20px; }
+ .login-dialog .login-dialog-prompt-entry,
+ .unlock-dialog .login-dialog-prompt-entry {
+ border-radius: 12px;
+ padding-right: 3em; }
+ .login-dialog .login-dialog-default-button-well,
+ .unlock-dialog .login-dialog-default-button-well {
+ margin-right: 1em; }
+ border-radius: 12px; }
+ .login-dialog .login-dialog-prompt-entry :ltr,
+ .unlock-dialog .login-dialog-prompt-entry :ltr {
+ padding-right: 2.5em; }
+ .login-dialog .login-dialog-prompt-entry :rtl,
+ .unlock-dialog .login-dialog-prompt-entry :rtl {
+ padding-left: 2.5em; }
+ .login-dialog .login-dialog-default-button-well :ltr,
+ .unlock-dialog .login-dialog-default-button-well :ltr {
+ margin-right: 0.5em; }
+ .login-dialog .login-dialog-default-button-well :rtl,
+ .unlock-dialog .login-dialog-default-button-well :rtl {
+ margin-left: 0.5em; }
.login-dialog-bottom-button-group {
padding: 32px;
@ -2428,33 +2499,45 @@ index 2b67846..792690e 100644
+
.login-dialog-button.cancel-button {
- padding: 9px; }
+ padding: 12px; }
+ padding: 12px;
+ margin: 0.5em 0; }
+
+.login-dialog-auth-menu-button-popup {
+ padding: 18px;
+ margin-right: 12px; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-header {
+ font-size: 0.909em;
+ text-align: center;
+ font-weight: bold;
+ padding-top: 18px;
+ padding-bottom: 6px; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-header:first-child {
+ padding-top: 6px; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-indicator {
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-section {
+ padding-top: 6px; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-section:first-child {
+ padding-top: 0; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-section-label {
+ font-size: 0.909em;
+ font-weight: bold;
+ color: #fafafb; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-icon {
+ color: #fafafb;
+ icon-size: 1.091em;
+ margin-right: 8px; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-box {
+ spacing: 3px; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-indicator .login-dialog-auth-menu-item-indicator-name {
+ font-size: 1.159em;
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-box-name {
+ color: #fafafb;
+ font-size: 1em;
+ font-weight: bold; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-indicator .login-dialog-auth-menu-item-indicator-description {
+ font-size: 0.977em; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-box-description {
+ color: #fafafb;
+ font-size: 0.909em; }
+
+.login-dialog-auth-menu-button-indicator {
+ background-color: transparent !important; }
+ background-color: transparent !important;
+ margin: 32px; }
+ .login-dialog-auth-menu-button-indicator .login-dialog-auth-menu-button-indicator-icons {
+ spacing: 18px; }
+ .login-dialog-auth-menu-button-indicator .login-dialog-auth-menu-button-indicator-icons .login-dialog-auth-menu-button-indicator-icon {
+ icon-size: 2em; }
+ .login-dialog-auth-menu-button-indicator .login-dialog-auth-menu-button-indicator-description {
+ font-size: 1em;
+ font-weight: normal;
+ margin-left: 12px; }
.login-dialog-button-box {
- spacing: 12px; }
@ -2462,7 +2545,7 @@ index 2b67846..792690e 100644
.conflicting-session-dialog-content {
spacing: 20px; }
@@ -3119,49 +3209,104 @@ StScrollBar {
@@ -3119,49 +3233,104 @@ StScrollBar {
background-color: st-mix(-st-accent-color, st-lighten(#222226, 9%), 5%); }
.login-dialog-auth-list-view {
@ -2532,8 +2615,8 @@ index 2b67846..792690e 100644
+.login-dialog .login-dialog-auth-list-item {
+ min-height: 3em;
+ padding: 9px;
+ margin: 0 20px;
+ margin-bottom: 4px; }
+ margin-bottom: 4px;
+ margin-right: 4px; }
.unlock-dialog .login-dialog-auth-list-item {
- border-radius: 9.6px;
@ -2541,18 +2624,21 @@ index 2b67846..792690e 100644
+ border-radius: 12px;
+ min-height: 3em;
+ padding: 9px;
+ margin: 0 20px;
+ margin-bottom: 4px; }
+
+ margin-bottom: 4px;
+ margin-right: 4px; }
-.login-dialog-auth-list-label:ltr {
- padding-left: 15px;
- text-align: left; }
+.unlock-dialog .login-dialog-auth-list-title {
+ background-color: transparent !important;
+ color: #fafafb !important;
+ padding: 0;
+ margin: 0; }
-.login-dialog-auth-list-label:ltr {
- padding-left: 15px;
- text-align: left; }
-.login-dialog-auth-list-label:rtl {
- padding-right: 15px;
- text-align: right; }
+.login-dialog-auth-list-title-label {
+ padding: 6px;
+ text-align: center; }
@ -2560,14 +2646,11 @@ index 2b67846..792690e 100644
+.login-dialog-auth-list-item-title,
+.login-dialog-auth-list-item-subtitle {
+ text-align: center;
+ padding: 1.8px 0; }
+ padding: 1.8px 2em; }
+
+.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-subtitle {
+ color: #c1c1ce;
+ font-weight: 500; }
@ -2593,7 +2676,7 @@ index 2b67846..792690e 100644
.login-dialog-user-list-view {
width: 25em;
@@ -3190,6 +3335,9 @@ StScrollBar {
@@ -3190,6 +3359,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%); }
@ -2603,7 +2686,7 @@ index 2b67846..792690e 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 +3349,102 @@ StScrollBar {
@@ -3201,6 +3373,104 @@ 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); }
@ -2684,7 +2767,8 @@ index 2b67846..792690e 100644
+ background-color: st-darken(st-mix(#fafafb, #222226, 12%), 3%); }
+
+.login-dialog .web-login-intro-button {
+ padding: 0; }
+ padding: 0;
+ margin: 0.2em 20px; }
+
+.login-dialog .web-login-prompt-button {
+ padding: 15px 24px;
@ -2696,7 +2780,8 @@ index 2b67846..792690e 100644
+ border-radius: 32px; }
+
+.unlock-dialog .web-login-intro-button {
+ padding: 0; }
+ padding: 0;
+ margin: 0.2em 20px; }
+
+.unlock-dialog .web-login-prompt-button {
+ padding: 15px 24px;
@ -2706,17 +2791,16 @@ index 2b67846..792690e 100644
.unlock-dialog {
background-color: transparent; }
@@ -3309,3 +3553,10 @@ StScrollBar {
.login-dialog .user-widget.vertical .user-icon StIcon,
.unlock-dialog .user-widget.vertical .user-icon StIcon {
padding: 30px; }
+
+.qr-code {
+ border-radius: 4px;
+ border-width: 1em;
+ background-color: #e9e9ea;
+ border-color: #e9e9ea;
+ color: #222226; }
@@ -3213,7 +3483,8 @@ StScrollBar {
.unlock-dialog-clock {
color: #fafafb;
- spacing: 2em; }
+ spacing: 2em;
+ margin-top: 150px; }
.unlock-dialog-clock .unlock-dialog-clock-time {
font-size: 6.546em;
font-weight: 800; }
--
2.53.0
2.54.0

View File

@ -9,36 +9,38 @@ 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/authServicesLegacy.js | 44 +++++++++++++++++++++++++-----------
1 file changed, 31 insertions(+), 13 deletions(-)
js/gdm/authServicesLegacy.js | 47 ++++++++++++++++++++++++------------
1 file changed, 32 insertions(+), 15 deletions(-)
diff --git a/js/gdm/authServicesLegacy.js b/js/gdm/authServicesLegacy.js
index 0813622a01..c85a9572f5 100644
index 7b5739f14..99c034f64 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());
@@ -57,6 +57,7 @@ export class AuthServicesLegacy extends AuthServices {
this.addCredentialManager(Vmware.SERVICE_NAME, Vmware.getVmwareCredentialsManager());
this._fingerprintReadyTimeoutId = 0;
+ this._fprintStartTime = -1;
}
_handleSelectChoice(serviceName, key) {
@@ -117,16 +118,20 @@ export class AuthServicesLegacy extends AuthServices {
@@ -114,18 +115,21 @@ 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) {
- if (serviceName !== Constants.FINGERPRINT_SERVICE_NAME ||
- this._fingerprintReadyTimeoutId !== 0)
- return;
-
- this._fingerprintReadyTimeoutId = GLib.timeout_add(
- GLib.PRIORITY_DEFAULT,
- FINGERPRINT_READY_TIMEOUT_MS,
- () => {
- this._fingerprintReadyTimeoutId = 0;
- this._setFingerprintReady(true);
- return GLib.SOURCE_REMOVE;
- });
+ if (serviceName === Constants.FINGERPRINT_SERVICE_NAME) {
+ this._fprintStartTime = GLib.get_monotonic_time();
+
+
@ -48,14 +50,15 @@ index 0813622a01..c85a9572f5 100644
+ FINGERPRINT_READY_TIMEOUT_MS,
+ () => {
+ this._fingerprintReadyTimeoutId = 0;
+ this._setFingerprintReady();
+ this._setFingerprintReady(true);
+ return GLib.SOURCE_REMOVE;
+ });
+ }
}
+ }
}
@@ -234,6 +239,7 @@ export class AuthServicesLegacy extends AuthServices {
_setFingerprintReady(ready) {
@@ -231,6 +235,7 @@ export class AuthServicesLegacy extends AuthServices {
this._fingerprintFailedId = GLib.timeout_add(GLib.PRIORITY_DEFAULT,
FINGERPRINT_ERROR_TIMEOUT_WAIT, () => {
@ -63,10 +66,10 @@ index 0813622a01..c85a9572f5 100644
this._fingerprintFailedId = 0;
if (!this._cancellable.is_cancelled())
this._verificationFailed(serviceName, false);
@@ -314,9 +320,21 @@ export class AuthServicesLegacy extends AuthServices {
@@ -312,9 +317,21 @@ export class AuthServicesLegacy extends AuthServices {
_handleVerificationFailed(serviceName) {
if (serviceName === Const.FINGERPRINT_SERVICE_NAME &&
if (serviceName === Constants.FINGERPRINT_SERVICE_NAME &&
- this._enabledMechanisms.some(m => m.serviceName === serviceName) &&
- this._fingerprintFailedId)
- GLib.source_remove(this._fingerprintFailedId);
@ -89,5 +92,5 @@ index 0813622a01..c85a9572f5 100644
_handleOnVerificationComplete(serviceName) {
--
2.53.0
2.54.0

View File

@ -0,0 +1,66 @@
From 714332d3065a41e8bae61234cd231219cfcc95d6 Mon Sep 17 00:00:00 2001
From: Joan Torres Lopez <joantolo@redhat.com>
Date: Tue, 3 Feb 2026 14:43:43 +0100
Subject: [PATCH] main: Call RegisterDisplay once UI has initialized
RegisterDisplay is called to signal that graphics have settled,
which allows GDM to terminate pending greeters and plymouth.
Previously, RegisterSession was used for both recording the login
and terminating greeters. This caused a race condition where the
new user shell was setting up while the greeter was tearing down,
leading to configuration conflicts during the asynchronous handoff.
By splitting into RegisterSession (called early to record login) and
RegisterDisplay (called after graphics settle), the greeter teardown
is delayed until the new session has completed its initial modeset.
Fixes: 32a01330 ("main: Register session with GDM on startup")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/4057>
---
js/misc/loginManager.js | 18 ++++++++++++++++++
js/ui/main.js | 2 ++
2 files changed, 20 insertions(+)
diff --git a/js/misc/loginManager.js b/js/misc/loginManager.js
index f5b6a78..3714c5b 100644
--- a/js/misc/loginManager.js
+++ b/js/misc/loginManager.js
@@ -71,6 +71,24 @@ export async function registerSessionWithGDM() {
}
}
+export async function registerDisplayWithGDM() {
+ log('Registering display with GDM');
+ try {
+ await Gio.DBus.system.call(
+ 'org.gnome.DisplayManager',
+ '/org/gnome/DisplayManager/Manager',
+ 'org.gnome.DisplayManager.Manager',
+ 'RegisterDisplay',
+ GLib.Variant.new('(a{ss})', [{}]), null,
+ Gio.DBusCallFlags.NONE, -1, null);
+ } catch (e) {
+ if (!e.matches(Gio.DBusError, Gio.DBusError.UNKNOWN_METHOD))
+ log(`Error registering display with GDM: ${e.message}`);
+ else
+ log('Not calling RegisterDisplay(): method not exported, GDM too old?');
+ }
+}
+
let _loginManager = null;
/**
diff --git a/js/ui/main.js b/js/ui/main.js
index a7df518..1e6fd39 100644
--- a/js/ui/main.js
+++ b/js/ui/main.js
@@ -384,6 +384,8 @@ async function _initializeUI() {
sessionMode.currentMode !== 'initial-setup')
_handleLockScreenWarning();
+ LoginManager.registerDisplayWithGDM();
+
if (perfModule) {
let perfOutput = GLib.getenv('SHELL_PERF_OUTPUT');
Scripting.runPerfScript(perfModule, perfOutput);

View File

@ -0,0 +1,163 @@
From 5b24694b73b58a77db1e017d2c97bfc673236572 Mon Sep 17 00:00:00 2001
From: Joan Torres Lopez <joantolo@redhat.com>
Date: Tue, 2 Jun 2026 11:43:10 +0200
Subject: [PATCH] Change inputWell by this
In this version inputWell doesn't exist yet.
---
js/gdm/authPrompt.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/js/gdm/authPrompt.js b/js/gdm/authPrompt.js
index e511b3881..3f2765f9c 100644
--- a/js/gdm/authPrompt.js
+++ b/js/gdm/authPrompt.js
@@ -196,7 +196,7 @@ export const AuthPrompt = GObject.registerClass({
},
});
});
- this._inputWell.add_child(this._authList);
+ this.add_child(this._authList);
// Use an insensitive button for the auth list title
// to get the same style as the auth list buttons
@@ -315,7 +315,7 @@ export const AuthPrompt = GObject.registerClass({
}
});
this._webLoginDialog.connect('loading', () => this.emit('loading', this._webLoginDialog.isLoading));
- this._inputWell.add_child(this._webLoginDialog);
+ this.add_child(this._webLoginDialog);
// center elements inside _mainBox between the cancel
// button on the left and this spacer on the right
--
2.54.0
From 848071303afba7aa58486b643e5631a0d75d40b9 Mon Sep 17 00:00:00 2001
From: Joan Torres Lopez <joantolo@redhat.com>
Date: Tue, 2 Jun 2026 12:07:45 +0200
Subject: [PATCH] Use Object.keys(this._sections) instead of
this._sections.keys()
---
js/gdm/authMenuButton.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/js/gdm/authMenuButton.js b/js/gdm/authMenuButton.js
index cbc1d7676..6a697cbc2 100644
--- a/js/gdm/authMenuButton.js
+++ b/js/gdm/authMenuButton.js
@@ -252,7 +252,7 @@ export class AuthMenuButton extends St.Button {
this._items.delete(itemKey);
});
- this._sections.keys().forEach(sectionName => {
+ Object.keys(this._sections).forEach(sectionName => {
const itemsInSection = this._findItems({sectionName});
if (itemsInSection.length === 0) {
const section = this._sections.get(sectionName);
--
2.54.0
From 8a987a7b32a1e3edbb04f9a9ff3077fac7d6a151 Mon Sep 17 00:00:00 2001
From: Joan Torres Lopez <joantolo@redhat.com>
Date: Tue, 2 Jun 2026 12:52:09 +0200
Subject: [PATCH] Don't use _once timeout variants
---
js/gdm/authServices.js | 7 +++++--
js/gdm/authServicesLegacy.js | 3 ++-
js/gdm/authServicesSSSDSwitchable.js | 3 ++-
3 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/js/gdm/authServices.js b/js/gdm/authServices.js
index 2726d960a..410f0bc16 100644
--- a/js/gdm/authServices.js
+++ b/js/gdm/authServices.js
@@ -260,8 +260,11 @@ export class AuthServices extends GObject.Object {
_waitPendingMessages() {
const cancellable = this._cancellable;
- const timeoutId = GLib.timeout_add_seconds_once(GLib.PRIORITY_DEFAULT, 10,
- () => cancellable.cancel());
+ const timeoutId = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, 10,
+ () => {
+ cancellable.cancel();
+ return GLib.SOURCE_REMOVE;
+ });
const {promise, resolve, reject} = Promise.withResolvers();
const task = Gio.Task.new(this, cancellable, () => {
diff --git a/js/gdm/authServicesLegacy.js b/js/gdm/authServicesLegacy.js
index 132c5307c..7b5739f14 100644
--- a/js/gdm/authServicesLegacy.js
+++ b/js/gdm/authServicesLegacy.js
@@ -118,12 +118,13 @@ export class AuthServicesLegacy extends AuthServices {
this._fingerprintReadyTimeoutId !== 0)
return;
- this._fingerprintReadyTimeoutId = GLib.timeout_add_once(
+ this._fingerprintReadyTimeoutId = GLib.timeout_add(
GLib.PRIORITY_DEFAULT,
FINGERPRINT_READY_TIMEOUT_MS,
() => {
this._fingerprintReadyTimeoutId = 0;
this._setFingerprintReady(true);
+ return GLib.SOURCE_REMOVE;
});
}
diff --git a/js/gdm/authServicesSSSDSwitchable.js b/js/gdm/authServicesSSSDSwitchable.js
index 4c8eb1ae1..f98c86e09 100644
--- a/js/gdm/authServicesSSSDSwitchable.js
+++ b/js/gdm/authServicesSSSDSwitchable.js
@@ -197,7 +197,7 @@ export class AuthServicesSSSDSwitchable extends AuthServices {
if (!timeout)
return;
- this._webLoginTimeoutId = GLib.timeout_add_seconds_once(GLib.PRIORITY_DEFAULT,
+ this._webLoginTimeoutId = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT,
timeout, () => {
if (this._selectedMechanism?.role !== Constants.WEB_LOGIN_ROLE_NAME)
webLoginMechanism.needsRefresh = true;
@@ -205,6 +205,7 @@ export class AuthServicesSSSDSwitchable extends AuthServices {
this.emit('reset', {softReset: true});
this._webLoginTimeoutId = 0;
+ return GLib.SOURCE_REMOVE;
});
}
--
2.54.0
From 0198f88dc153e80041ab32fb20f6294e1440a77d Mon Sep 17 00:00:00 2001
From: Joan Torres Lopez <joantolo@redhat.com>
Date: Tue, 9 Jun 2026 09:57:09 +0200
Subject: [PATCH] authServices: Use alternative to Promise.withResolvers()
It doesn't exist in this version
---
js/gdm/authServices.js | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/js/gdm/authServices.js b/js/gdm/authServices.js
index 410f0bc16..fbea348fe 100644
--- a/js/gdm/authServices.js
+++ b/js/gdm/authServices.js
@@ -266,7 +266,11 @@ export class AuthServices extends GObject.Object {
return GLib.SOURCE_REMOVE;
});
- const {promise, resolve, reject} = Promise.withResolvers();
+ let resolve, reject;
+ const promise = new Promise((res, rej) => {
+ resolve = res;
+ reject = rej;
+ });
const task = Gio.Task.new(this, cancellable, () => {
try {
const res = task.propagate_boolean();
--
2.54.0

View File

@ -1,8 +1,8 @@
## START: Set by rpmautospec
## (rpmautospec version 0.6.5)
## (rpmautospec version 0.8.4)
## RPMAUTOSPEC: autorelease, autochangelog
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
release_number = 3;
release_number = 8;
base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
print(release_number + base_release_number - 1);
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
@ -48,9 +48,11 @@ Patch: 0001-screenShield-unblank-when-inserting-smartcard.patch
Patch: enforce-smartcard-at-unlock.patch
Patch: disable-unlock-entry-until-question.patch
Patch: 0001-main-Register-session-with-GDM-on-startup.patch
Patch: 0001-loginManager-Update-RegisterSession.patch
# Passwordless work
# https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3212
Patch: 0001-Support-for-web-login-and-unified-auth-mechanism.patch
Patch: 0002-post-changes-for-passwordless-gdm-backport.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
@ -312,8 +314,23 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Shell.Porta
%changelog
## START: Generated by rpmautospec
* Fri May 22 2026 Eduard Abdullin <eabdullin@almalinux.org> - 49.4-3
- Bump release
* Tue Jun 09 2026 Joan Torres Lopez <joantolo@redhat.com> - 49.4-8
- Update passwordless GDM work to be in sync with upstream MR
* Tue Jun 09 2026 Florian Müllner <fmuellner@redhat.com> - 49.4-7
- rpminspect: Use correct paths in runpath exception
* Thu May 28 2026 Tomas Pelka <tpelka@redhat.com> - 49.4-6
- Resolves: https://redhat.atlassian.net/browse/RHEL-178662
* Wed May 27 2026 Tomas Pelka <tpelka@redhat.com> - 49.4-5
- triggering new build
* Wed May 27 2026 Joan Torres Lopez <joantolo@redhat.com> - 49.4-4
- Update fix of registering session
* Tue Apr 21 2026 Joan Torres Lopez <joantolo@redhat.com> - 49.4-3
- Ensure gdm hint text is cleraed
* Tue Feb 17 2026 Joan Torres Lopez <joantolo@redhat.com> - 49.4-2
- Update passwordless GDM implementation to match upstream

View File

@ -1 +1 @@
f101a8f261f6e3ac9f2b08efad71fd6be85f3c7d9070c747e5b9420fa9faa9e86281f76774385807bd9b1ce100fc82b37fa646147e7a4003c7ce3f8cf66b5670 gnome-shell-49.4.tar.xz
SHA512 (gnome-shell-49.4.tar.xz) = f101a8f261f6e3ac9f2b08efad71fd6be85f3c7d9070c747e5b9420fa9faa9e86281f76774385807bd9b1ce100fc82b37fa646147e7a4003c7ce3f8cf66b5670