DisplayToggle is a lightweight Windows system tray application that allows users to switch display inputs on their monitors using DDC/CI commands — including ddcalt codes for monitors (like many LG models) that don’t respond to standard DDC inputs.
The twist? DisplayToggle is designed to work with BetterDisplay, a macOS utility by waydabber, and requires BetterDisplay’s HTTP server to function.
DisplayToggle sends HTTP requests to BetterDisplay’s built-in HTTP server, allowing Windows users to switch monitor inputs using DDC/CI — even when their displays require non-standard codes like ddcalt.
If you use both a Mac and a Windows PC with shared monitors, DisplayToggle fills a critical void by making it simple to change inputs from the Windows side — with a simple click from the system tray.
This tool wouldn’t exist without BetterDisplay — the only known tool that:
- ✅ Exposes alternate DDC codes (
ddcaltvalues) for hard-to-control displays. - ✅ Provides a local HTTP server that allows network-based input switching.
To use DisplayToggle, you must:
- Be running BetterDisplay Pro on your Mac.
- Enable the HTTP server feature in BetterDisplay.
- Ensure your Mac and Windows machines are on the same local network.
🛑 Without BetterDisplay running with the HTTP server active, DisplayToggle will not work.
We created DisplayToggle because there’s simply nothing else like it for Windows. After testing popular tools like:
- Monitorian
- Twinkle Tray
- ClickMonitorDDC
- winddcutil
…we found none of them worked reliably for monitors requiring ddcalt codes.
So we set out to build a clean, user-friendly Windows app that can talk to BetterDisplay over the network and toggle monitor inputs accordingly.
DisplayToggle reads from a config.json file that defines:
- Your monitors (identified by BetterDisplay’s
tagID) - Each monitor's available input types
- The specific
ddcorddcaltvalues to use
When you click a menu item from the system tray, DisplayToggle sends a request like:
http://your-mac-host.local:55777/set?tagID=3&ddcAlt=208&vcp=inputSelectAlt
If the request fails, DisplayToggle logs the failed attempt in an error_log.txt file.
This file tells DisplayToggle which displays you’re using and how to switch each one’s input using BetterDisplay’s HTTP server.
Below is a sample config.json:
{
"Display 1": {
"HDMI 1": "http://your-mac.local:55777/set?tagID=1&ddcAlt=144&vcp=inputSelectAlt",
"DisplayPort": "http://your-mac.local:55777/set?tagID=1&ddcAlt=145&vcp=inputSelectAlt"
},
"Display 2": {
"HDMI 2": "http://your-mac.local:55777/set?tagID=2&ddcAlt=208&vcp=inputSelectAlt"
}
}
"Display 1"and"Display 2"are display names (you can name them whatever you like:"Gaming Monitor","Work Display", etc.)."HDMI 1","DisplayPort"are the input labels that will appear in your tray menu.- Each value is a full URL request to BetterDisplay’s HTTP server using:
tagID– the ID for your display (find this in BetterDisplay)vcp=inputSelectorvcp=inputSelectAlt– depending on whether your monitor uses standard or alternate DDCddcAlt=XXX– the input code to switch to (can be decimal or hex, e.g.0xd1)
- You must use BetterDisplay Pro with the HTTP server enabled for these links to work.
- Your Windows and Mac devices must be on the same local network.
📝 Tip: If you're not sure which ddc values your display needs, use BetterDisplay on your Mac to test and find the correct ones.
Windows only displays the system tray on the main display. This means:
- If you toggle your main display to another input first, you’ll lose access to the tray icon.
- Always toggle non-main displays first, and the main one last.
We plan to address this limitation in the next version with:
- ✅ Global keyboard shortcuts
- ✅ An optional on-screen overlay menu for selecting inputs
- ✅ An interactive first-run setup wizard
If you're trying to switch inputs and nothing happens (especially on your main display), try re-selecting the currently active input first (e.g., HDMI 1) to "wake" the HTTP server on your Mac. After doing this, try switching to your desired input again.
- Install BetterDisplay Pro on your Mac.
- Enable the HTTP server feature inside BetterDisplay.
- Run DisplayToggle on your Windows machine.
- Configure your
config.jsonfile to match your displays and input values. - Launch DisplayToggle and switch inputs from the system tray.
BetterDisplay is the best tool to discover working ddc or ddcalt values for your monitor inputs.
In the future, we may:
- Integrate a DDC lookup utility into DisplayToggle
- Maintain a community wiki listing common monitor models and their compatible DDC input values
- Huge thanks to waydabber for developing BetterDisplay, without which this project would not be possible.
- DisplayToggle is designed specifically to complement BetterDisplay, not replace it.
DisplayToggle is open source and released under the BSD 3-Clause License.
This project is freely available for modification and redistribution.
If you include it in a paid product or derivative, we kindly ask that you retain attribution and consider contributing improvements back to the project.