Currently quicktile places windows so that they overlap the IceWM taskbar.
The Taskbar does have _NET_WM_STRUT set as 0, 0, 0, 49. However, the taskbar window is not listed _NET_CLIENT_LIST because it is not a framed window (i.e. it is not movable). It is listed in xwininfo -tree -root but only several levels deep.
IceWM does set _WIN_WORKAREA and _NET_WORKAREA so that the task bar is excluded. Looking at the version history, it appears that _NET_WORKAREA used to be used but no longer is, apparently to better support setups with multiple differently sized monitors.
I don't really know how I should approach fixing this, whether to modify IceWM or to modify quicktile. Modifying IceWM would require a bit of a hack to handle task bar specially. I'm not sure if it would get accepted by upstream, as the specifications are not exactly clear on whether _NET_CLIENT_LIST should include such stationary windows or not.
Alternatively quicktile could be modified to either search all windows for _NET_WM_STRUT (sounds unnecessarily slow), or to take some kind of intersection of _NET_WORKAREA and individual monitor sizes. But I'm not sure if that might mess up multi-monitor support on some window managers.
I've also been considering just adding a configuration options to add a configurable amount of margin at top/left/right/bottom of each monitor. This could be used to work around all kinds of issues like this, even though it is not a very clean way to do it.
Currently quicktile places windows so that they overlap the IceWM taskbar.
The Taskbar does have
_NET_WM_STRUTset as0, 0, 0, 49. However, the taskbar window is not listed_NET_CLIENT_LISTbecause it is not a framed window (i.e. it is not movable). It is listed inxwininfo -tree -rootbut only several levels deep.IceWM does set
_WIN_WORKAREAand_NET_WORKAREAso that the task bar is excluded. Looking at the version history, it appears that_NET_WORKAREAused to be used but no longer is, apparently to better support setups with multiple differently sized monitors.I don't really know how I should approach fixing this, whether to modify IceWM or to modify quicktile. Modifying IceWM would require a bit of a hack to handle task bar specially. I'm not sure if it would get accepted by upstream, as the specifications are not exactly clear on whether
_NET_CLIENT_LISTshould include such stationary windows or not.Alternatively quicktile could be modified to either search all windows for
_NET_WM_STRUT(sounds unnecessarily slow), or to take some kind of intersection of_NET_WORKAREAand individual monitor sizes. But I'm not sure if that might mess up multi-monitor support on some window managers.I've also been considering just adding a configuration options to add a configurable amount of margin at top/left/right/bottom of each monitor. This could be used to work around all kinds of issues like this, even though it is not a very clean way to do it.