Skip to content

A gtk-rs app for interacting with Nvidia GPU management interfaces like nvidia-settings and nvidia-smi.

License

Notifications You must be signed in to change notification settings

derenv/gtk4-nvidia-monitor-rust

wakatime CI Test Coveragedependency statusLicense: GPL v3.0+

Description

Intended as a rewrite of gnome-nvidia-extension as a practise Rust project, this app has developed from a system tray style app into a gtk-rs app for interacting with GPU management interfaces like Nvidia's nvidia-settings, nvidia-smi and optimus. This includes viewing statistics like temperature, clock speeds, VRAM usage but also setting fan-profiles and GPU overclocks (like GreenWithEnvy, a major inspiration for this app).

The intention is to provide an alternative to both GPU monitoring and overclocking software like GreenWithEnvy and system tray monitoring programs/extensions like gnome-nvidia-extension. Hopefully the app can be extended to AMD's equivalent GPU management interfaces (if they exist) at some point (see the Roadmap for the rest of the plan for this app).

The app is written entirely in gtk-rs, using gtk4 and libadwaita.

Usage

To first install/update the settings schema, use the following:

bash install_schemas.sh

Then, use the following to compile the project:

cargo clean; cargo build

Finally, run the app:

cargo run

Resources

Applications

Documentation

Git

Crates

GTK libraries

Examples & Discussion

These are intended as pointers for others creating gtk-rs projects, as they took a while to wrap my head around (or i haven't yet).

System Tray Library

(see System Tray for discussion)

Subclassing

(see Subclassing for discussion)

Async

(see Async for discussion)

Signals

(see Signals for discussion)

License

The app is licensed under GPL3.0-or-later

About

A gtk-rs app for interacting with Nvidia GPU management interfaces like nvidia-settings and nvidia-smi.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Languages