Subject: Re: bug#34516: Multi-monitor frame sets

From: Andy Moreton <[email-masked]>
Date: Tue, 19 Feb 2019 10:40:34 +0000

On Mon 18 Feb 2019, Juri Linkov wrote:

>>> Shouldn't frame.el provide a command like make-frame-on-display,
>>> but to make a frame on the specified monitor instead of display?
>>> 
>>> Isn't the following patch the right way to do this?
>>> (It also adds completion for the existing command):
>>
>> What kind of list does display-monitor-attributes-list return on your
>> system, and how can you tell which part there refers to what physical
>> monitor?
>
> It returns a list with such meaningless monitor names as “LVDS”, “eDP-1”, “DP-2-2”,
> etc. that don't help to refer to a physical monitor.

Those names are not meaningless, it is just that you do not find them
helpful. The names describe the hardware port used to attach the
monitor:

  https://en.wikipedia.org/wiki/Low-voltage_differential_signaling
  https://en.wikipedia.org/wiki/DisplayPort
  https://en.wikipedia.org/wiki/DisplayPort#eDP

>  However, I noticed that the only attribute that could help is
> ‘geometry’ in the form of (X Y WIDTH HEIGHT), e.g. when two adjacent
> monitors have such geometry attributes:
>
>   (geometry    0  0 1920 1080)
>   (geometry 1920 16 2560 1440)
>
> the right edge of the first monitor ends (1920px) is where the left edge
> of the second monitor begins.  Based on this guess I tried to deduce
> a relative placement of new frames, but maybe I'm wrong.

Why guess ? Read the documentation for `display-monitor-attributes-list'
which describes the meaning of the list elements in great detail.

Note that you will need to take note of the `workarea' element of the
list which describes the usuable space on a given monitor (which
excludes space for toolbars etc that are not available to display a
frame).

    AndyM