- Saved searches
- Use saved searches to filter your results more quickly
- linuxmint/cinnamon-spices-desklets
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
- System monitor graph Desklet
- Features
- Variables to monitor (v1.3 — April 2022)
- Customizable visual elements
- Screenshots
- TODO
- Resources
- Log In To Comment!
- 28 Comments
- Weather Desklet
- Log In To Comment!
- 63 Comments
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
Desklets for the Cinnamon desktop
linuxmint/cinnamon-spices-desklets
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
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.
Each spice is given a name which uniquely identifies them.
That name is their UUID and it is unique.
The github username of the author is specified in the spice’s info.json file.
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).
- 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.
- 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.
To check if a spice with UUID satifies those requirements run the validate-spice script in this repo:
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.
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.
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
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
./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.
About
Desklets for the Cinnamon desktop
System monitor graph Desklet
Desklet to show graphs for the level of activity in various system variables including: CPU, memory, and disks. The desklet supports multiple instances with different system variables with the idea of presenting them in a uniform way.
Four instances of the Desklet in action.
Features
Variables to monitor (v1.3 — April 2022)
System variable | Description |
---|---|
CPU | CPU usage in % |
RAM | Used RAM as % of total, and in GB |
Swap | Used Swap space as % of total, and in GB |
HDD | % of I/O activity, and free and total space in the filesystem (partition) indicated by the user |
GPU Usage | GPU usage in % |
GPU Memory | GPU memory usage in % |
Each variable is calculated every Refresh interval seconds (Min. 1 s, Max. 60 s.), and the graph shows the last Duration of the graph period (Min. 30 s, Max. 60 min).
Customizable visual elements
Settings for one instance of the system monitor graph Desklet.
Screenshots
The Desklet is fully customizable.
A simple screenshot.
TODO
- [ ] Add other variables such as network, CPU and GPU temperatures, battery levels for PC and peripherals.
Resources
This is my first Desklet and the first time using JavaScript. Below, some resources that I used for the development of this Desklet.
- cinnamon-spices-desklets
- JavaScript Tutorial
- CJS: JavaScript bindings for Cinnamon
- CJS the importer
- Applet, desklet and extension settings reference and here
- GJS: JavaScript Bindings for GNOME and here
- GJS examples
- Clutter API
- Computing CPU usage
- Launching sequential processes from desklet
- On Cinnamon.get_file_contents_utf8_sync()
- Default desklet.js in Cinnamon
- Manual alpha blending
- Cairo documentation
Log In To Comment!
28 Comments
Hi, First of all I’d like to thank you for creating this very useful and customizable monitoring tool. It consumes very little resources compared to a similarly functioning conky config. I was using it to monitor CPU, MEM, GPU and Filesystems and it was working fine but as I’ve swapped my GPU from GTX 1070 to RX 590, the GPU monitor won’t work anymore, it is only having as option for NVIDIA not for AMD. I want to know that if there are any issues in my system itself or it is expected behavior? If the 2nd is true, is it possible to add AMD support to this wonderful desklet?
For the moment, the desklet does not have support for AMD GPUs. I don’t have one at hand, and I’m not sure how to monitor its status in the way nvidia-smi does for NVIDIA GPUs
Thank you very much for your response, I’ve made my own conky theme to monitor various hardwares on my PC, which includes my RX 6600 GPU. I’ve also done the same for RX 500 series GPUs. Its shows numerous parameters of my GPU like current load in %, core temp, fan speed, core and memory clock, total power etc. But conky consumes way more (CPU) resource to show them compared to your desklet. So, if you want I’m ready to share my knowledge with you which might be helpful for you. I’m not that proficient in coding to build a desklet my myself.
Weather Desklet
The Weather Desklet displays current and forecast weather on your Cinnamon desktop. It has plenty of options for configuring how it looks and comes with a selection of great weather icons, or you can use your own. For those who like to keep an eye on the weather in several locations it supports multiple instances.
At present the Weather Desklet can work with data from the BBC, Open Weather Map, Weather Underground, World Weather Online, forecast.io, meteoblue.com and weather.com (The Weather Channel).
The Weather Desklet includes translations into a growing number of languages.
For detailed usage instruction visit the Weather Desklet’s website, or just install the desklet, right click on it and select ‘Help’.
Log In To Comment!
63 Comments
in addidition to the before comment, I have now switched services to Weather Underground, inspected several times to confirm api was right, I believe I have the right location syntax, but I keep getting an error message 503 whenever it tries to make a connection. Any suggestions?
Weather Desklet performs perfectly on my copy of Linux Mint 21.1 Cinnamon, but on my friends computer, the desklet loads before the connection can be made to the server. I have disabled NetworkManager-wait-online.service, to no avail. Any suggestions? Wifi Powersave is likewise disabled