A lightweight Windows desktop application for managing display profiles with quick switching from the system tray. Perfect for users who frequently change display settings for different tasks or setups.
- 🖥️ Multiple Display Profiles - Save and manage unlimited display configurations
- 🔄 Quick Profile Switching - Change profiles instantly from the system tray
- 📐 Resolution & Refresh Rate Control - Adjust display settings per monitor
- 🔍 DPI Scaling Management - Control Windows DPI scaling for each profile
- 🚀 Auto-start with Windows - Launch automatically and apply your preferred profile
- 🎨 Modern UI with Theme Support - Light, dark or system themes
- 💾 Profile Import/Export - Backup your configurations
- 🖼️ Per-Monitor Configuration - Different settings for multi-monitor setups
- 🔄 System Tray Profile Switching - Instantly switch display profiles directly from the system tray
Manage all your display profiles in one place
Configure resolution, refresh rate, and DPI settings for each monitor
Quick access to switch profiles directly from the system tray
Modern dark theme for comfortable viewing
- Operating System: Windows 7 or later
- .NET Framework: 4.8 or later (Download)
- Privileges: Administrator rights required (for DPI changes)
- Download the latest release from the Releases page
- Run
DisplayProfileManager.exe
as administrator - The application will start in your system tray
- On first launch, your current display settings are saved as the "Default" profile
- Right-click the system tray icon and select "Manage Profiles"
- Click "Add New Profile"
- Configure your desired resolution, refresh rate, and DPI settings
- Click "Save" to store the profile
- Quick Switch: Right-click the system tray icon and select a profile from the list
- Auto-switch: Set a default profile to apply on Windows startup
- Right-click the system tray icon and select "Settings"
- Configure auto-start behavior
- Choose your default profile
- Toggle between light, dark or system themes
- Visual Studio 2019 or later
- .NET Framework 4.8 SDK
- Windows SDK
# Clone the repository
git clone https://github.com/zac15987/DisplayProfileManager.git
cd DisplayProfileManager
# Restore NuGet packages
nuget restore
# Build the solution
msbuild DisplayProfileManager.sln /p:Configuration=Release
# Run the application
start bin\Release\DisplayProfileManager.exe
DisplayProfileManager/
├── src/
│ ├── Core/ # Business logic and profile management
│ ├── Helpers/ # Windows API wrappers and utilities
│ └── UI/ # WPF views and view models
├── Properties/ # Assembly information and resources
└── docs/ # Documentation and samples
- Pattern: MVVM with singleton managers
- UI Framework: WPF (.NET Framework 4.8)
- Storage: JSON files in
%AppData%\DisplayProfileManager\
- Display APIs: Windows Display Configuration APIs via P/Invoke
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
- Use the Issues page to report bugs
- Include your Windows version and .NET Framework version
- Provide steps to reproduce the issue
- Attach relevant log files if available
This project is licensed under the MIT License - see the LICENSE file for details.
- Newtonsoft.Json - JSON serialization
- Windows Display Configuration APIs - Display management functionality
- windows-DPI-scaling-sample - Provided the foundation for DPI scaling functionality. The original C++ implementation was translated to C# and forms the core of our DpiHelper.cs, enabling reliable system-wide DPI changes. Sample code documentation preserved in docs/sample-code/
- Claude Code - Built in Collaboration with Claude Code. Anthropic's AI assistant helped architect, implement, and refine core features throughout the development process.
- The open-source community for inspiration and support
Note: This application requires administrator privileges to modify DPI settings due to Windows security restrictions.