A small native macOS menu-bar app for compatible iiyama monitors. It switches the monitor's USB KVM target over USB and video inputs over DDC/CI.
The app appears in the menu bar as A or B. Selecting Switch USB KVM switches between the two configured PC targets on all internal monitor ports (1, 2, and 3). Double-clicking the menu-bar label toggles directly.
- macOS 13 (Ventura) or later
- A compatible iiyama monitor connected by USB (for KVM switching) and/or a DDC/CI-capable video connection (for video-input switching)
- The monitor USB device must be available; iiyama KMFU must not be running at the same time because it opens the device exclusively
- DDC/CI access must be available; close other monitor-control applications if they prevent the app from switching inputs
The currently supported USB device identifier is 1A86:8020.
Clone the repository and build the app:
./build-app.shThe built application is placed here:
dist/iiyama KVM Toggle.app
Launch it with:
open "dist/iiyama KVM Toggle.app"To start the app automatically after signing in, enable Beim Anmelden öffnen from its menu-bar menu. macOS may ask for approval in System Settings.
- A maps to target/index
1. - B maps to target/index
2. - Double-clicking the menu-bar label toggles between A and B.
- A toggle sends the switch command to ports
1,2, and3. - The last successfully selected target is stored locally and restored when the app starts.
- The monitor does not provide its current KVM state to this app. The menu-bar label therefore represents the last successful switch performed by this app, not a live reading from the monitor. On first launch it defaults to A.
Opening the menu detects connected iiyama displays. Each detected display has a
submenu for switching its video input via DDC/CI VCP code 0x60.
The app uses the following input values: DisplayPort 1 (0x0f), DisplayPort 2
(0x10), HDMI 1 (0x11), HDMI 2 (0x12), USB-C 1 (0x19), and USB-C 2
(0x1b). These values and their input naming follow the
dayflower/dispsel input-source mapping,
which in turn uses the AppleSiliconDDC
DDC/CI implementation.
Some iiyama models accept input switching but do not report the currently active input over DDC/CI. In that case the input submenu remains usable, but no menu item can be marked as active.
The DDC/CI input-switching support in this project is based on the approach
documented by dayflower/dispsel:
discovering displays through the macOS I/O Registry, communicating over
DDC/CI with AppleSiliconDDC,
and using dispsel's VCP 0x60 input values and input-source mapping. Thank
you to the dispsel authors and contributors for publishing that implementation
and its documentation. This project has its own menu-bar integration; it does
not bundle or execute the dispsel command-line tool.
This is an independent, unofficial project. It is not created, endorsed, sponsored, approved, or supported by iiyama Corporation or any of its affiliates. iiyama is a trademark of iiyama Corporation. All other trademarks are the property of their respective owners.
Use this software at your own risk. The authors and contributors provide it without warranty and are not responsible for any damage, data loss, hardware issues, or other consequences resulting from its use.