Workaround: cinnamon-screensaver crashing on resume

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.

This is the last ever update, the package has been retired for f45+

https://bodhi.fedoraproject.org/updates/FEDORA-2026-2a750ce0d1

f44 doesn’t go EOL for at least 8 months. I would expect packages to be supported for the duration.

I can’t support packages for fedora releases I don’t run, how am I meant to properly test?

The cinnamon stack has one maintainer, my focus is F45+ and rpmfusion infra tasks.

Users are free to submit pull requests to fix older releases.