Issue
cinnamon-screensaver crashes on resume in Fedora 44 with the following error:
Traceback (most recent call last):
File "/usr/share/cinnamon-screensaver/passwordEntry.py", line 211, in on_destroy
self.restore_original_layout()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
File "/usr/share/cinnamon-screensaver/passwordEntry.py", line 242, in restore_original_layout
if settings.get_kb_group() != self.lockscreen_layout_source.index:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'index'
This causes Cinnamon to crash, necessitating a restart (ctrl+alt+escape).
Workaround
The bug is fixed in commit 1e8c655, available under the 6.7.3-unstable tag:
diff --git a/cinnamon-screensaver-6.6.1/src/passwordEntry.py b/cinnamon-screensaver-6.7.3-unstable/src/passwordEntry.py
index 7a2c082..824d680 100644
--- a/cinnamon-screensaver-6.6.1/src/passwordEntry.py
+++ b/cinnamon-screensaver-6.7.3-unstable/src/passwordEntry.py
@@ -59,6 +59,8 @@ class PasswordEntry(Gtk.Entry):
height = icon_rect.height - 4
handled = False
+ if self.lockscreen_layout_source is None:
+ return False
if settings.get_show_flags():
ui_scale = self.get_scale_factor()
@@ -203,6 +205,8 @@ class PasswordEntry(Gtk.Entry):
also ensures a redraw at the correct time to update the flag image.
"""
self.set_icon_from_icon_name(Gtk.EntryIconPosition.PRIMARY, "screensaver-blank")
+ if self.lockscreen_layout_source is None:
+ return
self.set_icon_tooltip_text(Gtk.EntryIconPosition.PRIMARY, self.lockscreen_layout_source.display_name)
def on_destroy(self, widget, data=None):
@@ -239,6 +243,8 @@ class PasswordEntry(Gtk.Entry):
Called when the unlock dialog is destroyed, restores
the group that was active before the screensaver was activated.
"""
+ if self.lockscreen_layout_source is None or self.system_layout_source is None:
+ return
if settings.get_kb_group() != self.lockscreen_layout_source.index:
settings.set_kb_group(self.lockscreen_layout_source.index)
Since this is unlikely to make it into F44 anytime soon (if at all?), I just patched that file. This has fixed the issue for me, and could for you as well.