Skip to content

Latest commit

 

History

History
103 lines (74 loc) · 4.16 KB

File metadata and controls

103 lines (74 loc) · 4.16 KB

SysInfo

A lightweight Windows system tray monitor. SysInfo draws small live bar graphs directly into the notification area — one icon per metric — so you can watch CPU, memory, disk, and network activity at a glance without keeping a window open. It's inspired by Hexagora's "Performance Monitor" (DavPerf).

SysInfo's four graphs in the Windows notification area

  • Tiny footprint — around 60 MB working set and a fraction of a percent of one CPU core, idle.
  • One icon per metric — CPU, memory, disk throughput, and network throughput, each a live scrolling bar graph.
  • Sharp at any DPI — icons are rendered at the exact size Windows draws them, so the bars stay crisp instead of being resampled to a blur.
  • Configurable — pick a colour per graph and a fixed scale for the disk and network graphs, or let them auto-scale.
  • Coexists with shell replacements — uses only the standard tray API, so it works alongside tools like Start11 without hooking the taskbar.

Windows 11 is the target platform.

Install

Download or build SysInfo.exe (see Building from source), then put it somewhere stable — a per-user location like %LOCALAPPDATA%\Programs\SysInfo needs no administrator rights:

dotnet publish src/SysInfo -c Release -r win-x64 --self-contained false -p:PublishSingleFile=true -o "$env:LOCALAPPDATA\Programs\SysInfo"

This build is ~0.2 MB and needs the .NET 8 Desktop Runtime on the machine. For a standalone build that bundles the runtime (~160 MB, no install needed), see Building from source.

Run SysInfo.exe and its graphs appear in the notification area.

First run: the icons may be hidden. Windows starts tray icons from an unfamiliar app in the hidden overflow flyout (the ^ arrow). Drag them out onto the taskbar once, or enable them under Settings → Personalisation → Taskbar → Other system tray icons, and Windows remembers.

Start with Windows

Right-click any graph → Settings → tick Start with WindowsOK. This adds the app to your per-user startup (the HKCU Run key) — no elevation, nothing system-wide. Tick it from the installed copy, not from a build output folder, since it registers whichever executable is currently running.

Configuration

Right-click any graph and choose Settings:

  • Colour — click a metric's swatch to pick its bar colour.
  • Disk max / Network max — a fixed scale in MB/s for the throughput graphs. Leave a field empty to auto-scale against recent activity. A fixed ceiling keeps a bar's height meaning the same rate from one moment to the next, which is usually what you want.

Settings are stored as JSON in %AppData%\SysInfo\settings.json.

Building from source

Requires the .NET 8 SDK.

# Build
dotnet build

# Run in the foreground (for manual testing)
dotnet run --project src/SysInfo

# Standalone single-file build — bundles the runtime, no install needed (~160 MB)
dotnet publish src/SysInfo -c Release -r win-x64 --self-contained -p:PublishSingleFile=true -p:PublishReadyToRun=true

Kill any running instance before building — the executable locks itself, otherwise the build fails.

How it works

SysInfo is a windowless WinForms app: there's no main window, only tray icons. Each metric is sampled once a second and drawn as a bar chart into a tray-sized bitmap. CPU and memory read Windows performance counters (memory via GlobalMemoryStatusEx, matching Task Manager); disk and network sum throughput in bytes/sec across all drives and physical adapters. A single timer drives every graph.

For the design decisions and the reasoning behind them, see ARCHITECTURE.md.

Contributing

Issues and pull requests are welcome. Adding a new metric is deliberately small: implement IMetricMonitor, add settings for it, and register it in TrayApplicationContext. The steps are described under "Adding a metric" in ARCHITECTURE.md.

License

Released under the MIT License.