Building on @KTane's answer, that snippet didn't show anything, but this does (macOS Monterey 12.3 on a Mac Studio):
ioreg -l | grep EDID
| | | | "DisplayAttributes" = {"SupportsSuspend"=No,"MaximumRefreshRate"=144,"SupportsActiveOff"=No,"PortID"=32,"ProductAttributes"={"ManufacturerID"="SAM","YearOfManufacture"=2018,"SerialNumber"=810889805,"ProductName"="C27JG5x","AlphanumericSerialNumber"="HTOKC02346","LegacyManufacturerID"=19501,"ProductID"=3928,"WeekOfManufacture"=51},"MaxVerticalImageSize"=34,"MaxHorizontalImageSize"=60,"HasHDMILegacyEDID"=No,"Chromaticity"={"Red"={"X"=44352,"Y"=20736},"Green"={"X"=18048,"Y"=43328},"Blue"={"X"=9984,"Y"=4032}},"DefaultColorSpaceIsSRGB"=No,"NativeFormatHorizontalPixels"=2560,"DefaultWhitePoint"={"X"=20544,"Y"=21568,"Gamma"=144179},"SupportsVariableRefreshRate"=No,"AspectRatio"=15,"MinimumRefreshRate"=50,"WhitePoints"=({"X"=20544,"Y"=21568,"Gamma"=144179}),"PreciseAspectRatio"=115652,"ContinuousFrequencySupport"="None","SupportsStandby"=Yes,"NativeFormatVerticalPixels"=1440}
| | | | "EDID UUID" = "4C2D580F-0000-0000-331C-0104A53C2278"
| | | | "DisplayAttributes" = {"SupportsSuspend"=No,"MaximumRefreshRate"=144,"SupportsActiveOff"=No,"PortID"=48,"ProductAttributes"={"ManufacturerID"="SAM","YearOfManufacture"=2018,"SerialNumber"=810889805,"ProductName"="C27JG5x","AlphanumericSerialNumber"="HTOKC02337","LegacyManufacturerID"=19501,"ProductID"=3928,"WeekOfManufacture"=51},"MaxVerticalImageSize"=34,"MaxHorizontalImageSize"=60,"HasHDMILegacyEDID"=No,"Chromaticity"={"Red"={"X"=44352,"Y"=20736},"Green"={"X"=18048,"Y"=43328},"Blue"={"X"=9984,"Y"=4032}},"DefaultColorSpaceIsSRGB"=No,"NativeFormatHorizontalPixels"=2560,"DefaultWhitePoint"={"X"=20544,"Y"=21568,"Gamma"=144179},"SupportsVariableRefreshRate"=No,"AspectRatio"=15,"MinimumRefreshRate"=50,"WhitePoints"=({"X"=20544,"Y"=21568,"Gamma"=144179}),"PreciseAspectRatio"=115652,"ContinuousFrequencySupport"="None","SupportsStandby"=Yes,"NativeFormatVerticalPixels"=1440}
| | | | "EDID UUID" = "4C2D580F-0000-0000-331C-0104A53C2278"
Can you spot the problem? Yes, both my monitors have the same serial number and UUID. Samsung needs a slap...
Update:
Here's the full output of system_profiler -json SPDisplaysDataType
:
{
"SPDisplaysDataType" : [
{
"_name" : "Apple M1 Max",
"spdisplays_mtlgpufamilysupport" : "spdisplays_metal3",
"spdisplays_ndrvs" : [
{
"_name" : "C27JG5x",
"_spdisplays_display-product-id" : "f58",
"_spdisplays_display-serial-number" : "3055324d",
"_spdisplays_display-vendor-id" : "4c2d",
"_spdisplays_display-week" : "51",
"_spdisplays_display-year" : "2018",
"_spdisplays_displayID" : "4",
"_spdisplays_pixels" : "2560 x 1440",
"_spdisplays_resolution" : "2560 x 1440 @ 144.00Hz",
"spdisplays_main" : "spdisplays_yes",
"spdisplays_mirror" : "spdisplays_off",
"spdisplays_online" : "spdisplays_yes",
"spdisplays_pixelresolution" : "spdisplays_qhd",
"spdisplays_resolution" : "2560 x 1440 @ 144.00Hz",
"spdisplays_rotation" : "spdisplays_supported"
},
{
"_name" : "C27JG5x",
"_spdisplays_display-product-id" : "f58",
"_spdisplays_display-serial-number" : "3055324d",
"_spdisplays_display-vendor-id" : "4c2d",
"_spdisplays_display-week" : "51",
"_spdisplays_display-year" : "2018",
"_spdisplays_displayID" : "3",
"_spdisplays_pixels" : "2560 x 1440",
"_spdisplays_resolution" : "2560 x 1440 @ 144.00Hz",
"spdisplays_mirror" : "spdisplays_off",
"spdisplays_online" : "spdisplays_yes",
"spdisplays_pixelresolution" : "spdisplays_qhd",
"spdisplays_resolution" : "2560 x 1440 @ 144.00Hz",
"spdisplays_rotation" : "spdisplays_supported"
}
],
"spdisplays_vendor" : "sppci_vendor_Apple",
"sppci_bus" : "spdisplays_builtin",
"sppci_cores" : "24",
"sppci_device_type" : "spdisplays_gpu",
"sppci_model" : "Apple M1 Max"
}
]
}
IOKit
has not been bound by Xamarin (low # of requests thus low priority) (Tracking issue bugzilla.xamarin.com/show_bug.cgi?id=28503), While I have done a some bindings, I find it WAY faster to just do a shell and useioreg
and parse the info you need i.e. https://mcmap.net/q/905910/-getting-unique-system-id-on-mac-using-c-mono – Leekioreg -lw0 | grep IODisplayEDID | sed "/[^<]*</s///" | xxd -p -r | strings -6
Should get you headed in the right way depending upon your end needs – Leek