A production-ready Windows desktop widget that displays real-time system metrics (CPU, GPU, temperatures, FPS, power) in an elegant, frameless panel that docks on the right side of your screen.
- Frameless, transparent widget with rounded corners and subtle shadows
- Always-on-top without stealing focus
- Adaptive theme that extracts colors from your current wallpaper
- Live metrics updated every 500ms:
- CPU usage % and temperature °C
- GPU usage % and temperature °C
- Overall temperature (max of CPU, GPU, motherboard/VRM)
- FPS (auto-shows when gaming, hidden otherwise)
- PSU Power or Estimated System Power
- Click-through mode toggle via tray icon
- Multiple sensor sources with automatic fallback:
- HWiNFO Shared Memory (primary)
- RTSS Shared Memory (for FPS)
- NVML (NVIDIA GPU fallback)
- PerformanceCounter (CPU usage fallback)
- Windows 10/11
- .NET 8.0 Runtime
- For best results:
- HWiNFO64 with Shared Memory enabled (Settings → Safety → Shared Memory Support)
- Provides CPU/GPU temperatures, usage, and power data
- RTSS (RivaTuner Statistics Server) for FPS monitoring
- Required for FPS monitoring: HWiNFO64 can display FPS in its OSD, but the FPS data comes from RTSS shared memory
- Both HWiNFO64 and RTSS must be running for FPS monitoring to work
- Download: https://www.guru3d.com/files-details/rtss-rivatuner-statistics-server-download.html
- NVIDIA GPU with NVML drivers (for fallback GPU monitoring)
- HWiNFO64 with Shared Memory enabled (Settings → Safety → Shared Memory Support)
-
Build the application:
.\publish.ps1
Or manually:
dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true
-
Copy the
publishfolder frombin\Release\net8.0-windows\win-x64\publish\to your desired installation location (e.g.,C:\Program Files\SideHUD) -
Run
SideHUD.exeonce - it will automatically register for Windows startup on first run -
Restart your PC to verify auto-startup works
- Ensure you have .NET 8.0 SDK installed
- Open a terminal in the project directory
- Run:
dotnet restore dotnet build dotnet run
Note: For detailed installation instructions, see INSTALL.md
Edit appsettings.json to customize:
Opacity: Window opacity (0.0 - 1.0)FontSize: Text size in pointsRightMarginPx: Margin from right edgeTempWarn: Temperature warning threshold (°C)TempHot: Temperature hot threshold (°C)OverheadWatts: Power overhead for estimated system powerThemeMode: "AutoFromWallpaper", "ForceDark", or "ForceLight"SaturationBoost: Color saturation boost (0.0 - 1.0)TintOpacity: Background tint opacity (0.0 - 1.0)UpdateIntervalMs: Sensor update interval in milliseconds
- Launch the application
- The widget appears on the right side of your primary display
- Right-click the tray icon to access:
- Toggle Click-through
- Toggle Always on Top
- Re-sample Wallpaper Colors
- Reload Sensors
- Exit
- The widget automatically adapts to wallpaper changes
- FPS row only appears when a 3D game is active (RTSS detected)
- Temperature colors: Green (< 70°C), Orange (70-85°C), Red (> 85°C)
- Window does not appear in Alt+Tab
- Click-through mode allows mouse events to pass through to desktop
- No sensor data: Ensure HWiNFO64 is running with Shared Memory enabled
- Open HWiNFO64 → Settings → Safety → Enable "Shared Memory Support"
- Make sure the Sensors window is open in HWiNFO64
- No FPS: Both HWiNFO64 and RTSS must be running for FPS monitoring
- HWiNFO64 provides hardware sensor data (CPU/GPU temps, usage, power)
- RTSS provides FPS data via shared memory
- HWiNFO64 can display FPS in its OSD, but the FPS data comes from RTSS
- Make sure RTSS is running and OSD is enabled in RTSS settings
- Start a game to see FPS values
- GPU data missing: Try enabling HWiNFO or ensure NVIDIA drivers are installed for NVML fallback
- Theme not updating: Use "Re-sample Wallpaper Colors" from tray menu