Smart NVIDIA Driver Manager & System Monitor for Linux
Features β’ Installation β’ Building β’ Contributing β’ License
ro-Control is a native KDE Plasma desktop application built with C++20 and Qt6/QML that simplifies NVIDIA GPU driver management and system monitoring on Linux. It provides a modern, Plasma-native interface for installing, updating, and monitoring graphics drivers β with full PolicyKit integration for secure privilege escalation.
ro-Control is an active desktop utility for Fedora-first NVIDIA driver workflows. The current codebase focuses on:
- Native Qt/QML desktop UX instead of wrapper scripts
- Safe driver lifecycle operations through PolicyKit and DNF
- Practical diagnostics for GPU, CPU, and RAM telemetry
- English source strings with complete Turkish runtime localization
- Persistent interface preferences with explicit
System / Light / Darktheme selection
It does not currently implement hybrid graphics switching, fan control, or overclocking.
ro-Control is intended to be the NVIDIA operations and diagnostics surface for the broader Project Ro ASD / ro-ASD OS ecosystem. The repository is structured so it can be:
- Shown on the organization profile as a flagship desktop utility
- Built and packaged independently from the operating system image
- Used both interactively from the GUI and programmatically from the CLI
- Extended cleanly through separate backend, frontend, packaging, and translation layers
- One-click install β NVIDIA driver setup via RPM Fusion (
akmod-nvidia) - Driver update β Detect and apply newer driver versions
- Clean removal β Remove old driver artifacts to prevent conflicts
- Secure Boot β Detection and warnings for unsigned kernel modules
- Real-time GPU temperature, load, and VRAM usage when
nvidia-smiis available - CPU load tracking with temperature probing via sysfs, hwmon, and
sensors - RAM usage monitoring via
/proc/meminfowithfreefallback - Color-coded progress indicators
- Wayland support β Automatic
nvidia-drm.modeset=1GRUB configuration - PolicyKit integration β Secure privilege escalation without running as root
- Persistent shell preferences β Saved theme mode, density, and diagnostics visibility
The easiest way to develop ro-Control rapidly on Fedora is using the provided dev-watch.sh script, which automatically rebuilds and restarts the application on file save:
# Setup Fedora dependencies
./scripts/fedora-bootstrap.sh
# Start the live development watcher
./scripts/dev-watch.shNote: If you launch the tool on a system without a working NVIDIA driver or encounter
libEGLerrors, UI elements may overlap. Thedev-watch.shscript detects this and automatically exportsQT_XCB_GL_INTEGRATION=noneto force software rendering as a fallback.
- Runtime locale loading with Qt translations (
.ts/.qm) - Shipped runtime locales: English and Turkish
- Extensible translation workflow for additional languages
ro-control helpfor usagero-control versionfor application versionro-control statusfor concise system and driver statero-control diagnostics --jsonfor machine-readable diagnosticsro-control driver install|remove|update|deep-cleanfor scripted driver management- Installed
man ro-controlpage and Bash/Zsh/Fish shell completions
- Backend unit tests for detector, updater, monitor, preferences, CLI, and system integration flows
- QML integration coverage for
DriverPagestate synchronization - Translation release target for shipped locales
Supported well today:
- Fedora-oriented NVIDIA driver install, update, and cleanup workflows
- Driver-state inspection and diagnostics export
- Monitor dashboard for live CPU/GPU/RAM status
- App packaging metadata, shell completions, and man page support
Deliberately out of scope for now:
- Windows support
- Non-Qt frontends
- Advanced GPU tuning or gaming overlay features
Preview assets are available under docs/screenshots/.
Additional PNG screenshots should be added before wider store distribution.
Download the latest Fedora .rpm from Releases and choose the package that matches your machine architecture (x86_64 or aarch64):
sudo dnf install ./ro-control-*.rpmSee docs/BUILDING.md for full instructions.
Fedora quick bootstrap:
./scripts/fedora-bootstrap.shFor Fedora-specific runtime notes, see docs/FEDORA.md.
ro-control help
ro-control version
ro-control status
ro-control diagnostics --json
ro-control driver install --proprietary --accept-license
ro-control driver updateQuick start:
# Install dependencies
sudo dnf install cmake extra-cmake-modules gcc-c++ \
qt6-qtbase-devel \
qt6-qtdeclarative-devel \
qt6-qttools-devel \
qt6-qtwayland-devel \
kf6-qqc2-desktop-style \
polkit-devel
# Clone and build
git clone https://github.com/Project-Ro-ASD/ro-Control.git
cd ro-Control
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
# Install
sudo make installro-Control/
βββ src/
β βββ backend/ # C++ business logic
β β βββ nvidia/ # Driver detection, install, update
β β βββ monitor/ # GPU/CPU/RAM statistics
β β βββ system/ # Polkit, DNF, command runner
β βββ qml/ # Qt Quick UI
β β βββ pages/ # Main application pages
β β βββ components/ # Reusable UI components
β βββ main.cpp
βββ data/ # Icons, .desktop, PolicyKit, AppStream
βββ packaging/rpm/ # RPM packaging
βββ docs/ # Architecture and build docs
βββ tests/ # Unit tests
βββ CMakeLists.txt
Contributions are welcome! Please read CONTRIBUTING.md before submitting a pull request. For release flow details, see docs/RELEASE.md. For localization scaffolding, see i18n/README.md. For architecture details, see docs/ARCHITECTURE.md. For usage questions and issue routing, see SUPPORT.md.
Quick contribution flow:
git checkout dev
git checkout -b feature/your-feature-name
# ... make your changes ...
git commit -m "feat: describe your change"
git push origin feature/your-feature-name
# Open a Pull Request β dev| Component | Minimum Version |
|---|---|
| Qt | 6.6+ |
| CMake | 3.22+ |
| GCC | 13+ (C++20) |
| GPU | NVIDIA (any) |
This project is licensed under the GNU General Public License v3.0.