Subject: bug#76691: `display-monitor-attributes-list` not working properly on macOS

From: Ship Mints <[email-masked]>
Date: Tue, 4 Mar 2025 09:58:13 -0500

On Tue, Mar 4, 2025 at 9:51 AM Robert Pluim <[email-masked]> wrote:

> >>>>> On Tue, 4 Mar 2025 09:28:33 -0500, Ship Mints <[email-masked]>
> said:
>
>     Ship> (((name . "Built-in Retina Display") (geometry 0 0 3200 1800)
> (workarea 0
>     Ship> 25 3200 1775) (mm-size 599 339) (frames #<frame *scratch*
>     0x7fe165871c30> ) (source . "NS")))
>
> That matches what the "Displays" settings shows, no?
>
>     Ship> Seems a bit cumbersome, but that's what it is.  I can synthesize
> a name
>     Ship> for if this ever returns NULL; e.g., the equivalent of (format
>     Ship> "%dx%d@%d,%d" width height x y) where x and y are the
> coordinates
>     Ship> relative to the origin reported by macOS (adjusted for being
> inverted, if
>     Ship> I recall correctly).
>
> If you have a patch, I can test it with the various external monitors
> I have.
>
And a synthesized name: (((name . "3200x1775@0,25") (geometry 0 0 3200
1800) (workarea 0 25 3200 1775) (mm-size 599 339) (frames #<frame *scratch*
0x7f7c7009d430>) (source . "NS")))

We could use something like a UUID that's more opaque.

I haven't made either name bi-directional yet to allow specifying it when
operating on frames.

Thanks for the help.  Patch attached.