Skip to content

Repository files navigation

iiyama KVM Toggle

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.

Requirements

  • 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.

Install / build

Clone the repository and build the app:

./build-app.sh

The 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.

How it works

  • 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, and 3.
  • 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.

Video input switching

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.

Acknowledgements

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.

Disclaimer

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.

About

A small native macOS menu-bar app for switching the KVM input on compatible iiyama monitors over USB.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages