I'm running Ubuntu and Gnome, but this should be generally relevant to any system using X11.
I had a look at the source of the Gnome tools that read monitor information. They all use the X RandR (Resize and Rotate) library under the hood to gather monitor information
The xrandr command line tool shows the raw data provided by your monitor
$ xrandr --verbose
Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 1280 x 1024
VGA connected 1280x1024+0+0 (0x3c) normal (normal left inverted right
+x axis y axis) 338mm x 270mm
Identifier: 0x3b
Timestamp: 33753
Subpixel: unknown
Clones:
CRTC: 0
CRTCs: 0 1
Panning: 0x0+0+0
Tracking: 0x0+0+0
Border: 0/0/0/0
Transform: 1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 0.000000 1.000000
filter:
EDID_DATA:
00ffffffffffff0010ac0ba0554a4632
110f010368221b78eecaf6a357479e23
114f54a54b00714f8180010101010101
010101010101302a009851002a403070
1300520e1100001e000000ff00553439
333135344b32464a550a000000fc0044
454c4c204531373346500a20000000fd
00384b1f500e000a2020202020200099
The EDID_DATA is particularly relevant to us. The read-edid project has utilities that turn the EDID information into something we can use:
$sudo get-edid 2>/dev/null| parse-edid 2>/dev/null| grep ModelName
ModelName "DELL E173FP"
|