Re: Improving work areas with multiple monitors

Alberts Muktupāvels via wm-spec-list <[email protected]> Tue, 22 Jun 2021 20:17:52 +0300
Newsgroups gmane.comp.gnome.wm-spec
Message-ID <CAKX6tkUZpskmhctjdeoMLro8TCQbNASJgQ6r5SXt5hFLVu2UsQ@mail.gmail.com>
--===============5673306072102439809==
Content-Type: multipart/alternative; boundary="000000000000033a7c05c55df987"

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

Hi,

On Tue, Jun 22, 2021 at 7:42 PM Tomas Janousek <[email protected]> wrote:

> Hi Alberts and Martin,
>
> On Mon, Dec 31, 2018 at 09:44:24AM +0100, Martin Fl=C3=B6ser wrote:
> >Am 2018-12-27 22:22, schrieb Alberts Muktup=C4=81vels via wm-spec-list:
> >>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.
> >
> >sounds fine to me.
> >
> >As a note: in KWin we allow panels on shared edges to set a strut with
> >the existing protocol. We just decided that a strut is not allowed to
> >cover a complete screen. Technically it's a violation of the current
> >protocol, but might be a better idea than introducing yet another
> >property.
> >
> >It could be a simple textual addition like: "Struts covering a monitor
> >completely are ignored for that monitor"
>
> Note that this was discussed back in 2007 and 2009:
> https://mail.gnome.org/archives/wm-spec-list/2007-June/msg00000.html
> https://mail.gnome.org/archives/wm-spec-list/2009-November/msg00004.html
>
> There was even a proposal for `_NET_WM_WORKAREAS` and
> `_NET_WM_STRUT_AREAS`:
> https://mail.gnome.org/archives/wm-spec-list/2009-November/msg00005.html
> that was never merged to wm-spec. :-(
>

https://gitlab.freedesktop.org/xdg/xdg-specs/-/merge_requests/22

Here is my proposal. Linked merge requests are merged with small changes -
properties are not using _NET namespace as it was decided that it is not a
good idea to change/update specification.


> Just like KWin, xmonad and likely a few other tiling WMs implement the
> same workaround of not allowing struts to cover an entire screen. That's
> been there since 2009, at least.
>
> But I guess I'm late to the party and we'll need to implement
> `_GNOME_WM_STRUT_AREA` as well, as that's now a thing in gnome-panel and
> elsewhere, and we're getting bug reports about it. :-/
>

Bug reports? gnome-panel still sets old STRUT properties, it does not
require that the window manager supports new property.


> --
> Tom=C3=A1=C5=A1 "liskin" ("Pivn=C3=ADk") Janou=C5=A1ek, https://work.lisk=
.in/
>


--=20
Alberts Muktup=C4=81vels

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

<div dir=3D"ltr"><div dir=3D"ltr">Hi,<br></div><div><br></div><div class=3D=
"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Tue, Jun 22, 2021 at=
 7:42 PM Tomas Janousek &lt;<a href=3D"mailto:[email protected]" target=3D"_blan=
k">[email protected]</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" s=
tyle=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);pad=
ding-left:1ex">Hi Alberts and Martin,<br>
<br>
On Mon, Dec 31, 2018 at 09:44:24AM +0100, Martin Fl=C3=B6ser wrote:<br>
&gt;Am 2018-12-27 22:22, schrieb Alberts Muktup=C4=81vels via wm-spec-list:=
<br>
&gt;&gt;First I think there should be new property for struts because exist=
ing<br>
&gt;&gt;properties can not be used to set struts on edges between two<br>
&gt;&gt;monitors. New property could be named _NET_WM_STRUT_AREA and used t=
o<br>
&gt;&gt;define rectangular area (x, y, width and height) that should be<br>
&gt;&gt;excluded from work area. This property will need to follow at least=
<br>
&gt;&gt;two rules:<br>
&gt;&gt;- at least one edge of area must match with monitor edge. The windo=
w<br>
&gt;&gt;manager must ignore strut if it is not placed at monitor edge.<br>
&gt;&gt;- if strut appears on edge between two monitors it should be ignore=
d<br>
&gt;&gt;when calculating _NET_WORKAREA to ensure backward compatibility.<br=
>
&gt;<br>
&gt;sounds fine to me.<br>
&gt;<br>
&gt;As a note: in KWin we allow panels on shared edges to set a strut with =
<br>
&gt;the existing protocol. We just decided that a strut is not allowed to <=
br>
&gt;cover a complete screen. Technically it&#39;s a violation of the curren=
t <br>
&gt;protocol, but might be a better idea than introducing yet another <br>
&gt;property.<br>
&gt;<br>
&gt;It could be a simple textual addition like: &quot;Struts covering a mon=
itor <br>
&gt;completely are ignored for that monitor&quot;<br>
<br>
Note that this was discussed back in 2007 and 2009:<br>
<a href=3D"https://mail.gnome.org/archives/wm-spec-list/2007-June/msg00000.=
html" rel=3D"noreferrer" target=3D"_blank">https://mail.gnome.org/archives/=
wm-spec-list/2007-June/msg00000.html</a><br>
<a href=3D"https://mail.gnome.org/archives/wm-spec-list/2009-November/msg00=
004.html" rel=3D"noreferrer" target=3D"_blank">https://mail.gnome.org/archi=
ves/wm-spec-list/2009-November/msg00004.html</a><br>
<br>
There was even a proposal for `_NET_WM_WORKAREAS` and `_NET_WM_STRUT_AREAS`=
: <br>
<a href=3D"https://mail.gnome.org/archives/wm-spec-list/2009-November/msg00=
005.html" rel=3D"noreferrer" target=3D"_blank">https://mail.gnome.org/archi=
ves/wm-spec-list/2009-November/msg00005.html</a> <br>
that was never merged to wm-spec. :-(<br></blockquote><div>=C2=A0</div><a h=
ref=3D"https://gitlab.freedesktop.org/xdg/xdg-specs/-/merge_requests/22" ta=
rget=3D"_blank">https://gitlab.freedesktop.org/xdg/xdg-specs/-/merge_reques=
ts/22</a></div><div class=3D"gmail_quote"><br></div><div class=3D"gmail_quo=
te">Here is my proposal. Linked merge requests are merged with small change=
s - properties are not using _NET namespace as it was decided that it is no=
t a good idea to change/update specification.<br></div><div class=3D"gmail_=
quote"><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0=
px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Just like KWin, xmonad and likely a few other tiling WMs implement the <br>
same workaround of not allowing struts to cover an entire screen. That&#39;=
s <br>
been there since 2009, at least.<br>
<br>
But I guess I&#39;m late to the party and we&#39;ll need to implement <br>
`_GNOME_WM_STRUT_AREA` as well, as that&#39;s now a thing in gnome-panel an=
d <br>
elsewhere, and we&#39;re getting bug reports about it. :-/<br></blockquote>=
<div><br></div><div>Bug reports? gnome-panel still sets old STRUT propertie=
s, it does not require that the window manager supports new property.<br></=
div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0px =
0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
-- <br>
Tom=C3=A1=C5=A1 &quot;liskin&quot; (&quot;Pivn=C3=ADk&quot;) Janou=C5=A1ek,=
 <a href=3D"https://work.lisk.in/" rel=3D"noreferrer" target=3D"_blank">htt=
ps://work.lisk.in/</a><br>
</blockquote></div><br clear=3D"all"><br>-- <br><div dir=3D"ltr"><div dir=
=3D"ltr">Alberts Muktup=C4=81vels<br></div></div></div>

--000000000000033a7c05c55df987--

--===============5673306072102439809==
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

--===============5673306072102439809==--