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 <<a href=3D"mailto:[email protected]" target=3D"_blan= k">[email protected]</a>> 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> >Am 2018-12-27 22:22, schrieb Alberts Muktup=C4=81vels via wm-spec-list:= <br> >>First I think there should be new property for struts because exist= ing<br> >>properties can not be used to set struts on edges between two<br> >>monitors. New property could be named _NET_WM_STRUT_AREA and used t= o<br> >>define rectangular area (x, y, width and height) that should be<br> >>excluded from work area. This property will need to follow at least= <br> >>two rules:<br> >>- at least one edge of area must match with monitor edge. The windo= w<br> >>manager must ignore strut if it is not placed at monitor edge.<br> >>- if strut appears on edge between two monitors it should be ignore= d<br> >>when calculating _NET_WORKAREA to ensure backward compatibility.<br= > ><br> >sounds fine to me.<br> ><br> >As a note: in KWin we allow panels on shared edges to set a strut with = <br> >the existing protocol. We just decided that a strut is not allowed to <= br> >cover a complete screen. Technically it's a violation of the curren= t <br> >protocol, but might be a better idea than introducing yet another <br> >property.<br> ><br> >It could be a simple textual addition like: "Struts covering a mon= itor <br> >completely are ignored for that monitor"<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'= s <br> been there since 2009, at least.<br> <br> But I guess I'm late to the party and we'll need to implement <br> `_GNOME_WM_STRUT_AREA` as well, as that's now a thing in gnome-panel an= d <br> elsewhere, and we'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 "liskin" ("Pivn=C3=ADk") 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==--