{"id":13451935,"url":"https://github.com/linuxmint/cinnamon-spices-applets","last_synced_at":"2025-05-14T13:06:59.072Z","repository":{"id":15332271,"uuid":"77743334","full_name":"linuxmint/cinnamon-spices-applets","owner":"linuxmint","description":"Applets for the Cinnamon desktop","archived":false,"fork":false,"pushed_at":"2025-05-12T23:42:53.000Z","size":142564,"stargazers_count":657,"open_issues_count":431,"forks_count":548,"subscribers_count":38,"default_branch":"master","last_synced_at":"2025-05-13T00:30:01.926Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://cinnamon-spices.linuxmint.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/linuxmint.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-12-31T14:26:11.000Z","updated_at":"2025-05-12T23:41:58.000Z","dependencies_parsed_at":"2023-01-14T12:45:22.606Z","dependency_job_id":"f94ee3de-dc7e-442e-b587-b906045115ce","html_url":"https://github.com/linuxmint/cinnamon-spices-applets","commit_stats":{"total_commits":5784,"total_committers":398,"mean_commits":"14.532663316582914","dds":0.9166666666666666,"last_synced_commit":"9e7d9eb2d6556191eb7515427fb13fe3e82260a8"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linuxmint%2Fcinnamon-spices-applets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linuxmint%2Fcinnamon-spices-applets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linuxmint%2Fcinnamon-spices-applets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linuxmint%2Fcinnamon-spices-applets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/linuxmint","download_url":"https://codeload.github.com/linuxmint/cinnamon-spices-applets/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254149955,"owners_count":22022851,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T07:01:07.422Z","updated_at":"2025-05-14T13:06:54.061Z","avatar_url":"https://github.com/linuxmint.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# cinnamon-spices-applets\n\n![Validate spices](https://github.com/linuxmint/cinnamon-spices-applets/workflows/Validate%20spices/badge.svg)\n\nThis repository hosts all the applets available for the Cinnamon desktop environment.\n\nUsers can install spices from https://cinnamon-spices.linuxmint.com, or directly from within Cinnamon -\u003e System Settings.\n\n# Definitions\n\n## UUID\n\nEach spice is given a name which uniquely identifies them.\n\nThat name is their UUID and it is unique.\n\n## Author\n\nEach spice has an author.\n\nThe github username of the author is specified in the spice's info.json file.\n\n# File structure\n\nA spice can contain many files, but it should have the following file structure:\n\n- UUID/\n- UUID/info.json\n- UUID/screenshot.png\n- UUID/README.md\n- UUID/files/\n- UUID/files/UUID\n- UUID/files/UUID/metadata.json\n- UUID/files/UUID/applet.js\n- UUID/files/UUID/icon.png\n\nThere are two important directories:\n\n- UUID/ is the root level directory, it includes files which are used by the website and on github.\n- 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.\n\nAs 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).\n\nImportant note:\n\n- 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.\n\nAt the root level:\n\n- info.json contains information about the spice. For instance, this is the file which contains the github username of the spice's author.\n- screenshot.png is a screenshot of the spice in action.\n- 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.\n\n## Validation\n\nTo check if a spice with UUID satifies those requirements run the `validate-spice` script in this repo:\n```\n./validate-spice UUID\n```\n\n## Development\n\nTo facilitate easier testing of Applets locally, run the `test-spice` script in this repo:\n\nValidate and then copy a Spice with UUID:\n\n```bash\n./test-spice UUID\n```\n\nSkip validation (not recommended) and then copy a Spice with UUID:\n\n```bash\n./test-spice -s UUID\n```\n\nRemove all locally installed development copies of Spices:\n\n```bash\n./test-spice -r\n```\n\nNOTE: Local copies of Spices for development/testing purposes will have a `devtest-` prefix attached for easier identification and cleanup.\n\n# Rights and responsibility of the author\n\nThe author is in charge of the development of the spice.\n\nAuthors can modify their spice under the following conditions:\n\n- They need to respect the file structure and workflow defined here\n- They cannot introduce malicious code or code which would have a negative impact on the environment\n\nAuthors are able to accept or refuse changes from other people which modify the features or the look of their spice.\n\nAuthors may choose to pass on development of their applet 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.\n\nIf an author abandons their applet, the Linux Mint team will take over maintenance of the applet or pass it on to someone else. Several factors are used to determine if an applet is abandoned, including prolonged activity, failure to respond to requests, and serious breakages that have occurred due to changes in API, etc. If you plan to abandon an applet, please notify us, so we don't have to guess as to whether it is abandoned or not.\n\n# Pull requests from authors and workflow\n\nTo modify a spice, developers create a Pull Request.\n\nMembers of the cinnamon-spices-developers team review the pull request.\n\nIf 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:\n\n- The changes only impact spices which belong to that author\n- The changes respect the spices file structure\n- The changes do not introduce malicious code or code which would negatively impact the desktop environment\n\nIf everything is fine, the PR is merged, the website is updated and users can see a spice update in System Settings.\n\n# Pull requests from other people\n\nIn 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:\n\n- 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 applet works, we may wait for author approval before merging.\n- If the pull request adds translations it will likewise be merged. These are not going to effect the functionality of the code, and will make the applet 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.\n- If the author fails to respond in a reasonable time, we will assume the applet is abandoned (as mentioned above) and the pull request will be merged assuming it meets all other requirements.\n\nIf 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.\n\nIf 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.\n\n# Deletions\n\nAuthors are entitled to remove their spice.\n\nThe 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.\n\n# Additions\n\nNew spices can be added by Pull Request.\n\nThe Cinnamon team can accept or reject the addition and should give justification in the PR comments section.\n\n# Reporting Bugs and Creating Pull Requests\n\nSee the [Guidelines for Contributing](https://github.com/linuxmint/cinnamon-spices-applets/blob/master/.github/CONTRIBUTING.md).\n\n# Translations\n\nThe 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.\n\nUpdating a translation template `.pot`:\n```\n./cinnamon-spices-makepot UUID\n```\n\nTest your translations `.po` locally before uploading to Spices:\n```\n./cinnamon-spices-makepot UUID --install\n```\n\nMore info:\n```\n./cinnamon-spices-makepot --help\n```\n\n# Translations Status Tables\n\nThe 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.\n\n* [Translation Status Tables for Applets](https://github.com/linuxmint/cinnamon-spices-applets/blob/translation-status-tables/.translation-tables/tables/README.md)\n\nTo ensure that these tables are always up-to-date, they are automatically regenerated whenever a new commit is pushed to the master branch.\n\n# Javascript feature backward compatibility table\n## (incomplete)\nTo determine the backward compatibility of a javascript feature, look at it's page on [mdm web docs](https://developer.mozilla.org/en-US/docs/Web/JavaScript) to see in which version of Firefox it was introduced. Then compare with the table below.\n\n\u003ctable\u003e\u003ctr\u003e\u003cth colspan=\"1\"\u003eMint\u003cbr/\u003eVersion\u003c/th\u003e\u003cth colspan=\"1\"\u003eCodename\u003c/th\u003e\u003cth colspan=\"1\"\u003eRelease Date\u003c/th\u003e\u003cth colspan=\"1\"\u003eCinnamon\u003cbr/\u003eVersion\u003c/th\u003e\u003cth colspan=\"2\"\u003eFirefox version\u003cbr/\u003e(CJS JS engine)\u003c/th\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd colspan=\"1\"\u003e17\u003c/td\u003e\u003ctd colspan=\"1\"\u003eQiana\u003c/td\u003e\u003ctd colspan=\"1\"\u003e31 May 14\u003c/td\u003e\u003ctd colspan=\"1\"\u003e2.2.14\u003c/td\u003e\u003ctd colspan=\"1\"\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd colspan=\"1\"\u003e17.1\u003c/td\u003e\u003ctd colspan=\"1\"\u003eRebecca\u003c/td\u003e\u003ctd colspan=\"1\"\u003e29 Nov 14\u003c/td\u003e\u003ctd colspan=\"1\"\u003e2.4.6\u003c/td\u003e\u003ctd colspan=\"1\"\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd colspan=\"1\"\u003e17.2\u003c/td\u003e\u003ctd colspan=\"1\"\u003eRafaela\u003c/td\u003e\u003ctd colspan=\"1\"\u003e30 Jun 15\u003c/td\u003e\u003ctd colspan=\"1\"\u003e2.6.13\u003c/td\u003e\u003ctd colspan=\"1\"\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd colspan=\"1\"\u003e17.3\u003c/td\u003e\u003ctd colspan=\"1\"\u003eRosa\u003c/td\u003e\u003ctd colspan=\"1\"\u003e4 Dec 15\u003c/td\u003e\u003ctd colspan=\"1\"\u003e2.8.7\u003c/td\u003e\u003ctd colspan=\"1\"\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd colspan=\"1\"\u003e18\u003c/td\u003e\u003ctd colspan=\"1\"\u003eSarah\u003c/td\u003e\u003ctd colspan=\"1\"\u003e30 Jun 16\u003c/td\u003e\u003ctd colspan=\"1\"\u003e3.0.7\u003c/td\u003e\u003ctd colspan=\"1\"\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd colspan=\"1\"\u003e18.1\u003c/td\u003e\u003ctd colspan=\"1\"\u003eSerena\u003c/td\u003e\u003ctd colspan=\"1\"\u003e16 Dec 16\u003c/td\u003e\u003ctd colspan=\"1\"\u003e3.2.8\u003c/td\u003e\u003ctd colspan=\"1\"\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd colspan=\"1\"\u003e18.2\u003c/td\u003e\u003ctd colspan=\"1\"\u003eSonya\u003c/td\u003e\u003ctd colspan=\"1\"\u003e2 Jul 17\u003c/td\u003e\u003ctd colspan=\"1\"\u003e3.4.4\u003c/td\u003e\u003ctd colspan=\"1\"\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd colspan=\"1\"\u003e18.3\u003c/td\u003e\u003ctd colspan=\"1\"\u003eSylvia\u003c/td\u003e\u003ctd colspan=\"1\"\u003e27 Nov 17\u003c/td\u003e\u003ctd colspan=\"1\"\u003e3.6.7\u003c/td\u003e\u003ctd colspan=\"1\"\u003e\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd colspan=\"1\"\u003e19\u003c/td\u003e\u003ctd colspan=\"1\"\u003eTara\u003c/td\u003e\u003ctd colspan=\"1\"\u003e29 Jun 18\u003c/td\u003e\u003ctd colspan=\"1\"\u003e3.8.8\u003c/td\u003e\u003ctd colspan=\"1\" rowspan=\"5\"\u003e52\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd colspan=\"1\"\u003e19.1\u003c/td\u003e\u003ctd colspan=\"1\"\u003eTessa\u003c/td\u003e\u003ctd colspan=\"1\"\u003e19 Dec 18\u003c/td\u003e\u003ctd colspan=\"1\"\u003e4.0.9\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd colspan=\"1\"\u003e19.2\u003c/td\u003e\u003ctd colspan=\"1\"\u003eTina\u003c/td\u003e\u003ctd colspan=\"1\"\u003e2 Aug 19\u003c/td\u003e\u003ctd colspan=\"1\"\u003e4.2.3\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd colspan=\"1\"\u003e19.3\u003c/td\u003e\u003ctd colspan=\"1\"\u003eTricia\u003c/td\u003e\u003ctd colspan=\"1\"\u003e18 Dec 19\u003c/td\u003e\u003ctd colspan=\"1\"\u003e4.4.8\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd colspan=\"1\"\u003e20\u003c/td\u003e\u003ctd colspan=\"1\"\u003eUlyana\u003c/td\u003e\u003ctd colspan=\"1\"\u003e27 Jun 20\u003c/td\u003e\u003ctd colspan=\"1\"\u003e4.6.7\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd colspan=\"1\"\u003e20.1\u003c/td\u003e\u003ctd colspan=\"1\"\u003eUlyssa\u003c/td\u003e\u003ctd colspan=\"1\"\u003e8 Jan 21\u003c/td\u003e\u003ctd colspan=\"1\"\u003e4.8.6\u003c/td\u003e\u003ctd colspan=\"1\" rowspan=\"5\"\u003e78\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd colspan=\"1\"\u003e20.2\u003c/td\u003e\u003ctd colspan=\"1\"\u003eUma\u003c/td\u003e\u003ctd colspan=\"1\"\u003e8 Jul 21\u003c/td\u003e\u003ctd colspan=\"1\"\u003e5.0.5\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd colspan=\"1\"\u003e20.3\u003c/td\u003e\u003ctd colspan=\"1\"\u003eUna\u003c/td\u003e\u003ctd colspan=\"1\"\u003e7 Jan 22\u003c/td\u003e\u003ctd colspan=\"1\"\u003e5.2.7\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd colspan=\"1\"\u003e21\u003c/td\u003e\u003ctd colspan=\"1\"\u003eVanessa\u003c/td\u003e\u003ctd colspan=\"1\"\u003e31 Jul 22\u003c/td\u003e\u003ctd colspan=\"1\"\u003e5.4.12\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd colspan=\"1\"\u003e21.1\u003c/td\u003e\u003ctd colspan=\"1\"\u003eVera\u003c/td\u003e\u003ctd colspan=\"1\"\u003e20 Dec 22\u003c/td\u003e\u003ctd colspan=\"1\"\u003e5.6.8\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd colspan=\"1\"\u003e21.2\u003c/td\u003e\u003ctd colspan=\"1\"\u003eVictoria\u003c/td\u003e\u003ctd colspan=\"1\"\u003e16 Jul 23\u003c/td\u003e\u003ctd colspan=\"1\"\u003e5.8.4\u003c/td\u003e\u003ctd colspan=\"1\" rowspan=\"2\"\u003e102\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd colspan=\"1\"\u003e21.3\u003c/td\u003e\u003ctd colspan=\"1\"\u003eVirginia\u003c/td\u003e\u003ctd colspan=\"1\"\u003e12 Jan 24\u003c/td\u003e\u003ctd colspan=\"1\"\u003e6.0.4\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd colspan=\"1\"\u003e22\u003c/td\u003e\u003ctd colspan=\"1\"\u003eWilma\u003c/td\u003e\u003ctd colspan=\"1\"\u003e25 Jul 24\u003c/td\u003e\u003ctd colspan=\"1\"\u003e6.2.9\u003c/td\u003e\u003ctd colspan=\"1\" rowspan=\"2\"\u003e115\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd colspan=\"1\"\u003e22.1\u003c/td\u003e\u003ctd colspan=\"1\"\u003eXia\u003c/td\u003e\u003ctd colspan=\"1\"\u003e16 Jan 25\u003c/td\u003e\u003ctd colspan=\"1\"\u003e6.4.8\u003c/td\u003e\n\u003c/table\u003e\n\n*Mint 20 series is officially supported until Apr 2025, 21 series until May 2027, and 22 series until Apr 2029. Earlier versions official support has ended.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinuxmint%2Fcinnamon-spices-applets","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinuxmint%2Fcinnamon-spices-applets","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinuxmint%2Fcinnamon-spices-applets/lists"}