Re: Improving work areas with multiple monitors



Hi,

On Tue, Jun 22, 2021 at 7:42 PM Tomas Janousek <tomi nomi cz> wrote:
Hi Alberts and Martin,

On Mon, Dec 31, 2018 at 09:44:24AM +0100, Martin Flöser wrote:
>Am 2018-12-27 22:22, schrieb Alberts Muktupāvels 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áš "liskin" ("Pivník") Janoušek, https://work.lisk.in/


--
Alberts Muktupāvels


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]