On behalf of the team and all the developers who contributed to this build, I am proud to announce the release of Cinnamon 2.6!
This new version will be featured in Linux Mint 17.2 “Rafaela” planned for the end of June and in LMDE 2 “Betsy”.
Have a lot of fun with this new release and don’t hesitate to give us some feedback! Enjoy.
Here’s a quick overview of some of the new things in Cinnamon 2.6.
On supported hardware Cinnamon now uses a newer “cogl” API. This change is known to prevent some of the causes of desktop freezes observed in earlier releases.
In case of a freeze or if you need to restart Cinnamon for any reason, you can now do so via a keyboard shortcut. The default key combination is Ctrl+Alt+Escape. Pressing this combination of keys restarts nemo and cinnamon-settings-daemon in case they had crashed, and launches a brand new instance of the Cinnamon desktop. Unlike Ctrl+Alt+Backspace which terminates your session and brings you back to the login screen, Ctrl+Alt+Escape simply restarts Cinnamon itself, which means your session is exactly as it was, you don’t lose any work and all your windows and applications remain open.
You no longer need to recompile Cinnamon to choose between consolekit and logind support. This is done in gsettings and you can decide which relevant Cinnamon components use which session/power-management backend:
- Set org.cinnamon.desktop.session session-manager-uses-logind to true to make Cinnamon rely on logind to restart/shutdown/suspend/hibernate the computer from the shutdown dialog, or to false to restart/shutdown the computer via consolekit and suspend/hibernate via upower.
- Set org.cinnamon.desktop.session settings-daemon-uses-logind in a similar fashion to control suspending/hibernating on idle or via multimedia keys.
- Set org.cinnamon.desktop.session screensaver-uses-logind to true to make the screensaver listen to logind, or to false to make it listen to consolekit.
In distributions using systemd or shipping with a diminished version of upower (i.e. one that is no longer able to suspend/hibernate the computer… 0.99 or newer), set the first two settings to true. In distributions using MDM version 1.8 or lower set the third setting to false (MDM unlock via logind support is introduced in version 2.0). Otherwise set these options as you deem appropriate.
Responsiveness, load times and CPU usage
A huge amount of work was done to review the CPU usage in various parts of Cinnamon and many improvements were made. Performance was gained by optimizing how Cinnamon reacts to particular events and reducing the number of tasks or repeated tasks it performs. The menu, for instance, is refreshed about 6 times as less as before… signals resulting from connecting a USB device are grouped together and lead to 1 action, reducing 4 concurrent reactions into a single one. The docinfo part of Cinnamon, which handles “recent files”, was optimized a lot. We found out tiny features such as generating thumbnails for “recent” files in the application menu were very expensive in resources and dropping them led to significant reductions in CPU usage. Un-necessary calculations in the window management part of Cinnamon could also be dropped, leading to reduced idle CPU usage (about 40% reduction in the number of CPU wakes per second).
Loading times were also reviewed (this covered Cinnamon and MDM) and found to be excellent, except for the case where Cinnamon is loaded for the first time after a computer restart or shutdown. Whereas a normal Cinnamon initialization would typically take between 0 and 2 seconds, the very first one could take up to 40 seconds on some of our test systems. The reason was a lack of HDD read-cache, especially when it came to Gio appinfo and icon themes data. To reduce this initial load time, Cinnamon 2.6 introduces a preload mechanism which loads themes and app info asynchronously earlier on during the boot sequence. Distributions using non-standard icon themes can add them to /etc/cinnamon/preload/iconthemes.d/.
Finally, information was added to Looking glass logs to report the Cinnamon startup time as well as to indicate how long each enabled applet took to start.
Multi-monitor and multi-panel support
Support for multiple monitors was improved. Better window list actions and new keybindings allow you to move windows to other monitors (Super+Shift with arrow keys by default). But the most significant improvement is that you can now have multiple panels and place them across multiple monitors.
Applets are better than before at running multiple instances of themselves and some of them got smarter to accommodate multi-monitor/multi-panel setups. For instance a window list applet won’t show you windows from another monitor if that monitor has a panel with its own window list.
Up until version 2.6 “cinnamon-screensaver” was no more than a “screen locker”. It locked the screen but didn’t actually play any animation.
This is changed now as it gained support for XScreenSaver modules and HTML5 screensavers.
Note: Brightness and keyboard backlight are now also modifiable via multimedia keys while the screen is locked.
Panels and applets
Panels can now be added/removed/configured individually and moved to different positions across one or multiple monitors.
They have a new way of hiding/showing themselves called “intelli-hide” :)
The way their left/center/right zones are defined was redesigned and they are now able to center applets in the middle whether left and right zones contain applets or not.
A new “inhibit” applet was introduced which allows you to quickly turn notifications off or to disable power management. This applet is handy when performing presentations, to prevent unwanted notifications to pop up, to prevent the screen from dimming brightness or the screen to get locked. You no longer need to modify your power settings, you can just temporarily disable all that.
The inhibit applet also tells you when another program is disabling power management. This is useful to know whether the programs you’re using are telling Cinnamon you’re actually “doing” something (my favorite media player “mpv” for instance isn’t…) :)
The user and network applets were improved slightly.
The sound applet received better PulseAudio support, it detects output devices more accurately and now features a slightly revamped UI and a new application mixer (so you can change the sound level for individual applications straight from the applet).
The “System Settings” were redesigned and reorganized using a beautiful new look, layout and transitions.
The window effects settings were simplified and cool new effects were introduced.
New configuration options were introduced to make your desktop feel even more at home… the first day of the week, the size/presence of the multimedia keys OSD.
The default settings were reviewed and tuned slightly. Windows now open in the center of the screen, on supported hardware touchpads use two-finger scrolling by default… etc.
Power management, brightness and batteries were revamped and merged together. The power applet was also largely redesigned, it detects batteries much better than before and gives a breakdown on secondary devices. It also handles screen brightness and keyboard backlight.
The “Startup Applications” configuration tool was rewritten as a native Cinnamon settings module.
Nemo features a brand new plugin manager.
Its context menus were simplified and now only show the most useful actions. Of course it’s possible to configure Nemo from the preferences to make it show all available actions, as it did before.
File operations are now queued and performed in sequence rather than in parallel.
The policykit policy for “Open as Root” was changed to cache authorization and keep you from having to repeatedly enter a password.
Efforts were made to improve ATK/Orca support in visual Cinnamon components.
Improvements were also made to the magnifier and the mouse zoom modifier is now also configurable.
The on-screen keyboard was partly redesigned. It now shows and hide on-demand thanks to a brand new “On-Screen Keyboard Applet” and it now affects the size and limits of the screen: i.e. when the on-screen keyboard appears, the size of the workspace is reduced accordingly and windows appearing beneath it are re-adjusted (this works in a way similar to the panel auto-hide function).
Information for developers
Cinnamon 2.6 now provides developer documentation, tutorials and API references. You can access the documentation via devhelp by installing the “cinnamon-doc” package, or browse it online on http://developer.linuxmint.com.
With the introduction of multiple panels it became important for applets to support multiple instances. We recommend all 3rd party developers to test their applets by placing two of them on different panels and configuring them separately.
Extensions are now able to provide different versions of themselves for different versions of Cinnamon. To support multiple Cinnamon versions differently, please have a look at http://developer.linuxmint.com/reference/2.6/cinnamon-tutorials/xlet-versioning.html.
If you create an “icons” directory in a spice (an applet, a desklet etc..), any icons you place inside it become available “by name” as if they were part of the icon theme. You can then easily access them just like you would any other theme icons.
The Cinnamon theme engine now uses a fallback mechanism. If a style is deemed important and isn’t defined by the current Cinnamon theme, the style from the default Cinnamon is now used. It might look out of place of course, but at least it will work. In effect, this means that all Cinnamon 2.4 themes are already compatible with Cinnamon 2.6 (and future versions), new components/styles will just look like they do in the default theme until these themes support them.