> (display-monitor-attributes-list) > ;; ==> > '(((geometry 0 0 1920 1080) > (workarea 0 0 1920 1050) > (mm-size 677 381) > (name . "\\\\.\\DISPLAY1") > (frames ...)) > ((geometry -1680 -1050 1680 1050) > (workarea -1680 -1050 1680 1050) > (mm-size 593 370) > (name . "\\\\.\\DISPLAY2") > (frames ...))) I see that ‘geometry’ is the same as ‘workarea’ on the second monitor, but slightly different on the first one. Mine are all the same, so I don't know whether to use ‘geometry’ or ‘workarea’. Meanwhile I found a mistake in my previous patch. I assumed that both pairs of attributes top/left and height/width for ‘make-frame’ are measured in pixels. In fact, only top/left are in pixels, whereas height/width are in text units. So needed to wrap them in ‘text-pixels’. Now with this patch everything is fine: