Improving work areas with multiple monitors

Alberts Muktupāvels via wm-spec-list <[email protected]> Thu, 27 Dec 2018 23:22:47 +0200
Newsgroups gmane.comp.gnome.wm-spec
Message-ID <CAKX6tkUmgDhrPbh-qEZbwcX4Z1ct9Yp-5AheAmS0Jp4NwX+Mdw@mail.gmail.com>
--===============5727749248506279715==
Content-Type: multipart/alternative; boundary="000000000000f40f98057e078c8a"

--000000000000f40f98057e078c8a
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

Hi,

I would like to improve work area situation with multiple monitors. Before
writing patches I would like to hear what you think about my idea.

First I think there should be new property for struts because existing
properties can not be used to set struts on edges between two monitors. New
property could be named _NET_WM_STRUT_AREA and used to define rectangular
area (x, y, width and height) that should be excluded from work area. This
property will need to follow at least two rules:
- at least one edge of area must match with monitor edge. The window
manager must ignore strut if it is not placed at monitor edge.
- if strut appears on edge between two monitors it should be ignored when
calculating _NET_WORKAREA to ensure backward compatibility.

Next and more important part is new property to allow set work areas for
multiple monitors. Currently I am thinking it could be _NET_WORKAREAS_Dn
where n is desktop number. For example if _NET_NUMBER_OF_DESKTOPS is set to
3 then there must be _NET_WORKAREAS_D0, _NET_WORKAREAS_D1 and
_NET_WORKAREAS_D2 properties.

Property would have one or multiple work areas:
_NET_WORKAREAS_Dn, x, y, width, height CARDINAL[][4]/32

Window managers adding support for this would need to add _NET_WORKAREAS
hint to _NET_SUPPORTED.

Does anyone see reasons why this would not work and/or have better
suggestions?

--=20
Alberts Muktup=C4=81vels

--000000000000f40f98057e078c8a
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div di=
r=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"lt=
r"><div>Hi,</div><div><br></div><div>I would like to improve work area situ=
ation with multiple monitors. Before writing patches I would like to hear w=
hat you think about my idea.<br></div><div><br></div><div>First I think the=
re should be new property for struts because existing properties can not be=
 used to set struts on edges between two monitors. New property could be na=
med _NET_WM_STRUT_AREA and used to define rectangular area (x, y, width and=
 height) that should be excluded from work area. This property will need to=
 follow at least two rules:</div><div>- at least one edge of area must matc=
h with monitor edge. The window manager must ignore strut if it is not plac=
ed at monitor edge.</div><div>- if strut appears on edge between two monito=
rs it should be ignored when calculating _NET_WORKAREA to ensure backward c=
ompatibility.<br></div><div><br></div><div>Next and more important part is =
new property to allow set work areas for multiple monitors. Currently I am =
thinking it could be _NET_WORKAREAS_Dn where n is desktop number. For examp=
le if _NET_NUMBER_OF_DESKTOPS is set to 3 then there must be _NET_WORKAREAS=
_D0, _NET_WORKAREAS_D1 and _NET_WORKAREAS_D2 properties.</div><div><br></di=
v><div>Property would have one or multiple work areas:</div><div>_NET_WORKA=
REAS_Dn, x, y, width, height CARDINAL[][4]/32<br></div><div><br></div><div>=
Window managers adding support for this would need to add _NET_WORKAREAS hi=
nt to _NET_SUPPORTED.</div><div><br></div><div>Does anyone see reasons why =
this would not work and/or have better suggestions? <br></div><div><br>-- <=
br><div dir=3D"ltr" class=3D"gmail_signature"><div dir=3D"ltr">Alberts Mukt=
up=C4=81vels<br></div></div></div></div></div></div></div></div></div></div=
></div></div>

--000000000000f40f98057e078c8a--

--===============5727749248506279715==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
wm-spec-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/wm-spec-list

--===============5727749248506279715==--