     }
 
     func set(with setting: DisplayUserSetting) {
-        if let mi = displayInfo.firstIndex(where: { setting ~= $0 }) {
-            if mi != modeIndex { _set(mi) }
+        if let di = displayInfo.first(where: { setting == $0 }) {
+            if di.modeID != modeID { _set(di) }
         } else {
             print("This mode is unavailable")
         }

        }
    }

    // override a lesser-used operator to simplify diplay mode checks
    static func ~= (lhs: Self, rhs: DisplayInfo) -> Bool {
        var bool = lhs.width == rhs.width

        if lhs.height != nil { bool = bool && lhs.height == rhs.height }
        if lhs.scale != nil { bool = bool && lhs.scale == rhs.scale }
        return bool
    }
}


// 1    width                   => 2
// 2    id, width
// 3    width, scale            => 6
// 4    width, height           =>
// 5    id, width, height
// 6    id, width, scale
// 7    id, width, height, scale
