Introduction

The Cinnamon desktop can be themed and its features can be extended by adding applets, desklets and extensions. In Cinnamon lingo, all these addons are referred to as “spices”. The goal is to let you spice up your Cinnamon experience so you can enjoy your desktop environment, feel even more at home with it and benefit from niche features and look and feel which go beyond what is developed by the Linux Mint and Cinnamon teams.

Spices can be installed from within Cinnamon -> System Settings -> Applets/Desklets/Extensions/Themes, or by visiting https://cinnamon-spices.linuxmint.com.

Rationale

Throughout the years we’ve seen great spices being developed by 3rd party artists and developers. The “Weather” applet developed by mockturtl is an example of a very popular spice. Just like a killer app, it’s something many people add to their environment right after a fresh install. Spices like that greatly enhance the user experience in the Cinnamon desktop.

Unfortunately, throughout the years we’ve also seen spices deteriorate that experience by bringing down the overall quality of the Cinnamon desktop. Some spices aren’t packaged properly and thus cannot be installed successfully from the System Settings…. some spices don’t work at all, and in some extreme cases we’ve even seen some spices make the Cinnamon desktop crash or fail to load.

Another issue is security. In an ideal world we provide the platform for users to enjoy 3rd party development and for developers to reach their audience in the simplest possible manner. In practice, and we’ve seen this last year when our project and users were the targets of specific attacks, we can no longer blindly trust 3rd parties and expose users to them directly. All changes coming from sources we don’t trust must be reviewed to guarantee the absence of malicious code.

Scope

It’s hard to reduce empowerment and raise expectations while explaining a trust issue to 3rd party developers and artists (although the changes we’re implementing also bring a lot of benefits to them which I think some of them will really enjoy) and we’ll do this on Segfault with a separate blog post.

In this blog post, I’ll address the Cinnamon users and explain the changes we implemented.

Thanks

Before I start I’d like to thank to Design Team, and in particular Eran Gilo for his beautiful design, and Carlos Fernandez, Darryn Bourgeois and Nick Karnaukhov for their amazing work on the implementation.

I’d like to thank the Development Team also for helping me define all these changes and discussing them with me.

Revamped Spices website

The first thing you’ll notice when visiting https://cinnamon-spices.linuxmint.com is the new look and feel.

This is the result of the work produced by the Design Team. As you can see, things look much better when designed by artists 🙂

You’ll also notice that you can no longer login, logout or register on the website. The reason for this is that a second update is coming. The Design Team is currently revamping authentication, comments and ratings.

In the past you needed to sign up on the website, wait for an email, log in and then you could comment and rate spices on a scale of 1 to 5.

This is all getting changed.

We don’t need to know your email address or to store your password and we no longer want to. You’ll no longer sign up or login with us. You’ll have the ability to use your existing online identity so you’ll review and rate as yourself directly, without needing a dedicated account. We’ll very likely support Facebook, Github and Google, and possibly other social networks.

Ratings will be simplified. In the past you could downvote spices and your rating carried the same weight on the score whether it was done last week or 4 years ago. This made it easy for people to trick the system unfairly and it made it hard for new spices to compete with established ones. Going forward you’ll only be able to “like” things. Spices will be considered “popular” not only because they received many “likes”, but also because they did so “recently”.

Improved security

All code changes affecting spices are now version controlled.

All code changes made by untrusted parties are now reviewed.

Improved maintenance

Spices used to be developed solely by their author.

They’re now maintained co-jointly by their author, the Development Team and a new team made of trusted Spices developers.

This brings a lot of benefits…

In the past, if the author of a spice didn’t fix something, it never got fixed. In contrast, anyone can fix bugs in spices now. The Development Team can commit the fix directly into it and anyone else can provide a fix via a pull request on github.

It doesn’t mean all bugs will get fixed, but it’s certainly going to boost bug fixing in Cinnamon spices.

Maintenance is centralized and bug fixes can be done across the board and affect multiple spices. If somebody fixes something in one spice and the same fix could be applied to other spices, that person has the ability to provide a single fix affecting multiple spices. In the past, this rarely happened, because it would have required an author to communicate with other authors and for them to copy over their fix.

Spices can gain support for future versions of Cinnamon “before” they come out. Cinnamon 3.2 required changes in themes and many of them don’t look good as a result. The development team is now able to modify spices as changes are being implemented in Cinnamon itself. It’s not just a matter of telling artists and developers about changes which affect their spice, we’re now able to actually fix things for them directly before ever breaking them 🙂

Streamlined development delivery

The development of spices now happens on Github. It’s all version controlled and using top of the art technology and the same tools we’re using to develop Cinnamon itself.

Changes made on Github are synced automatically towards the https://cinnamon-spices.linuxmint.com website and towards your desktop environment. If we fix a bug on Github, a few minutes later it’s there on the website and your Cinnamon desktop sees it as an available spice update.

If you browse the website and look at a particular spice, you’ll see when it was last edited and what its last commit is. If you click on this commit hash, you’ll see its Git history, i.e. all the changes that occurred to that spice.

Limitations

Be aware that when the authentication/comments/rating revamp arrives we’ll reset all the scores to zero and we might also start from scratch on the comments.

All spices kept their existing “uuid” (which represents their unique identity) except for themes (which didn’t have any in the past). In layman terms this means that changes made to applets, desklets and extensions will be detected by your Cinnamon desktop as new versions of these spices… but this won’t happen for themes that you already installed, since their uuid changed.

If you installed themes, please remove them and reinstall them. Once this is done you’ll be able to update them again when changes are pushed.

Information for developers and artists

If you are developing spices, please also read http://segfault.linuxmint.com/2017/01/changes-to-cinnamon-spices-for-developer-and-artists/