Cinnamon 5.4
Mutter Rebase
The biggest change in Cinnamon 5.4 is a major rebase of its window manager. Muffin is now based on Mutter 3.36 and its codebase is much closer to upstream than before.
When Muffin was forked from Mutter 3.2, the plan wasn’t to develop a different window manager but simply to make Cinnamon compatible with all distributions of Linux by guaranteeing it had the same manager everywhere, no matter what version of Mutter was shipped.
Time flies. It’s been 11 years since that fork. Over time both managers received features and improvements. Muffin caught up regularly by backporting Mutter changes into its codebase.
During that time the design of Mutter changed significantly though. Parts of Mutter were moved over to GNOME Shell and vice versa. This made it harder and harder to port some of the latest changes affecting Mutter over to Muffin because GNOME Shell and Cinnamon themselves are very different.
Muffin also received features and optimizations which weren’t part of Mutter. Although these were beneficial to the Cinnamon desktop at the time, they also created a challenge when it came to catching up to Mutter improvements, and over time this became an issue.
After months of development, Muffin was completely rebased. Its particularities were reviewed. Some were dropped. Some were moved over to Cinnamon. To ensure easier rebases and backporting in the future, the priority was given to ensure the Muffin and Mutter codebases remained as close as possible.
Window Manager
To accommodate the new window manager the Display settings were backported from gnome-control-center into cinnamon-control-center. The display configuration which was previously handled by csd-xrandr (part of cinnamon-settings-daemon) was moved into Muffin.
In the past, applications could be rendered differently based on the technology they used. If a GTK application used a headerbar, its window was a CSD window and its titlebar and shadows were rendered using the GTK theme. If it didn’t, its window was an SSD window and in this case its titlebar and shadows were rendered using the Metacity theme.
Although the Mint-X and Mint-Y themes did their best to make their GTK titlebars and shadows look as similar as their Metacity counterparts, in practice these were rendered by two different engines within Muffin and it introduced a slight visual disparity between the two types of windows.
In Cinnamon 5.4 all windows are now rendered with the GTK theme, whether they have a headerbar or not. Metacity themes are no longer used.
The GTK antialiasing, which is cleaner than the Metacity one, previously only benefited CSD windows. It’s now used on all windows. Rounded corners look crispier.
Window animations were improved. The way they work changed under the hood. It’s no longer possible to tune animations and to make your own like it was in the past, but the default set looks much cleaner than before and the global speed of animations is configurable.
Other Improvements
Along with bug fixes Cinnamon 5.4 also features the following improvements:
- The CJS interpreter, which was previously based on GJS 1.66.2, was rebased on GJS 1.70.
- The settings daemon features improved MPRIS support.
- Right-clicking an application in the main menu, shows a context menu. If the application provides commands, these commands are now added to this menu.