                 displayIndex = "0"
             }
         }
-        
-        guard let index = Int(displayIndex!), let width = Int(designatedWidth!) else {
+
+        if designatedScale == nil {
+            designatedScale = "1"
+        }
+
+        guard let index = Int(displayIndex!), let width = Int(designatedWidth!), let scale = Int(designatedScale!) else {
             print("Unable to get display")
             return
         }
 
         let display = screens.display(at:index)
         
-        guard let modeIndex = display.mode(width:width) else {
+        guard let modeIndex = display.mode(width:width, scale:scale) else {
             print("This mode is unavailable for current desktop GUI")
             return
         }

            
            for (_, m) in modes.enumerated() {
                let di = DisplayInfo(displayID:displayID, mode:m)
                print("       \(di.width) * \(di.height) @ \(di.frequency)Hz")
            }
        }
    }
    
    func modes() -> [CGDisplayMode]? {
        if let modeList = CGDisplayCopyAllDisplayModes(displayID, nil) {
            var modesArray = [CGDisplayMode]()
            
            let count = CFArrayGetCount(modeList)

    init(displayID:CGDirectDisplayID, mode:CGDisplayMode) {
        width = mode.width
        height = mode.height

        scale = mode.pixelWidth / mode.width;
        
        var _frequency = Int( mode.refreshRate )
        
