Skip to content

xtrilla/DisplayProfileManager

 
 

Repository files navigation

Display Profile Manager

Platform .NET Framework License: MIT + Commons Clause Built with Claude Code

A lightweight Windows desktop application for managing display profiles — save your monitor layout, resolution, refresh rate, HDR state, DPI, audio devices, and scripts into named profiles and switch between them on demand.

This is a fork based on zac15987/DisplayProfileManager. Distributed under MIT + Commons Clause.


✨ Features

Profiles & switching

  • 🗂️ Unlimited display profiles — save any combination of monitor settings as a named profile
  • 🖱️ Multiple ways to switch — GUI, global hotkey, system tray, or CLI
  • 📺 Full per-monitor control — resolution, refresh rate, rotation, HDR, DPI, position, enable/disable, primary
  • 🪞 Mirror display support — clone monitors in pure or mixed extended/mirror configurations
  • 📋 Profile duplication — copy an existing profile as a starting point
  • 📥 Import — import .dpm profile files

Automation

  • ⌨️ Global hotkeys — assign a keyboard shortcut to any profile for quick switching
  • 🔊 Audio device switching — automatically switch default playback and recording devices with each profile
  • 📜 Script execution — run .ps1, .py, .bat, or .exe scripts automatically on profile apply
  • 💻 CLI support — apply profiles, switch themes, and trigger refreshes from scripts or external tools
  • 🚀 Auto-start with Windows — Registry mode (no admin) or Task Scheduler mode (faster, one-time admin setup)

Themes

  • 🎨 Built-in themes — Light, Dark, Black, and System (follows Windows)
  • 🖌️ Custom themes — import compatible .xaml theme files; they appear in the dropdown instantly on refresh
  • 🛠️ DPM Theme Builder — included Python tool to generate themes from the tinted-themes database

🚀 Installation

  1. Download the latest release from the Releases page
  2. Run DisplayProfileManager.exe
  3. The application lives in your system tray
  4. Your current display settings are automatically saved as the "Default" profile on first launch

Requirements

  • Windows 10 version 1709 or later (Windows 7/8 unsupported — HDR, mirror displays, and some UI elements will not work correctly)
  • .NET Framework 4.8
  • No administrator rights required for normal use. Admin is only needed once for Task Scheduler auto-start mode setup.

📸 Screenshots

Main Window

Main Window

Profile Editor

Edit Window

Themes

Themes


📖 Documentation


🛠️ Development

See CLAUDE.md for architecture, display engine details, and development guidelines.

Prerequisites

  • Visual Studio 2019 or later
  • .NET Framework 4.8 SDK

Building

git clone https://github.com/exytral/DisplayProfileManager.git
cd DisplayProfileManager
nuget restore DisplayProfileManager.sln
powershell -File dev-build.ps1

📝 License

MIT + Commons Clause — see LICENSE for details. Third-party licenses: THIRD-PARTY-LICENSES.md.

🙏 Acknowledgments

Contributors

This fork@exytral

Upstream@zac15987 (original project), @jarandal (PR #8), @jonathanasdf (PR #14), @rvahilario (PR #23)

Community: @Catriks, @Alienmario, @anodynos, @xtrilla

About

Instantly switch display profiles on Windows. Save & restore resolution, refresh rate, HDR, rotation, DPI, audio, and monitor layouts. Features staged application mode for complex setups, hotkeys, system tray, auto-start, and themes. Perfect for multi-monitor users, gamers, and content creators. Free & open-source.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • C# 90.8%
  • Python 8.3%
  • Other 0.9%