• Stars
    star
    116
  • Rank 303,894 (Top 6 %)
  • Language
    JavaScript
  • Created almost 8 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Desklets for the Cinnamon desktop

cinnamon-spices-desklets

Validate spices

This repository hosts all the desklets available for the Cinnamon desktop environment.

Users can install spices from https://cinnamon-spices.linuxmint.com, or directly from within Cinnamon -> System Settings.

Definitions

UUID

Each spice is given a name which uniquely identifies them.

That name is their UUID and it is unique.

Author

Each spice has an author.

The github username of the author is specified in the spice's info.json file.

File structure

A spice can contain many files, but it should have the following file structure:

  • UUID/
  • UUID/info.json
  • UUID/screenshot.png
  • UUID/README.md
  • UUID/files/
  • UUID/files/UUID
  • UUID/files/UUID/metadata.json
  • UUID/files/UUID/desklet.js
  • UUID/files/UUID/icon.png

There are two important directories:

  • UUID/ is the root level directory, it includes files which are used by the website and on github.
  • UUID/files/ represents the content of the ZIP archive which users can download from https://cinnamon-spices.linuxmint.com or which is sent to Cinnamon when installing the spice from System Settings. This is the content which is interpreted by Cinnamon itself.

As you can see, the content of the spice isn't placed inside UUID/files/ directly, but inside UUID/files/UUID/ instead. This guarantees files aren't extracted directly onto the file system, but placed in the proper UUID directory. The presence of this UUID directory, inside of files/ isn't actually needed by Cinnamon (as Cinnamon creates it if it's missing), but it is needed to guarantee a proper manual installation (i.e. when users download the ZIP from the Cinnamon Spices website).

Important note:

  • The UUID/files/ directory has to be "empty", which means that it should contain ONLY the UUID directory. Else the spice won't be installable through System Settings.

At the root level:

  • info.json contains information about the spice. For instance, this is the file which contains the github username of the spice's author.
  • screenshot.png is a screenshot of the spice in action.
  • README.md is optional and can be used to show instructions and information about the spice. It appears both in Github and on the website.

Validation

To check if a spice with UUID satifies those requirements run the validate-spice script in this repo:

./validate-spice UUID

Rights and responsibility of the author

The author is in charge of the development of the spice.

Authors can modify their spice under the following conditions:

  • They need to respect the file structure and workflow defined here
  • They cannot introduce malicious code or code which would have a negative impact on the environment

Authors are able to accept or refuse changes from other people which modify the features or the look of their spice.

Authors may choose to pass on development of their desklet to someone else. In that case, the "author" field in UUID/info.json will be changed to the new developer and the "original_author" field will be added to give credit to the original developer.

If an author abandons their desklet, the Linux Mint team will take over maintenance of the desklet or pass it on to someone else. Several factors are used to determine if a desklet is abandoned, including prolonged inactivity, failure to respond to requests, and serious breakages that have occurred due to changes in API, etc. If you plan to abandon a desklet, please notify us, so we don't have to guess as to whether it is abandoned or not.

Pull requests from authors and workflow

To modify a spice, developers create a Pull Request.

Members of the cinnamon-spices-developers team review the pull request.

If the author of the pull request is the spice author (his github username matches the author field in UUID/info.json), the reviewer only has to perform the following checks:

  • The changes only impact spices which belong to that author
  • The changes respect the spices file structure
  • The changes do not introduce malicious code or code which would negatively impact the desktop environment

If everything is fine, the PR is merged, the website is updated and users can see a spice update in System Settings.

Pull requests from other people

In addition to the checks specified above, if the pull request comes from somebody other than the author, it will be held until the author reviews it or gives a thumbs-up, with the following exceptions:

  • If it is a bug fix, the PR may be merged, though if the bug is minor, or the fix could potentially impact the way the desklet works, we may wait for author approval before merging.
  • If the pull request adds translations it will likewise be merged. These are not going to affect the functionality of the code, and will make the desklet available to many users who couldn't use it before due to a language barrier. We view this as essentially a bugfix, but it is included here for clarification.
  • If the author fails to respond in a reasonable time, we will assume the desklet is abandoned (as mentioned above) and the pull request will be merged, assuming it meets all other requirements.

If the changes represent a change in functionality, or in look and feel, or if their implementation could be questioned and/or discussed, the reviewer should leave the PR open and ask the author to review it.

If the author is happy with the PR, it can then be merged. If he's not, it can either be closed or updated to reflect any changes the author requested, at which point it will either be merged or the author may be asked to review the changes depending on whether it is clear the changes fully meet the author's requirements.

Deletions

Authors are entitled to remove their spice.

The Cinnamon team is also entitled to do so. Common reasons are lack of maintenance, critical bugs, or if the features are already provided, either by Cinnamon itself, or by another spice which is more successful.

Additions

New spices can be added by Pull Request.

The Cinnamon team can accept or reject the addition and should give justification in the PR comments section.

Reporting Bugs and Creating Pull Requests

See the Guidelines for Contributing

Translations

The script cinnamon-spices-makepot in this repo was written to help authors to update their translation template (.pot) file and to help translators to test their translations.

Updating a translation template .pot:

./cinnamon-spices-makepot UUID

Test your translations .po locally before uploading to Spices:"

./cinnamon-spices-makepot UUID --install

More info:

./cinnamon-spices-makepot --help

Translations Status Tables

The spices receive updates which sometimes contain new or updated strings that need to be translated. The translation status tables were created to give translators a better overview of the current state of translations and also to make it easier to track where new untranslated strings appear.

To ensure that these tables are always up-to-date, they are automatically regenerated whenever a new commit is pushed to the master branch.

More Repositories

1

cinnamon

A Linux desktop featuring a traditional layout, built from modern technology and introducing brand new innovative features.
JavaScript
4,196
star
2

nemo

File browser for Cinnamon
C
1,046
star
3

timeshift

System restore tool for Linux. Creates filesystem snapshots using rsync+hardlinks, or BTRFS snapshots. Supports scheduled snapshots, multiple backup levels, and exclude filters. Snapshots can be restored while system is running or from Live CD/USB.
Vala
971
star
4

warpinator

Share files across the LAN
Python
959
star
5

hypnotix

An M3U IPTV Player
Python
865
star
6

cinnamon-spices-applets

Applets for the Cinnamon desktop
JavaScript
526
star
7

webapp-manager

Python
501
star
8

xed

X-Apps [Text] Editor (Cross-DE, backward-compatible, GTK3, traditional UI)
C
392
star
9

nemo-extensions

A set of extensions for Nemo
C
374
star
10

slick-greeter

A slick-looking LightDM greeter
Vala
308
star
11

mintupdate

The Linux Mint Update Manager
Python
267
star
12

mint-themes

Mint-X, Mint-Y..
CSS
190
star
13

sticky

A sticky notes app for the linux desktop
Python
186
star
14

muffin

The window management library for the Cinnamon desktop (libmuffin) and its sample WM binary (muffin)
C
186
star
15

xreader

A generic Document Reader
C
184
star
16

cinnamon-desktop

The cinnamon-desktop library (and common settings schemas for the cinnamon desktop)
C
173
star
17

pix

Image management application
C
172
star
18

cinnamon-screensaver

The Cinnamon screen locker and screensaver program
Python
144
star
19

cinnamon-spices-themes

Themes for the Cinnamon desktop
CSS
139
star
20

mintstick

Python
131
star
21

blueberry

A Bluetooth configuration tool
Python
126
star
22

mintinstall

Software Manager
Python
119
star
23

mint-y-icons

The Mint-Y icon theme
Python
100
star
24

mdm

The MDM Display Manager
C
94
star
25

cinnamon-spices-extensions

Extensions for the Cinnamon desktop
JavaScript
93
star
26

lightdm-settings

A configuration tool for the LightDM display manager
Python
92
star
27

mintmenu

Advanced Mint menu for MATE
Python
86
star
28

xplayer

A generic Media Player
C
81
star
29

xapp

Cross-desktop libraries and common resources
C
75
star
30

bulky

Bulk Renamer
Python
73
star
31

mint-y-theme

This is an old repository, please check https://github.com/linuxmint/mint-themes instead.
CSS
71
star
32

xviewer

A generic Image viewer
C
66
star
33

cjs

The Cinnamon Javascript interpreter
C++
65
star
34

mintwelcome

Welcome screen
Python
64
star
35

cinnamon-control-center

A collection of configuration plugins used in cinnamon-settings
C
63
star
36

website-wizixo

CSS
59
star
37

cinnamon-settings-daemon

The settings daemon for the Cinnamon desktop
C
56
star
38

mintdrivers

Driver Manager
Python
54
star
39

live-installer

A live installer for the Debian edition
HTML
53
star
40

mintbackup

The mintBackup Backup Tool
Python
52
star
41

mint-x-icons

Icon theme for Linux Mint
Python
51
star
42

mintsystem

Python
51
star
43

mintdesktop

Desktop configuration tool for MATE and Xfce
Python
51
star
44

mintsources

Python
50
star
45

linuxmint

Linux Mint
48
star
46

mint4win

Windows installer for Linux Mint based on Wubi
C++
44
star
47

ubiquity

Installer
Python
43
star
48

mate

MATE Debian Packages (please report bugs either to MATE or Linux Mint directly)
Python
39
star
49

pia-manager

A VPN configuration tool for PIA
Python
31
star
50

mintupgrade

Python
31
star
51

nvidia-prime-applet

Python
29
star
52

mintnanny

Domain blocker
Python
29
star
53

xapp-thumbnailers

Thumbnailers for GTK Desktop Environments
Python
27
star
54

cinnamon-session

The Cinnamon session manager
C
25
star
55

thingy

Library - Recent and favorite documents
Python
25
star
56

cinnamon-menus

The cinnamon-menu library
C
24
star
57

gtk

GTK toolkit for Betsy (master) and Mint 17.
C
22
star
58

mint-dev-tools

Python
21
star
59

mint20-beta

BETA Bug Squah Rush
21
star
60

doc-user-guide

The Linux Mint User Guide
Python
20
star
61

mintcommon

Python
20
star
62

doc-developer-guide

The Linux Mint Developer Guide
20
star
63

mintupgrade-legacy

Tool to upgrade from one LTS to another.
Python
20
star
64

gdebi

Pinned version of gdebi in Mint 18.x
Python
19
star
65

cinnamon-translations

Makefile
18
star
66

python3-xapp

Python3 Xapp Library
Python
17
star
67

mint-themes-gtk3

CSS
16
star
68

folder-color-switcher

Python
16
star
69

mint21-beta

BETA Bug Squash Rush
16
star
70

mintreport

Troubleshooting tool
Python
16
star
71

mintupload

Uploads files on the Internet
Python
16
star
72

mintlocale

Python
14
star
73

doc-troubleshooting-guide

The Linux Mint Troubleshooting Guide
Python
12
star
74

flags

Source package for iso-flag-png
12
star
75

cinnamon-themes

This is an old repository, please check https://github.com/linuxmint/mint-themes instead.
CSS
12
star
76

brand-logo

Linux Mint Logo and brand resources
11
star
77

mint19.3-beta

BETA Bug Squah Rush
10
star
78

wine-installer

Meta package and missing files for Wine
10
star
79

mint-translations

Python
10
star
80

mint20.1-beta

BETA Bug Squah Rush
9
star
81

mint21.2-beta

BETA Bug Squash Rush
9
star
82

mint-mdm-themes

JavaScript
9
star
83

xfce-panel

C
8
star
84

linuxmint.github.io

This is the content of https://projects.linuxmint.com
HTML
8
star
85

ubuntu-drivers-common

Python
8
star
86

xfce4-xapp-status-plugin

XappStatus panel applet for Xfce4
C
8
star
87

xviewer-plugins

C
8
star
88

gnome-screenshot

Patched version for Linux Mint 18, and 19.
C
7
star
89

mint20.3-beta

BETA Bug Squah Rush
7
star
90

libreoffice-style-mint

Icons for LibreOffice
7
star
91

cinnamon-bluetooth

No longer used. Please check blueberry instead.
Shell
7
star
92

mint-l-theme

Mint-L Theme
CSS
7
star
93

apturl

Python
7
star
94

mint-y-colors

Temporary project to work on colors
Python
7
star
95

mint21.1-beta

BETA Bug Squash Rush
7
star
96

libappindicator

Patched version of libappindicator (falls back to XAppStatusIcon instead of GtkStatusIcon)
C
6
star
97

xplayer-plparser

C
6
star
98

mint-upgrade-info

Metadata used to upgrade from one minor release to the next
6
star
99

lmde6-beta

BETA Bug Squash Rush
6
star
100

doc-translation-guide

The Linux Mint Translation Guide
6
star