Skip to content

Repository files navigation

MonitorGenie

MonitorGenie is a small open-source display profile manager for Windows. It lives in the notification area, stores everything locally, and does not use accounts, cloud services, telemetry, or credentials.

Portable installation

The win-x64 release includes .NET and requires no installer:

  1. download MonitorGenie-vX.Y.Z-win-x64.zip;
  2. extract the entire archive to a writable folder;
  3. run MonitorGenie.exe;
  4. find the MonitorGenie icon in the notification area, including the hidden icons menu (^).

The archive contains exactly:

  • MonitorGenie.exe;
  • portable.flag;
  • licenses/DOTNET-NOTICE.txt;
  • licenses/DOTNET-RUNTIME-LICENSE.txt;
  • licenses/DOTNET-THIRD-PARTY-NOTICES.txt;
  • licenses/DOTNET-WINDOWSDESKTOP-LICENSE.txt;
  • licenses/MONITORGENIE-LICENSE.txt.

The included portable.flag makes MonitorGenie store profiles, hotkeys, and logs in a data folder next to the executable. Delete the flag before the first run to use %LocalAppData%\MonitorGenie instead.

Requirements: 64-bit Windows 10 or Windows 11. Releases are currently unsigned, so Windows SmartScreen may ask for confirmation on first launch.

First use

MonitorGenie ships without preconfigured profiles or hardware identifiers:

  1. arrange your displays in Windows Display Settings;
  2. left-click the MonitorGenie tray icon to open the quick dashboard;
  3. choose Capture;
  4. enter a name such as Desk;
  5. prepare another display configuration in Windows and capture it under a different name.

Select a profile in the dashboard to preview it, then choose Apply selected profile. Right-click the tray icon for the compact context menu. Optional Ctrl+Alt+F1 through Ctrl+Alt+F12 hotkeys are also available.

Features

  • captures active displays with PnP/EDID identity, observed position, resolution, and refresh rate;
  • provides a theme-aware quick dashboard on left-click and a modern compact menu on right-click;
  • manages, renames, duplicates, deletes, imports, and exports profiles;
  • displays a visual preview of the captured layout;
  • blocks missing or ambiguous displays during preflight;
  • validates changes through the Windows CCD API and verifies the result;
  • offers to save and name an unknown current configuration before switching, preserving a safe rollback path;
  • shows a 15-second topmost confirmation dialog with automatic rollback;
  • restores the last known safe profile manually;
  • provides optional global hotkeys and Windows startup, both disabled by default;
  • writes technical logs locally only.

Safety and limitations

MonitorGenie recalls display topologies already known to Windows. The captured layout is shown for reference, but this version does not independently force position, scaling, HDR, VRR, or audio settings. Compatibility is not guaranteed for every dock, KVM, DisplayLink device, remote session, or multi-GPU setup.

Every real switch is checked before and after application. If a display remains black, press Win + P and select Extend or PC screen only.

Run the manual test plan before relying on MonitorGenie on important hardware.

Data and privacy

Local files may contain PnP paths and EDID identifiers:

  • profiles.json: display profiles;
  • last-known-good.json: profile used for rollback;
  • hotkeys.json: configured shortcuts;
  • logs\monitorgenie.jsonl: local technical history.

These files are never uploaded automatically. Data folders, snapshots, and logs are excluded from Git. Do not publish them without reviewing and anonymizing their contents.

Build from source

.NET 8 SDK on Windows is required:

dotnet build MonitorGenie.csproj -c Release -warnaserror
dotnet run --project MonitorGenie.csproj

The application does not open a traditional main window. Its left-click dashboard is a temporary flyout and never appears in the taskbar. Use Exit from the right-click menu to close MonitorGenie. If a build fails because MonitorGenie.exe is in use, close the running tray instance first.

Create the same portable archive produced by CI with:

.\tools\Build-PortableRelease.ps1

The ZIP and its SHA-256 file are written to artifacts.

Repository layout

App/                         tray UI and WinForms dialogs
Application/                 capture, preflight, switching, and rollback
Domain/                      profiles and display identities
Infrastructure/Ccd/          Windows CCD API and P/Invoke
Infrastructure/Storage/      JSON, migrations, and local data
Infrastructure/Windows/      global hotkeys and optional startup
Assets/Icons/                application icon
Properties/PublishProfiles/  portable release settings
tools/                       release build and diagnostic snapshot scripts
docs/                        architecture, testing, and release guide

See the architecture, manual test plan, release guide, and changelog.

Contributing and license

MonitorGenie is available under the MIT License. Portable releases also include the licenses and third-party notices for the bundled .NET runtime components. See CONTRIBUTING.md before submitting a change.

About

A lightweight, privacy-first Windows tray app for capturing and switching multi-monitor display profiles.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages