DisplayWatcher automatically monitors display connection changes on macOS and applies your custom displayplacer
configuration instantly.
This software is still under development and has not been thoroughly tested, so it may not function properly.
Every time I connect a new external display, macOS automatically changes the resolution of the built-in display, which is quite annoying. I wanted to detect display connection events and automatically restore the built-in display to my preferred resolution.
- Real-time external monitor detection via IOKit
- Automatically applies your preferred resolution using
displayplacer
- Native macOS app bundle (
/Applications/DisplayWatcher.app
) - Auto-starts on login (Login Items)
- macOS Monterey (12.0) or later
- Homebrew (https://brew.sh/)
- displayplacer (installed automatically)
- Clone this repository:
git clone https://github.com/ktym/displaywatcher.git
cd displaywatcher
- Build the app:
./build.sh
- Install:
./install.sh
- Edit your configuration:
~/Library/Application Support/DisplayWatcher/displaywatcher.conf
To generate your desired display configuration, manually adjust your displays, then run:
displayplacer list | grep '^displayplacer "id:'
Copy the output into displaywatcher.conf.
The installer will automatically build DisplayWatcher.app and register it as a Login Item for auto-start. You can modify the displayplacer command anytime to adjust your desired resolution.
- Toshiaki Katayama (@ktym)
- ChatGPT
- Claude
MIT License