DisplayWatcher automatically monitors display connection changes on macOS and applies your custom displayplacer
configuration instantly.
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
MIT License