A comprehensive, lightweight, always-on-top system resource monitor for Windows, built with C++ and Qt. Monitor your system's performance with a customizable overlay that stays visible over all applications.
- CPU Load (%): Real-time processor utilization
- Memory Usage (%): System memory utilization percentage
- Detailed RAM Usage: Used/Total memory in MB
- Physical Disk Activity (%): Disk I/O utilization
- GPU Load (%): Highest utilization across all GPU engines
- FPS Estimation: Estimated frame rate based on system performance
- Network Activity: Real-time download and upload speeds (MB/s)
- Daily Data Usage: Internet usage tracking in MB per day
- CPU Temperature: Processor temperature monitoring (when available)
- GPU Temperature: Graphics card temperature (vendor-specific)
- Active Processes: Count of running system processes
- System Uptime: How long the system has been running
- CPU Temperature: Monitors the temperature of the CPU.
- GPU Temperature: Monitors the temperature of the GPU.
- Vendor Agnostic: Uses LibreHardwareMonitor to support a wide range of hardware (Intel, AMD, NVIDIA).
- Layout Options: Choose between vertical or horizontal layout orientations
- Font Customization: Adjustable font size (8-24px) and color
- Background Styling: Customizable background color and opacity (0-255)
- Selective Display: Show/hide individual metrics as needed
- Icon Integration: Each metric displays with a distinctive icon
- Visual Effects: Text includes subtle drop shadows for readability
- Update Frequency: Configurable refresh interval (250ms - 5000ms)
- Persistent Settings: Saves your preferences and window position automatically
- Smart Daily Tracking: Network usage resets daily with 30-day history cleanup
- Performance Optimized: Efficient Windows PDH API integration
- Always-On-Top: Stays visible over all other windows, including Start Menu and Task Manager
- Frameless Design: Clean, minimalist interface that doesn't obstruct your workflow
- Draggable: Click and drag to position anywhere on your screen
- Context Menu: Right-click for quick access to settings and exit options
- Scrollable Settings: Organized settings dialog with grouped options
- Move Overlay: Left-click and drag to reposition the overlay anywhere on screen
- Access Settings: Right-click the overlay to open the context menu
- Customize Display: Use the Settings dialog to configure which metrics are shown
- Adjust Appearance: Modify colors, fonts, opacity, and layout orientation
- Layout orientation (Vertical/Horizontal)
- Font size and color selection
- Background color and opacity control
Toggle visibility for each metric:
- Core metrics: CPU, Memory, RAM, Disk, GPU (enabled by default)
- Extended metrics: FPS, Network speeds, Daily usage, Temperatures, Processes, Uptime (disabled by default)
- Update interval configuration
- Performance optimization settings
- Visual Studio: Download with "Desktop development with C++" and ".NET desktop development" workloads.
- .NET SDK: Download (version 6.0 or later).
- CMake: Download from cmake.org
- Qt 6: Download the Qt Online Installer
- Select Qt 6.x version for MSVC 2019/2022 64-bit
- Ensure Qt Widgets module is included
-
Clone the repository:
git clone https://github.com/op30mmd/winsys-overlay.git cd winsys-overlay -
Create and navigate to the build directory:
mkdir build cd build -
Configure the project with CMake: Make sure to point to your Qt installation path.
# Replace with your actual Qt installation path cmake .. -DCMAKE_PREFIX_PATH="C:\path\to\Qt\6.x.x\msvcxxxx_64"
-
Build the application: This single command builds both the C++ application and the C# helper, and places all necessary files in the
build/bin/Releasedirectory.cmake --build . --config Release
The project includes GitHub Actions workflow for automated building:
- Supports self-hosted Windows runners
- Automatic dependency resolution with windeployqt
- Optional UPX compression for smaller executables
- Automated releases on version tags
- Hybrid C++/C# Approach: The core application is built with C++ and Qt for performance and a native feel, while temperature monitoring is handled by a separate C# helper process.
- LibreHardwareMonitor Integration: The C#
TempReader.exeutility uses theLibreHardwareMonitorLib.dllto query CPU and GPU temperatures, supporting a wide range of hardware from vendors like Intel, AMD, and NVIDIA. - Inter-Process Communication: The main C++ application launches
TempReader.exein the background, capturing its standard output to retrieve temperature data. This isolates the .NET environment from the main application, minimizing dependencies. - Windows PDH API: Native Performance Data Helper for efficient system metrics for all other data points.
- Multi-Query Design: Separate PDH queries for CPU, Disk, GPU, Network, and Temperature monitoring
- Smart Caching: Optimized data collection to minimize system impact
- Wildcard Counter Expansion: Automatically detects available GPU engines and network interfaces
- QSettings Integration: Cross-platform settings storage
- Daily Usage Tracking: Persistent network usage with automatic cleanup
- Position Memory: Remembers overlay position between sessions
- Always-On-Top Enforcement: Periodic re-assertion of topmost window status
- Transparent Background: Native transparency support with customizable opacity
- System API Integration: Direct Windows API calls for enhanced functionality
The overlay is designed to be lightweight and efficient:
- Minimal CPU Impact: Optimized update cycles and efficient API usage
- Memory Efficient: Smart counter management and automatic cleanup
- Configurable Updates: Adjustable refresh rates to balance accuracy and performance
- GPU Monitoring: Non-intrusive GPU utilization tracking across all engines
Contributions are welcome! Areas for potential enhancement:
- Additional system metrics
- Theme and styling improvements
- Cross-platform support expansion
- Performance optimizations
Please feel free to open issues for bug reports or feature requests, and submit pull requests for improvements.
This project is licensed under the MIT License. See the LICENSE file for details.
- OS: Windows 10/11 (64-bit recommended)
- Runtime: Visual C++ Redistributable 2019/2022
- Memory: Minimal system impact (< 50MB RAM)
- Permissions: Standard user privileges (no administrator rights required)