Skip to content

Commit d4add14

Browse files
authored
NVIDIA Monitor Applet for Cinnamon (#8278)
* NVIDIA Monitor Applet for Cinnamon - A friendly panel applet that keeps your NVIDIA GPU stats visible at a glance. It runs smoothly in both horizontal and vertical panels, and you can switch between text and graph (pie) styles — or mix them. * Add source repository URL to NVIDIA Monitor Applet info.json * v1.0.1: details in Changelog
1 parent f1dd0a0 commit d4add14

34 files changed

+15224
-0
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Changelog
2+
3+
## [v1.0.1] - 2026-02-07
4+
5+
### Added
6+
7+
- Modularized graphing logic into new `colored_graph.py` module containing `DataSeries`, `DataCairoAxis`, `DataCairoGrid`, and `DataCanvas`.
8+
- `MonitorNav` class in `monitor.py` to encapsulate application state and logic.
9+
- `AppletArgs` dataclass for cleaner configuration and argument parsing.
10+
- `pyproject.toml` for project metadata and python dependency management.
11+
- Development tools including `mypy`, `pylint`, `flake8`, and `ruff` configuration.
12+
- `dev_utils/setup_stubs.py` utility script for installing GTK stubs.
13+
- Comprehensive type hinting and docstrings for better developer experience.
14+
15+
### Changed
16+
17+
- Refactored `monitor.py` to move drawing logic to `colored_graph.py` and implement an object-oriented architecture.
18+
19+
## [v1.0.0] - 2026-02-04
20+
21+
### Added
22+
23+
First functional implementation

nvidia-monitor@kalin91/LICENSE

Lines changed: 674 additions & 0 deletions
Large diffs are not rendered by default.

nvidia-monitor@kalin91/README.md

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
# NVIDIA Monitor Applet for Cinnamon
2+
3+
A friendly panel applet that keeps your NVIDIA GPU stats visible at a glance. It runs smoothly in both horizontal and vertical panels, and you can switch between text and graph (pie) styles — or mix them.
4+
5+
## Features
6+
7+
The applet shows GPU temperature, memory usage, utilization, and fan speed. Each metric can be shown as text or a compact pie chart in the panel, and you can toggle any metric on or off. A separate monitor window provides a live graph with time axis, guide lines, and hover tooltips.
8+
9+
![Panel overview](https://raw.githubusercontent.com/kalin91/assets/master/nvidia_monitor/readme/text.png)
10+
11+
## Usage
12+
13+
Click the applet to open its menu. From there you can open the monitor window or jump directly to either settings page. The applet also keeps a small history so the monitor graph fills instantly when you open it.
14+
15+
![Context menu](https://raw.githubusercontent.com/kalin91/assets/master/nvidia_monitor/readme/Menu.png)
16+
17+
## Requirements
18+
19+
- NVIDIA Drivers installed
20+
- `nvidia-smi` command available in path
21+
22+
## Applet display modes (text and graph, horizontal and vertical)
23+
24+
In the panel, each metric can be displayed as text or as a pie chart. Temperature is always shown as text, while Memory, GPU, and Fan can be text or pie. You can mix styles (for example, text temperature + pie GPU + text memory). If all metrics are disabled, a small placeholder label appears so the applet is still visible.
25+
26+
Horizontal panels show full inline text like “Used / Total MiB” for memory. Vertical panels switch to compact vertical labels and percentages so everything stays readable.
27+
28+
|Horizontal| | |
29+
|-|--|--|
30+
|| <img src="https://raw.githubusercontent.com/kalin91/assets/master/nvidia_monitor/readme/text.png" alt="Text mode" height="60"> | <img src="https://raw.githubusercontent.com/kalin91/assets/master/nvidia_monitor/readme/alternate-remove.png" alt="Mixed text and graph" height="60"> |
31+
32+
|Vertical| | |
33+
|-|--|--|
34+
|| <img src="https://raw.githubusercontent.com/kalin91/assets/master/nvidia_monitor/readme/vertical.png" alt="Vertical mixed mode" width="60"> | <img src="https://raw.githubusercontent.com/kalin91/assets/master/nvidia_monitor/readme/vertical-text.png" alt="Vertical text mode" width="60"> |
35+
36+
## Context menu options
37+
38+
The menu includes:
39+
Open Monitor Graph, which launches the graph window; Applet Settings and Monitor Settings, which open each settings page; and Reset All Settings, which restores defaults.
40+
41+
![Menu options](https://raw.githubusercontent.com/kalin91/assets/master/nvidia_monitor/readme/Menu.png)
42+
43+
Reset All Settings shows a confirmation dialog before applying the reset.
44+
45+
![Reset confirmation](https://raw.githubusercontent.com/kalin91/assets/master/nvidia_monitor/readme/reset-msg.png)
46+
47+
## Settings and customization
48+
49+
### Applet settings
50+
51+
These options control how the panel applet looks and updates:
52+
53+
| Setting | What it does |
54+
| --- | --- |
55+
| Refresh Interval | How often GPU stats are updated. Shorter intervals feel more live but use a little more CPU. |
56+
| NVIDIA‑SMI Output Encoding | Selects the character encoding used for reading `nvidia-smi` output. Useful for non‑UTF‑8 locales. |
57+
| Applet Border Color | Draws a border around the applet (set alpha to 0 to hide it). |
58+
| Show Temperature | Toggles the temperature label in the panel. |
59+
| Temperature Unit | Celsius or Fahrenheit for the panel temperature label. |
60+
| Show Memory Usage | Toggles memory usage in the panel. |
61+
| Memory Display Mode | Text (Used / Total) or Pie Chart for memory. |
62+
| Show GPU Utilization | Toggles GPU utilization in the panel. |
63+
| GPU Display Mode | Text (Percent) or Pie Chart for GPU usage. |
64+
| Show Fan Speed | Toggles fan speed in the panel. |
65+
| Fan Display Mode | Text (Percent) or Pie Chart for fan speed. |
66+
67+
![Applet border example](https://raw.githubusercontent.com/kalin91/assets/master/nvidia_monitor/readme/border.png)
68+
69+
### Monitor settings
70+
71+
These options customize the separate monitor window. Changes take effect after restarting the monitor window (if it’s open, it will briefly restart to apply new settings).
72+
73+
| Setting | What it does |
74+
| --- | --- |
75+
| Temperature / Memory / GPU / Fan Colors | Line colors used by each metric in the graph and labels. |
76+
| Background Color | The graph background color. |
77+
| Temperature Axis Color | Color for the temperature axis labels. |
78+
| Percentage Axis Color | Color for the % axis labels (GPU/Mem/Fan). |
79+
| X‑Axis Color | Color for the time labels at the bottom. |
80+
| Guidelines Color | Color of the grid/guide lines. |
81+
| Y‑Axis Guides | Number of horizontal guide lines for the Y‑axis. |
82+
| Y‑Axis Temperature Unit | Celsius or Fahrenheit for the temperature axis. |
83+
| X‑Axis Guides | Number of vertical guide lines for the X‑axis. |
84+
| X‑Axis Unit | Time unit for the X‑axis (Seconds, Minutes, Hours). |
85+
| X‑Axis Length | How much history the graph displays (based on the selected unit). |
86+
87+
![Custom monitor colors](https://raw.githubusercontent.com/kalin91/assets/master/nvidia_monitor/readme/custom_monitor.png)
88+
89+
## Monitor window
90+
91+
The monitor window opens next to the panel and its initial position adapts to the panel edge (top, bottom, left, or right). After it opens, it behaves like a normal independent window — you can move it wherever you want. If you open the monitor while it is already open, it is brought to the front. On multi‑desktop setups, if the monitor is on another workspace, you’ll need to switch to that workspace or move the window yourself.
92+
93+
It shows a live time graph with dual Y‑axes (temperature and percent), customizable grid lines, and a time axis labeled from “Now” back to the selected history length. When you uncheck a metric, its line disappears and the corresponding axis labels are hidden (temperature axis for temperature, percentage axis for GPU/Mem/Fan).
94+
95+
Hover over the graph to see a tooltip with the exact time and values. You can also toggle any metric line on or off directly in the window using the checkboxes.
96+
97+
![Monitor window](https://raw.githubusercontent.com/kalin91/assets/master/nvidia_monitor/readme/Monitor.png)
98+
99+
![Metric toggles in monitor](https://raw.githubusercontent.com/kalin91/assets/master/nvidia_monitor/readme/unmark-monitor.png)
100+
101+
The applet keeps a running history while it’s active. The monitor graph displays the last X‑Axis Length window (seconds/minutes/hours), and the background history keeps growing until it reaches its limit, then the oldest chunk is purged in blocks (about 30 minutes at a time). To clear the history completely, reload the applet or restart Cinnamon.
102+
103+
## Available languages
104+
105+
Catalan, Danish, German, Greek, Spanish, Finnish, French, Croatian, Hungarian, Icelandic, Italian, Japanese, Dutch, Portuguese, Romanian, Russian, Swedish, Turkish, Chinese (Simplified), Chinese (Traditional)
106+
107+
## License
108+
109+
GPL‑3.0 (see LICENSE for the full text).

0 commit comments

Comments
 (0)