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.
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
- GTK-RS Project website
- GTK-RS Book
- GTK-RS Documentation
- GLib Documentation
- GObject Documentation
- Gio Documentation
- LibAdwaita-rs Documentation
- Gnome HIG
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).
(see System Tray for discussion)
(see Subclassing for discussion)
(see Async for discussion)
(see Signals for discussion)
The app is licensed under GPL3.0-or-later