Cinnamon (desktop environment)

Cinnamon is a free and open-source desktop environment for Linux and other Unix-like operating systems, which was originally based on GNOME 3, but follows traditional desktop metaphor conventions.

The development of Cinnamon began by the Linux Mint team as the result of the April 2011 release of GNOME 3, in which the conventional desktop metaphor of GNOME 2 was discarded in favor of GNOME Shell. Following several attempts to extend GNOME 3 so that it would suit the Linux Mint design goals through "Mint GNOME Shell Extensions", the Linux Mint team eventually forked several GNOME 3 components to build an independent desktop environment. This separation from GNOME was finished with the release of Cinnamon 2.0.0 in October 9, 2013. Applets, extensions, actions, and desklets made explicitly for Cinnamon are no longer compatible with GNOME Shell.

As the distinctive factor and preeminent desktop environment for Linux Mint, Cinnamon has generally received favorable coverage by the press, in particular for its ease of use and gentle learning curve. In regard to its conservative design model, Cinnamon is similar to the Xfce, MATE, GNOME 2, and GNOME Flashback desktop environments.

History
As with many other desktop environments based on GNOME, including Canonical's Unity, Cinnamon was the result of disapproval and dissatisfaction of the GNOME team's abandonment of a traditional desktop experience in April 2011. Until then, GNOME (i.e. GNOME 2) had included the traditional desktop metaphor, but in GNOME 3, this was entirely replaced with GNOME Shell, which by default lacked a taskbar-like panel and other basic features of a conventional desktop. The elimination of these basic features was unacceptable to the developers of distributions such as Mint and Ubuntu, which are geared to users who wanted interfaces that are familiar and easy-to-use.

To overcome these differences, the Linux Mint team initially set out to develop extensions for GNOME Shell to replace the abandoned features. The results of this effort were known as the "Mint GNOME Shell Extensions" or MGSE. Meanwhile, the MATE desktop environment had also been forked from GNOME 2. Linux Mint 12, released in November 2011, subsequently included both, thereby giving users a choice of either GNOME 3 with the MGSE or a MATE desktop that closely resembled GNOME 2.

However, even with MGSE, GNOME 3 was still largely missing the comforts of GNOME 2 and was not well received by the user community. At the time, some of the missing features could not be replaced by extensions, and it seemed that extensions would not be viable in the long run due to concerns of significant changes upstream from the GNOME team. Moreover, the GNOME developers were not willing to cooperate with the wishes of the Mint developers. To give the Mint developers finer control over the development process, GNOME Shell was forked as "Project Cinnamon" in January 2012.

Gradually, various core applications were adapted by the Mint developers. Beginning with version 1.2, released in January 2012, the window manager of Cinnamon is called Muffin, which was originally a fork of GNOME 3's Mutter. Similarly, since September 2012 (version 1.6 onwards), Cinnamon includes the Nemo file manager which was forked from Nautilus. Nemo was created in response to disapproval of some upstream changes in Nautilus 3.6 that significantly altered the functionality and user interface of Nautilus. Cinnamon-Settings, included since May 2013 (version 1.8 onwards), combines the functionality of GNOME-Control-Center with that of Cinnamon-Settings, and made it possible to manage and update applets, extensions, desklets and themes through Cinnamon-Settings. Gnome-Screensaver was also forked and is now called Cinnamon-Screensaver.

Since October 2013 (version 2.0 onwards), Cinnamon is no longer a frontend of GNOME like Unity or GNOME Shell, but rather a completely independent desktop environment. Although Cinnamon is still heavily built on GNOME technologies and utilizes GTK, it no longer requires GNOME as a dependency in order to be installed.

Further improvements in later versions include a desktop grid, wildcard support in file searches, multi-process settings daemon, desktop actions in the panel launcher, separate processes for desktop handling and file manager in Nemo; an additional desktop panel layout option that offers a more modern looking theme and grouped windows; improved naming for duplicate applications in the menu (i.e. Flatpak vs. deb packages), pinned files in Nemo, touchpad gestures, bulk file rename of multiple files and folders using, customizable context menu items in Nemo called "Actions", and an emphasis on performance improvements.

X-Apps
In 2016, Cinnamon started to use X-Apps, which are a collection of applications developed by the Linux Mint team as an alternative to GNOME Core Applications but intended to work across different GTK-based desktop environments such as but not limited to Cinnamon, Budgie, Unity, MATE, and XFCE; most of these applications have a traditional user interface (UI), for example, using a menu bar instead of a header-bar. The Linux Mint team is currently in the process of transitioning development for X-Apps applications from being part of the Linux Mint development process to being a completely independent project. Most of them are forks of GNOME Core Applications:


 * Timeshift is a system restore utility used to undo undesired system changes through the use of snapshots via BTRFS or rsync.
 * Blueberry is a graphical frontend for the CLI  library.
 * Xed is a text editor based on Pluma
 * Xviewer is an image viewer based on Eye of GNOME
 * Xreader is a document viewer based on Atril
 * Xplayer is a media player based on GNOME Videos (Totem)
 * Pix is an image organizer based on gThumb
 * is a graphical online account manager for GTK-based desktop environments other than GNOME, due to recent changes in the GNOME Online Accounts package that now requires other desktop environments to be based off GTK4 rather than GTK3.
 * is a Python and C-based software library that provides the resources needed for applications in the X-Apps project to work across different desktop environments.

Features
Features provided by Cinnamon include
 * Desktop effects, including animations, transition effects and transparency using composition;
 * Panels equipped with a main menu, launchers, a window list and the system tray can be adjusted on left, right, upper or lower edge of the screen
 * Various extensions;
 * Applets that appear on the panel
 * Overview with functions similar to that in GNOME Shell; and
 * Settings editor for easy customization. It can customize:
 * The panel
 * The calendar
 * Themes
 * Desktop effects
 * Applets
 * Extensions
 * Volume and brightness adjustment using scroll wheel while pointing at the respective taskbar icon.
 * Hot corners on the screen

, there is no official documentation for Cinnamon itself. The 2016 documentation for the Cinnamon edition of Linux Mint does have a small chapter on the Cinnamon desktop.

Overview mode
New overview modes have been added to Cinnamon 1.4. These two modes are "Expo" and "Scale", which can be configured in Cinnamon Settings.

Extensibility
Cinnamon can be modified by themes, applets, desklets, actions, and extensions. Themes can customize the look of aspects of Cinnamon, including but not limited to the menu, panel, calendar and run dialog. Applets are icons or texts that appear on the panel. Five applets are shipped by default, and developers are free to create their own. A tutorial for creating simple applets is available. Desklets are miniature applications that one can place and run on the desktop, providing quick access to information and functionality. Actions are tasks that can be executed from the context menu of the Nemo file manager. Extensions can modify the functionalities of Cinnamon, such as providing an alternative menu to launch applications or altering the look of the Alt window switcher.

Users can find themes, applets, desklets, actions, and extensions from Cinnamon Spices, the official repository where developers can share their creations for users to download and rate.

Reception
In their review of Linux Mint 17, Ars Technica described Cinnamon 2.2 as "being perhaps the most user-friendly and all-around useful desktop available on any platform."

In their review of Linux Mint 18, ZDNet said "You can turn the Linux Mint Cinnamon desktop into the desktop of your dreams."