Releases: yassine20011/kvitals
Releases · yassine20011/kvitals
v2.4.0
Added
- Custom Font Color: Override the widget font color to match your panel theme (#20). Configurable via the new Colors settings tab.
- Threshold-Based Coloring: Metric values dynamically change color when they exceed configurable warning/critical thresholds (#12). Supported metrics:
- CPU usage (default: warning 70%, critical 90%)
- CPU temperature (default: warning 60°C, critical 85°C)
- RAM usage (default: warning 70%, critical 90%)
- GPU usage (default: warning 70%, critical 90%)
- GPU temperature (default: warning 60°C, critical 85°C)
- Battery level (inverted: warning below 30%, critical below 15%)
- Colors Config Tab: New settings page with color pickers for font/warning/critical colors and per-metric threshold sliders.
- Sensor modules now expose raw numeric values (
cpuNumericValue,tempNumericValue,ramPercentage,batNumericValue) for threshold comparison. Utils.resolveColor()function for flexible threshold-triggered color resolution.
Fixed
- Fixed the Colors tab color picker turning white after selecting a color; it now uses a stable native platform color dialog and preserves the selected swatch correctly.
Notes
- Network and Power metrics are excluded from threshold coloring (no meaningful universal threshold).
- Both features are opt-in — disabled by default. Existing users are unaffected.
v2.3.0
Changed
- Sensor Module Architecture: Extracted all sensor logic from
main.qmlinto dedicated QML components undercontents/ui/sensors/:CpuSensors.qml— CPU usage monitoringMemorySensors.qml— RAM usage monitoringTempSensors.qml— CPU temperature monitoringGpuSensors.qml— GPU usage, VRAM, and temperature monitoringBatterySensors.qml— Battery and power monitoring with auto-detectionNetworkSensors.qml— Network download/upload speed monitoringUtils.qml— Shared formatting helpers (byte formatting, rate formatting)
- View Separation: Extracted compact and full representations into
CompactView.qmlandFullView.qml. - Reduced
main.qml: From ~700 lines to ~140 lines — now acts purely as an orchestrator.
Notes
- No user-facing or configuration changes. The widget behaves identically to v2.2.1.
- This refactor improves maintainability and makes it easier to add new sensor types in the future.
v2.2.1
Fixed
- Battery Detection Hotfix: Replaced
SensorTreeModelwith a crash-free Two-Stage Hybrid Detection system (#14):- Stage 1 (Silent Probe): Silently probes common battery paths (
BAT0,BAT1,BATT, etc.) for instant detection without running any subprocesses. - Stage 2 (Fallback): If no standard battery is found, falls back to a single
qdbusquery to list all sensors, completely avoidingPlasmaCore.DataSourcefile descriptor leaks. Includes a manual config fallback ifqdbusis unavailable.
- Stage 1 (Silent Probe): Silently probes common battery paths (
v2.2.0
Added
- Custom Metric Order: Added a new configuration option to arrange metrics (CPU, RAM, GPU, etc.) individually in whatever order you prefer (#7).
- Dynamic Battery Detection: Replaced hardcoded
BAT0/BAT1sensors with dynamicSensorTreeModeldiscovery. The widget will now automatically find any battery your system has (BAT0, BATT, CMB0, macsmc-battery, etc.) (#14).
v2.1.1
v2.1.0
Added
- GPU Metrics Support: Added VRAM usage and GPU temperature monitoring to the widget.
- GPU data is retrieved natively using KDE KSysGuard sensors (
org.kde.ksysguard.sensors).
v2.0.0
Changed
- Major Architecture Overhaul: Replaced the previous
sys-stats.shbackend with native KDE KSysGuard sensors (org.kde.ksysguard.sensors). - Completely eliminates "file descriptor leak" crashes (Issue #8) and improves overall performance by relying directly on the
ksystemstatsD-Bus daemon instead of constantly spawning bash processes. - Automatic fallback for battery monitoring (BAT0 and BAT1) logic implemented directly in QML.
v1.4.1
Fixed
- RAM usage showing empty on non-English locales —
freetranslates itsMem:header based on locale, causing the parser to match nothing - Switched RAM data source from
free -bto/proc/meminfo(locale-independent, faster, more accurate)
v1.4.0
What's Changed
Added
- Display mode setting — choose between Text, Icons, or Icons + Text for the panel
- Custom icon picker — select icons from your installed theme for each metric (via KDE's native icon picker)
- Icon size slider — adjust icon size (8–24px) when using icon mode
- Font customization — choose any system font and font size for the panel text
- Settings tabs — split configuration into General, Metrics, and Icons tabs
- Reset to defaults button on the Icons tab
- CHANGELOG.md — version history
- Documentation — MkDocs site with installation, configuration, architecture, contributing, and troubleshooting guides