On behalf of the team and all the developers who contributed to this build, I am proud to announce the release of Cinnamon 2.0!

This new version will be featured in Linux Mint 16 “Petra” planned for the end of November and will then be backported to LMDE and Linux Mint 13 LTS.

Cinnamon 2.0 represents 5 months of development and 856 commits from 28 developers. It features a lot of bug fixes but also brand new features and many improvements.

Here’s a quick overview of some of the new things in Cinnamon 2.0.

Have a lot of fun with this new release and don’t hesitate to give us some feedback! Enjoy

What’s new for users

Better Edge-Tiling

Edge-Tiling is the action of quickly moving a window to the edge of the screen and sticking it there for it to occupy half of the screen. It can be done by dragging the window towards a screen edge or by pressing pressing “Super_L” (The Windows key) and an arrow key. Edge-Tiling was there in Cinnamon since the beginning but it just got much much better!

First, tiled windows no longer need to occupy half of the screen, they do so by default when tiled but you can now resize them.

Second, in addition to the Left, Right, Top and Bottom edge of the screen, you can now also tile into the 4 corners of the screen.

Third, when you drag a window near a tiling zone Cinnamon shows that zone to you. This is called the HUD and its purpose it to bring awareness and make it easier for novice users to discover the Edge-Tiling and Edge-Snapping (explained in the next paragraph) features.

Edge-Snapping

Edge-Snapping was inspired by the Snap functionality of Xbox One. It is similar to Edge-Tiling (the window sticks to the edge or corner of the screen, occupies half of the screen and can be resized) but with one key difference: Maximized windows do not cover snapped windows.

The idea behind Edge-Snapping is to let you keep an eye on a particular window without letting that window get in the way of everything else you’re doing. If you have multiple monitors you can already do that by moving that window to another monitor, if you don’t you’ll probably love this new feature.

To snap a window in Cinnamon 2.0, drag it with the mouse towards an edge or a corner while pressing the “Control” key. Alternatively you can snap a window using “Control”, “Super_L” and an arrow key.

Sound Effects

Cinnamon is now able to play sounds when you perform common events such as closing windows, switching workspaces etc…

These sounds are configurable, can be disabled globally or individually and you can set the volume for them independently of the main sound volume.

Better User Management

GNOME lacked a proper tool for user administration and Cinnamon wasn’t taking advantage of the innovations developed by GNOME on account management. In Cinnamon 2.0, both aspects were rewritten from scratch.

System administrators now have access to the “Users and Groups” configuration tool which allows them not only to administrate users but also groups.

Users can access and modify their own information via the “Account Details” module.

In addition, a new user applet is introduced in Cinnamon 2.0 to let you easily perform most session/account related tasks (leaving, switching users, disabling notifications, accessing settings…etc).

Nemo Improvements

Better MIME handling

MIME handling in Nemo has been drastically improved. Associating applications or commands to particular file types was a frustrating exercise. It is now a breeze.

System tray support for file operations

The File operations window appears when you move or copy files. It shows you the progress of current move or copy operations. Prior to Cinnamon 2.0, if you closed this window you couldn’t bring it back.

In Cinnamon 2.0, if you close this window, it will show as an icon in your system tray. The icon uses a circular symbolic progress icon to give you an indication of the progress of the operations.

Other Nemo improvements

The overall performance and UI were greatly improved. Nemo looks better and acts faster than before.

Bookmarks and devices now appear in the “Move to” and “Copy to” context menus so you can quickly move/copy files towards your favourite destinations.

New extensions were ported to Nemo, in particular nemo-media-columns and nemo-preview (which is forked from Sushi).

Window manager improvements

The Display configuration module was slightly improved.

Windows from other workspaces requiring attention are now highlighted in the window list by an item you can click when appropriate.

Substantial performance improvements were made to fullscreen applications. Running “glxgears -fullscreen” without vsync for instance now gives 3 times more frames per seconds than it did in Cinnamon 1.8.

What’s new under the hood

Cinnamon Backend 2.0

Prior to version 2.0, and similar to Shell or Unity, Cinnamon was a frontend on top of the GNOME desktop.

In version 2.0, and similar to MATE or Xfce, Cinnamon is an entire desktop environment built on GNOME technologies. It still uses toolkits and libraries such as GTK or Clutter and it is still compatible with all GNOME applications, but it no longer requires GNOME itself to be installed. It now communicates directly with its own backend services, libraries and daemons: cinnamon-desktop, cinnamon-session and cinnamon-settings-daemon.

Better compatibility and portability

Another very tangible gain is backward compatibility and portability. Until now Cinnamon was designed to work on top of GNOME 3… a desktop which is being actively designed and features radical changes every 6 months. For instance, it is not possible to communicate with gnome-settings-daemon 3.8 the same way as with gnome-settings-daemon 3.6. The communication protocols and ABI keep changing and so a particular version of Cinnamon had to be designed to work with a particular version of GNOME.

To take an example, Cinnamon 1.8 was designed for GNOME 3.6. It worked great in Linux Mint 15 (which it was designed for) but compatibility with other distributions and previous releases wasn’t achieved easily:

Cinnamon 1.8 Cinnamon 2.0 cinnamon-bluetooth Linux Mint 15 Gnome-settings-daemon 3.6 (works perfectly) Cinnamon-settings-daemon 2.0 (works perfectly) Version 3.6 Linux Mint 13 LTS Gnome-settings-daemon 3.4 (works thanks to hacks in the code. Cinnamon-settings 1.8 could not be backported as it requires gnome-settings-daemon 3.6) Cinnamon-settings-daemon 2.0 (works perfectly) Not needed (gnome-bluetooth 3.4 provides the configuration module via cinnamon-settings 2.0) Fedora 19 Gnome-settings-daemon 3.8 (works somehow, after a lot of patching, via the use of an unofficial 3.8 compatibility branch) Cinnamon-settings-daemon 2.0 (works perfectly) Version 3.8 Future releases/distributions Gnome-settings-daemon 3.10 (probably won’t work) Cinnamon-settings-daemon 2.0 (works perfectly) Version 3.10

In comparison Cinnamon 2.0 works out of the box with its own settings daemon.

Bluetooth support is the only exception to this and the only component of Cinnamon 2.0 which is still tied to GNOME. Despite its name, cinnamon-bluetooth is not a fork of gnome-bluetooth, but a frontend to it. It provides Cinnamon with a bluetooth applet and a bluetooth configuration module aimed to work with a particular version of gnome-bluetooth.

Better integration, easier development and innovation

The Cinnamon Backend empowers the development team to innovate further and with less design restrictions. Some of the new features in Cinnamon 2.0 would not have been possible without it. The new components can receive improvements and fit and be adapted to work with new developments done for Cinnamon. If a new feature requires changes across multiple components of the desktop, the team is no longer restricted by the limitation or the design of the GNOME backend components.

Better GNOME Shell in Linux Mint, better Cinnamon everywhere else

Cinnamon was better in Linux Mint than anywhere else and GNOME Shell was better everywhere else (except in Ubuntu) than in Linux Mint due to GNOME components being heavily patched to give users a well integrated Cinnamon desktop (or Unity desktop in the case of Ubuntu).

Thanks to the introduction of the Cinnamon backend, the GNOME components no longer need to be patched. In Linux Mint, users of GNOME Shell will therefore only have to cope with upstream Unity patches or enjoy vanilla components if they run LMDE. Everywhere else users will enjoy better integration and a quality of Cinnamon desktop which is more on par with Linux Mint.

Other improvements

Better localization, date formats, centralized translations

Added support for LightDM user-switching and guest user sessions

Added support for MDM user-switching and MDM integration in the System Settings

Improved support for systemd/logind

New features for developers

Settings API for Applets/Desklets

Settings are now localized using both your localization files and global Cinnamon translations.

If your applet or desklet uses the Settings API, Cinnamon 2.0 now automatically adds a “Configure…” menu item in your context menu. Make sure you don’t add your own.

Nemo actions

Actions now apply to the sidebar and treeview

Tokens can be used multiple times

A lot of new tokens and conditions were introduced

Check this file for more details: https://github.com/linuxmint/nemo/blob/master/files/usr/share/nemo/actions/sample.nemo_action

And that’s not all…

Cinnamon 2.0 is huge. This is just an overview…

For an exhaustive list of changes, please visit the following page: https://github.com/linuxmint/Cinnamon/commits/master

If you have questions about changes which are not covered in this announcement please contact the development team on IRC at irc.spotchat.org #linuxmint-dev.

Notes to themes artists

With the exception of the HUD (for Window tiling/snapping), Cinnamon 2.0 should look fine in most 1.8 themes already.

You can see a changelog for the Cinnamon theme between 1.8 and 2.0, showing you exactly what was removed and added at: https://github.com/linuxmint/Cinnamon/blob/master/data/theme/theme-changelog.txt

Feel free to come and chat with us on #linuxmint-dev (irc.spotchat.org) if you face any problem.