Skip to content

exytral/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
  • 🖼️ Custom profile icons — assign a .ico icon to any profile; shown in the profile list, details panel, and system tray when active
  • 📋 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 .exe, .ps1, .bat, .vbs, .js, .py, or .ahk 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

Upstream

Community

  • @Catriks (#1) — Requested audio device switching
  • @Alienmario (#1, #5) — Suggested audio improvements and reported multi-monitor switching issues
  • @anodynos (#2) — Suggested global hotkeys for profile switching
  • @xtrilla (#4) — Requested monitor enable/disable
  • @ffgtthr (#2) — Custom profile icons

About

Quickly switch between custom display profiles. Configure display settings, desktop layout, and audio. Features hotkeys, system tray, auto-start, and custom script & theme support. Perfect for multi-monitor, gaming, or content creator setups.

Resources

License

Stars

Watchers

Forks

Contributors

Languages

  • C# 91.0%
  • Python 8.1%
  • Other 0.9%