ddcui - Limitations

### Fundamental Limitations

Inadequacies in the DDC/CI design, and its marginal implementation in many monitors, lead to some problems for which ddcui has no good workaround.

- Actual monitor settings may not match those reported by ddcui

- Some monitors will change their state (e.g. red gain) when the value in the GUI changes. However, the value reported by the monitor is unchanged.
- Conversely, some monitors report a newly set value, but the observed state of the monitor is unchanged.
- Monitor settings can be changed by another program, including the command like program ddcutil
- If feature values are changed using the monitor's On Screen Display. The DDC/CI specification includes a mechanism for informing a program of changes made using the OSD. In practice, this facility cannot be relied on.
- The DDC/CI and Monitor Control Command Set specifications are old. Advanced features of recent monitors, such as Picture-by-Picture were simply not envisioned and have no (at least documented) integration to the Virtual Control Panel.

- It is possible for feature values reported in **ddcui** to become out of sync with actual monitor values.
  - If feature values are changed using the monitor's On Screen Display.
  - If feature values are changed by another program, including the command line program **ddcutil**.
  - Some monitors will change their state (e.g. red gain) when the value in the GUI changes. However, the value reported by the monitor is unchanged.
  - Conversely, some monitors report a newly set value, but the observed state of the monitor is unchanged.

  ### Implementation

  - ddcui does not detect that a monitor has been connected or disconnected. The program must be restarted.
  - The value of various special feature codes is not interpreted, but instead simply reported as bytes. Interpretations of these feature codes will be added with time.