显示连接的显示器/显示器/分辨率的终端命令?

问题描述:

有没有办法通过OS X中的终端获取有关连接的显示器和显示器及其分辨率的信息?显示连接的显示器/显示器/分辨率的终端命令?

我有一些安装运行在多个显示器上,有时GFLW窗口似乎没有打开,如果没有连接显示器 - 我想检查显示器是否正确连接,并可能转储到一个日志文件,但我还没有找到一个纲领性的方式做到这一点没有得到深入的OBJ-C /可可

+0

你应该问在http这个问题: //apple.stackexchange.com – *foe

您可以使用system_profiler SPDisplaysDataTypedefaults read /Library/Preferences/com.apple.windowserver.plist

$ system_profiler SPDisplaysDataType 
Graphics/Displays: 

    NVIDIA GeForce GT 640M: 

     Chipset Model: NVIDIA GeForce GT 640M 
     Type: GPU 
     Bus: PCIe 
     PCIe Lane Width: x16 
     VRAM (Total): 512 MB 
     Vendor: NVIDIA (0x10de) 
     Device ID: 0x0fd8 
     Revision ID: 0x00a2 
     ROM Revision: 3707 
     Displays: 
     iMac: 
      Display Type: LCD 
      Resolution: 1920 x 1080 
      Pixel Depth: 32-Bit Color (ARGB8888) 
      Main Display: Yes 
      Mirror: Off 
      Online: Yes 
      Built-In: Yes 
      Connection Type: DisplayPort 
$ defaults read /Library/Preferences/com.apple.windowserver.plist 
{ 
    DisplayResolutionEnabled = 1; 
    DisplaySets =  (
       (
         { 
       Active = 1; 
       Depth = 4; 
       DisplayID = 69731456; 
       DisplayProductID = 40978; 
       DisplaySerialNumber = 0; 
       DisplayVendorID = 1552; 
       Height = 1080; 
       IODisplayLocation = "IOService:/AppleACPIPlatformExpert/[email protected]/AppleACPIPCI/[email protected]/IOPCI2PCIBridge/[email protected]/NVDA,[email protected]/NVDA"; 
       IOFlags = 7; 
       LimitsHeight = 1080; 
       LimitsOriginX = 0; 
       LimitsOriginY = 0; 
       LimitsWidth = 1920; 
       MirrorID = 0; 
       Mirrored = 0; 
       Mode =     { 
        BitsPerPixel = 32; 
        BitsPerSample = 8; 
        DepthFormat = 4; 
        Height = 1080; 
        IODisplayModeID = "-2147479552"; 
        IOFlags = 7; 
        Mode = 1; 
        PixelEncoding = "--------RRRRRRRRGGGGGGGGBBBBBBBB"; 
        RefreshRate = 0; 
        SamplesPerPixel = 3; 
        UsableForDesktopGUI = 1; 
        Width = 1920; 
        kCGDisplayBytesPerRow = 7680; 
        kCGDisplayHorizontalResolution = 103; 
        kCGDisplayModeIsInterlaced = 0; 
        kCGDisplayModeIsSafeForHardware = 1; 
        kCGDisplayModeIsStretched = 0; 
        kCGDisplayModeIsTelevisionOutput = 0; 
        kCGDisplayModeIsUnavailable = 0; 
        kCGDisplayModeSuitableForUI = 1; 
        kCGDisplayPixelsHigh = 1080; 
        kCGDisplayPixelsWide = 1920; 
        kCGDisplayResolution = 1; 
        kCGDisplayVerticalResolution = 103; 
       }; 
       OriginX = 0; 
       OriginY = 0; 
       PixelEncoding = "--------RRRRRRRRGGGGGGGGBBBBBBBB"; 
       Resolution = 1; 
       Unit = 0; 
       UnmirroredHeight = 1080; 
       UnmirroredLimitsHeight = 1080; 
       UnmirroredLimitsOriginX = 0; 
       UnmirroredLimitsOriginY = 0; 
       UnmirroredLimitsWidth = 1920; 
       UnmirroredMode =     { 
        BitsPerPixel = 32; 
        BitsPerSample = 8; 
        DepthFormat = 4; 
        Height = 1080; 
        IODisplayModeID = "-2147479552"; 
        IOFlags = 7; 
        Mode = 1; 
        PixelEncoding = "--------RRRRRRRRGGGGGGGGBBBBBBBB"; 
        RefreshRate = 0; 
        SamplesPerPixel = 3; 
        UsableForDesktopGUI = 1; 
        Width = 1920; 
        kCGDisplayBytesPerRow = 7680; 
        kCGDisplayHorizontalResolution = 103; 
        kCGDisplayModeIsInterlaced = 0; 
        kCGDisplayModeIsSafeForHardware = 1; 
        kCGDisplayModeIsStretched = 0; 
        kCGDisplayModeIsTelevisionOutput = 0; 
        kCGDisplayModeIsUnavailable = 0; 
        kCGDisplayModeSuitableForUI = 1; 
        kCGDisplayPixelsHigh = 1080; 
        kCGDisplayPixelsWide = 1920; 
        kCGDisplayResolution = 1; 
        kCGDisplayVerticalResolution = 103; 
       }; 
       UnmirroredOriginX = 0; 
       UnmirroredOriginY = 0; 
       UnmirroredResolution = 1; 
       UnmirroredWidth = 1920; 
       Width = 1920; 
      } 
     ) 
    ); 
    ForceOldStyleMemoryManagement = 0; 
} 
+0

太棒了!非常感谢...我正在寻找的东西。希望让我的一些应用程序更智能地连接显示器。 – laserpilot

+0

你知道一个改变解析度和相关刷新率的命令吗? – Vincent