SolarLune / Grout

Grout is a manual window tiling script for Linux.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Grout requires the full desktop space

SolarLune opened this issue · comments

Grout will attempt to use the full space on the screen when tiling, even if part of it is occupied by something that doesn't allow windows to intersect with it (think a 1920x1080 screen that has a panel that doesn't hide at the top).

Not sure if there's anything that really can be done for this; maybe I can check the position of the window after moving to see if it was moved to the target position successfully? If not, then we know there's "unavailable space" somewhere on the desktop and can adjust the window's size to compensate.

Alternatively, we can define a "working area" where tiling is inset by that amount, though that's more work for the user. Ideally, this should be automatic.

This has been partially resolved by adding borders to ensure placing windows doesn't bleed into unavailable areas. The ideal solution would be to know ahead of time what areas are unavailable, but I don't feel like that library exists, and I'm wary of adding yet another dependency to make things more complex than necessary.

Also, I couldn't just figure out the difference between where the window was supposed to be before moving and where the window ended up because different window types report their positions with different offsets to the OS through xdotool (because of course they do). For example, Brave browser reports its position as its very top-left corner (good), while Godot reports the position as being 100 pixels lower (what). GTK apps seem to be inset on all directions, which has to be accounted for as well (WHAT).

I think the solution of a simple user-defined "no-zone" is as simple and clean as I'll get it for now, so I'll close this.