Distribution
Mint 22.3
Package version
6.6.7
Graphics hardware in use
Intel Corporation Core Processor Integrated Graphics Controller hp630
Frequency
Always
Bug description
Distribution: Linux Mint 22 (Zena)
Cinnamon version: 6.6.7
UPower version: 1.90.3
Frequency: Always reproducible
Bug description:
The taskbar clock freezes after resuming from suspend (closing/opening the lid). System time is correct — only the clock applet display is stuck. Manually restarting Cinnamon fixes it until the next suspend cycle.
Root cause:
In /usr/share/cinnamon/applets/calendar@cinnamon.org/applet.js lines 153–158:
this._upClient = new UPowerGlib.Client();
try {
this._upClient.connect('notify-resume', Lang.bind(this, this._updateClockAndDate));
} catch (e) {
this._upClient.connect('notify::resume', Lang.bind(this, this._updateClockAndDate));
}
Both notify-resume and notify::resume signals were removed in UPower 1.90.x. The try/catch silently swallows both failures, leaving no resume handler connected. The clock display is never refreshed after wake.
Verified by checking that no PrepareForSleep or equivalent fallback handler exists anywhere in the applet:
grep -r "PrepareForSleep" /usr/share/cinnamon/applets/calendar@cinnamon.org/
(no output)
Suggested fix:
Replace the broken UPower signals with a logind listener:
const LoginManager = imports.misc.loginManager;
LoginManager.getLoginManager().connect('prepareForSleep', (lm, aboutToSuspend) => {
if (!aboutToSuspend) this._updateClockAndDate();
});
Steps to reproduce
- Boot into Linux Mint 22 (Zena) with Cinnamon 6.6.7
- Observe the taskbar clock ticking normally
- Close the laptop lid (system suspends)
- Wait at least 30 seconds
- Open the lid (system resumes)
- Observe the taskbar clock — it shows the time from before suspend and no longer updates
To confirm it is a display issue only:
- Open a terminal and run: date
- System time will be correct, only the clock widget is frozen
To confirm the UPower signals are silently failing:
- Run: upower --version
- Run: grep -n "notify-resume|notify::resume" /usr/share/cinnamon/applets/calendar@cinnamon.org/applet.js
- Both signals at lines 155 and 157 are removed in UPower 1.90.x, causing the try/catch to fail silently with no fallback
Workaround:
- Press Alt+F2, type r, press Enter (restarts Cinnamon and fixes the clock until next suspend)
Expected behavior
After resuming from suspend, the taskbar clock should immediately resume
updating and display the correct current time, without requiring a manual
Cinnamon restart.
The applet should listen for the system resume event via a working signal
(such as logind's PrepareForSleep D-Bus signal) and call _updateClockAndDate()
upon wake to restart its update loop.
Additional information
No response
Distribution
Mint 22.3
Package version
6.6.7
Graphics hardware in use
Intel Corporation Core Processor Integrated Graphics Controller hp630
Frequency
Always
Bug description
Distribution: Linux Mint 22 (Zena)
Cinnamon version: 6.6.7
UPower version: 1.90.3
Frequency: Always reproducible
Bug description:
The taskbar clock freezes after resuming from suspend (closing/opening the lid). System time is correct — only the clock applet display is stuck. Manually restarting Cinnamon fixes it until the next suspend cycle.
Root cause:
In
/usr/share/cinnamon/applets/calendar@cinnamon.org/applet.jslines 153–158:Both
notify-resumeandnotify::resumesignals were removed in UPower 1.90.x. The try/catch silently swallows both failures, leaving no resume handler connected. The clock display is never refreshed after wake.Verified by checking that no PrepareForSleep or equivalent fallback handler exists anywhere in the applet:
Suggested fix:
Replace the broken UPower signals with a logind listener:
Steps to reproduce
To confirm it is a display issue only:
To confirm the UPower signals are silently failing:
Workaround:
Expected behavior
After resuming from suspend, the taskbar clock should immediately resume
updating and display the correct current time, without requiring a manual
Cinnamon restart.
The applet should listen for the system resume event via a working signal
(such as logind's PrepareForSleep D-Bus signal) and call _updateClockAndDate()
upon wake to restart its update loop.
Additional information
No response