Skip to content

sysinfo@paul163-ai: Initial submission - #1844

Open
Paul163-ai wants to merge 7 commits into
linuxmint:masterfrom
Paul163-ai:add-sysinfo-desklet
Open

sysinfo@paul163-ai: Initial submission#1844
Paul163-ai wants to merge 7 commits into
linuxmint:masterfrom
Paul163-ai:add-sysinfo-desklet

Conversation

@Paul163-ai

Copy link
Copy Markdown
Contributor

Comprehensive system monitor desklet showing CPU, RAM, Swap, GPU,
Disk, Network, Battery and Uptime with a fully transparent background.
Requires Cinnamon 5.0+. nvidia-smi optional for GPU section.

Changed the "-" character
Fixes video playback stuttering caused by multiple bash subprocesses
running on Cinnamon's JS thread each refresh cycle.

- Add sysinfo-daemon.py: collects all system stats in a separate Python
  process, writes /tmp/sysinfo-paul163.json every 2 seconds
- Desklet now does a single async JSON file read per cycle
- Daemon auto-launched by desklet with disk paths from settings
- Pidfile prevents duplicate daemon instances on Cinnamon restart
- Daemon killed cleanly when desklet is removed
@github-actions

Copy link
Copy Markdown

Best-practices scanner

This is a regex-based check for API usage that can pose security, performance or
maintainability issues, or that may already be provided by Cinnamon. Most findings
are advisory and do not automatically disqualify a pull request.

This check is not perfect and will not replace a normal review.


Found 2 potential issue(s):

⚠️ WARNING

⚠️ sync_file_load_contents

sysinfo@paul163-ai/files/sysinfo@paul163-ai/desklet.js:284

let [ok, c] = pidFile.load_contents(null);

Synchronous load_contents() blocks the main loop.
Use load_contents_async() instead.

ℹ️ INFO

ℹ️ shell_string_spawn

sysinfo@paul163-ai/files/sysinfo@paul163-ai/desklet.js:287

if (pid) GLib.spawn_command_line_async("kill " + pid);

Prefer argument vector spawn functions over shell command strings.
This is especially important when arguments include untrusted input (user data,
filenames, settings values, etc.) as shell strings are vulnerable to injection.
Static command strings are generally fine, but argv is always safer.
Use Util.spawn(["cmd", "arg1", "arg2"]) or Util.trySpawn() instead.


Automated pattern check.

Comment thread sysinfo@paul163-ai/files/sysinfo@paul163-ai/sysinfo-daemon.py Outdated
…ded /tmp

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Comment thread sysinfo@paul163-ai/files/sysinfo@paul163-ai/sysinfo-daemon.py Outdated
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants