Improving work areas with multiple monitors


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?

Alberts Muktupāvels

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