Open-source project
terrymacdonald/DisplayMagician avatar
terrymacdonald/DisplayMagician

DisplayMagician: one shortcut that sets up the whole rig

DisplayMagician is an open source tool for automatically configuring your displays and sound for a game or application from a single Windows Shortcut.

759 stars35 forksC#GPL-3.0

At a glance

What is it?
DisplayMagician is a Windows utility that switches display profiles, audio devices and helper programs, launches your game, and can put everything back afterwards, all from a desktop shortcut, a hotkey or a Stream Deck button. It is aimed at sim racers and anyone with more than one display setup, and the current work is a large v4 rewrite planned around a control service and a WinUI 3 front end.
Who is it for?
Use DisplayMagician if you switch between different monitor arrangements, audio devices and helper applications depending on what you are running, since automating that switch is exactly what it does and it handles the rollback for you.
Can I use it commercially?
Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly C#, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The problem it names: a different rig for every game

DisplayMagician is an open source tool for automatically configuring your displays and sound for a game or application from a single Windows shortcut.

The motivation in the README is written from the author's point of view as a sim racer, and it is worth quoting the shape of the complaint. Different games require the displays configured in different ways, and a sim racer also needs a set of helper applications to give the extra functionality they want. Making all those changes every time you switched game became the annoyance that produced the tool.

The examples make it concrete. Running one title across a single NVIDIA Surround window over three screens, and another across four individual screens, a triple plus one above. Running a dashboard application when playing one racing title and a streaming tool when playing another. Choosing a wireless headset for driving and something else for a shooter. Each of those is a different combination of display configuration, audio device and background applications, and each is a manual ritual before you press play.

The audience is therefore narrow and clear. It is the person with multiple monitors, mixed GPU setups, or a desk dedicated to simulation, who wants the rig to reconfigure itself. It is not a general purpose utility for a laptop with one screen, and the tool does not pretend otherwise.

Display Profiles, Game Shortcuts and the rollback

The mechanism has two halves, and the pairing is what makes the tool work.

A Display Profile is a saved set of display settings that can be reused in future desktop shortcuts, including wallpapers. A Game Shortcut then binds a profile to a specific game or application, and double-clicking it changes the display to that profile and starts the game.

The second half of the mechanism is the part that separates this from a display switching utility. The tool can optionally roll back to your previous display profile once the game or application has closed. That closes the loop: without it, a shortcut that switches to a three screen surround configuration leaves your desktop in that state after you stop playing, and the next person to use the machine finds an arrangement they did not ask for. The alternative the README also offers is a shortcut that permanently changes to a different display profile, for the case where you want exactly that.

The audio behaviour follows the same pattern. You choose which audio profile a shortcut uses, so a single click selects the wireless headset for driving, and the change is reverted when the game closes. There is a matching feature for helper applications: you can add one or more programs to pre-start before your game and they are closed afterwards.

So the unit of work in DisplayMagician is not a display setting, it is a session: a set of displays, a set of audio devices, a set of programs, an application to launch, and a decision about what to restore when it exits.

How you trigger a session: shortcuts, hotkeys, tray and context menu

The README lists four ways to start a Game Shortcut, and it is a longer list than most utilities of this kind offer.

The first is the desktop shortcut, which is the default. The second is a keyboard shortcut, a joystick or a game controller such as an Elgato Stream Deck. The third is the notification tray icon, so a right-click on the tray gets you the list of your games. The fourth is the desktop background context menu, which is also where the Desktop Background Extension lives, letting you change to a different display profile by right-clicking on the background.

That last one deserves a note, because it is the kind of small Windows shell extension that quietly costs something. Registering a context menu handler means an entry in the registry and, in many cases, either an installer or an administrator prompt. The README also lists a planned StreamDeck companion application and a hotkey-driven start, so the project is clearly aiming at a control-panel-plus-macro audience rather than a one-click audience.

The application list the tool can launch from is broad. It can select games from Steam, Ubisoft Uplay, Origin from Electronic Arts, Epic Games and GOG.com, or pick from a list of installed Windows applications including UWP apps from the Microsoft Store, or point at a specific game executable to run. For a library spread across several launchers, that list is the part that saves the most time.

Display hardware coverage, from Surround to a tablet as a screen

The feature list is long, and the display side is the deepest part of it.

The tool supports NVIDIA Surround setups, AMD Eyefinity setups, Intel Combined Displays and standard Windows multi-desktop views. It supports cloned displays and extended displays, and NVIDIA Surround combined with additional displays. It works with USB display devices and wireless display devices, and it explicitly supports SuperDisplay and Spacedesk, which turns an Android tablet into a second display.

On the settings side it handles Windows DPI scaling, rotated screens and refresh rates, and it lists HDR among the things it supports. It also ships a field of view calculator, described as helping you set games so objects appear at a normal size, which is a real problem when a racing title renders on three screens rather than one.

The practical meaning of this list is that DisplayMagician is not a wrapper around the Windows display settings dialog. It talks to the vendor specific configuration layers, which is why the README contains a prominent warning about version 3.0.0 and later having completely new video libraries written from scratch, able to handle multiple video cards at once from different manufacturers and to apply settings that did not work in earlier versions. If you have had problems with an earlier version, the advice is to try the newer one.

That rewrite is also the main compatibility risk. A new video library means a new set of device interactions, and a configuration that worked in v2 may behave differently in v3.

The v4 rewrite: a control service, a gateway and a session launcher

The repository layout reveals that a substantial redesign is under way, and the default branch is develop rather than main, which is the first sign of that.

The current v3 code sits in the DisplayMagician directory, with DisplayMagicianBundle and DisplayMagicianPackage for packaging, DisplayMagicianIdentityPkg for identity, and DisplayMagician.ConfigurationDefinitions and DisplayMagician.Contracts for the shared definitions. Alongside that are DisplayMagicianConsole and its tests, and a Sandbox directory.

The v4 structure is visible in the tree as a set of separate components: DisplayMagician.ControlService with its own test project, DisplayMagician.Gateway with Gateway.Tests, DisplayMagician.SessionLauncher, and DisplayMagician.UserAgent with UserAgent.Tests. The names describe an architecture in which a control service owns the state, a gateway exposes it, a session launcher runs the actual game session, and a user agent handles the interaction.

The plan documents at the repository root make that explicit. There is DISPLAYMAGICIAN_V4_CONTROL_SERVICE_PLAN.md, DISPLAYMAGICIAN_V4_PHASE_F_DEPLOYMENT_TEST_PLAN.md, DISPLAYMAGICIAN_ADMIN_TIMELINE_IMPORT_CONTRACT.md, DMV3_UPDATE_AND_TELEMETRY_SPEC.md and RELEASE_NOTES.md. The planned features list adds a v4 built with WinUI3, unit tests, window position tracking, multi-language support, updates for the field of view calculator and new launcher integrations including Battle.net, Amazon Games Launcher, Rockstar Games, the Riot Client and Itch.io.

The v3.0.0 or later note in the README therefore describes a bridge, not the destination.

Building, signing and what the requirements section says

The build system is a .NET solution on Windows, and the repository carries a set of PowerShell scripts that make the process repeatable.

The scripts at the root are the entry points: build_displaymagician.ps1, test_displaymagician.ps1, debug_displaymagician.ps1 and prepare_displaymagician.ps1, alongside create_new_self-signed_cert.ps1 for producing a development certificate, generate_and_replace_displaymagician_images.ps1 for the branding assets, and two verification scripts, verify_log_message_formatting.ps1 and verify_rest_p2_routes.ps1.

There is also a SigningConfig.props.example, a CODE_SIGNING_POLICY.md and a SECURITY.md, which tells you that code signing is a considered part of the project rather than an afterthought, and a global.json that pins the SDK, plus Directory.Build.targets, version.json and a NuGet.config. The Windows build is the supported path; the project is a Windows utility and the shell extension and the display vendor integration both depend on Windows APIs.

The README's requirements section is cut off in the listing, so the exact supported Windows versions are not readable from what is available, and that is the first thing to check before installing.

On releases, the tags are v2.7.2 from 2024-10-19, v2.7.2.23 labelled alpha1 from 2025-01-05 and v2.7.2.26 from 2025-01-07. The gap between the last release and the last push on 2026-10-17 is the v4 work, and the project is GPL-3.0 licensed.

Editorial conclusion

Use DisplayMagician if you switch between different monitor arrangements, audio devices and helper applications depending on what you are running, since automating that switch is exactly what it does and it handles the rollback for you. Do not adopt it if you need a single simple monitor arrangement, since a plain shortcut does that too, and treat the current version as a moving target, with the default branch set to develop and a v4 rewrite planned around WinUI 3, a control service and a session launcher. Before you rely on it, read the requirements section for your Windows version, decide whether you need the v3.0.0 or later video libraries if you have had detection problems, and note that the latest tagged release is v2.7.2.26 from 2025-01-07 while the last push was on 2026-10-17.

Frequently asked questions

What does DisplayMagician do?

DisplayMagician is a Windows tool that automatically configures your displays and sound for a game or application from a single shortcut. It changes the display profile, changes audio devices, can start extra programs, launches the game, and can roll the setup back to the previous display profile once the game closes.

Which monitors and multi-screen setups does DisplayMagician support?

The README lists NVIDIA Surround, AMD Eyefinity, Intel Combined Displays and standard Windows multi-desktop views, plus cloned and extended displays, USB and wireless display devices, SuperDisplay and Spacedesk. It also handles Windows DPI scaling, rotated screens, refresh rates and HDR.

Which game launchers can DisplayMagician start games from?

You can select games from Steam, Ubisoft Uplay, Origin from Electronic Arts, Epic Games and GOG.com, or pick an installed Windows application including UWP apps from the Microsoft Store, or select a specific game executable to run.

How do I get DisplayMagician?

The latest version is available for download from the project release page on GitHub. The repository is GPL-3.0 licensed, and the default branch is develop, with the v4 rewrite documented in the plan files at the repository root.

Official sources

  1. License: GPL-3.0
  2. Project website
  3. README
  4. Releases
  5. terrymacdonald/DisplayMagician on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/terrymacdonald-displaymagician.svg)](https://hysenlabs.com/projects/terrymacdonald-displaymagician)

Was this useful?