-
Notifications
You must be signed in to change notification settings - Fork 324
Outer gaps cause weird tiling #22
Comments
This is actually probably just due to the way the gaps patch works. I'll still try to take a look at it sometime. |
I will shelve this for now as it is pretty much "works as intended". If it comes up again, this can be reopened. |
I just want to note on this issue that there's possibly a fix for it in this commit: op8867555/i3-gaps@26bdec7 I hadn't noticed this, I guess because I don't usually tile in 3+ columns, but I just confirmed it still happens. @op8867555, do you have the time to update your branch for a PR if this is an easy fix? |
@cameronleger I think the patch is simply enough to update / rebase. Should I just update it (without feature-54) to current gaps-next and send a PR? |
I'll let the owner decide what to do, but assuming #210 is merged then the math will have to be updated, so perhaps merging onto that branch will be less work than doing it twice. Those changes are also straightforward. |
From the top of my head I see nothing wrong with the idea of that patch, though it might be worth testing it for a while. I'd also say let's test and merge #210 first and then revisit this. |
It's sounds good to me, I will give #210 a try first. |
@Airblader, should we revisit this? Personally, it's not a high priority, but I can see it being raised again given the new gap options. It's visible with three vertical columns and non-zero side gaps. I rarely have three columns, and if I do I remove the side gaps for the extra space, which is why I don't consider it a huge issue. Here's an image previously posted on #54 that describes the issue: |
Yes, I'd definitely not be opposed to fixing this. :) |
Currently, containers only consider their neighbors and screen edges If >2 containers are in a line, the outer containers adjust from outer gaps, but the middle containers know nothing of this and only consider the inner gaps When the outer gaps differ substantially from the inner gaps, the outer containers are smaller as only they adjust for the larger outer gaps With this change, the containers stop considering the edges, and instead the workspace as a whole is inset before any containers The result is that many tiled containers have the same size, and the gaps overall work as the user might expect them to
Currently, containers only consider their neighbors and screen edges If >2 containers are in a line, the outer containers adjust from outer gaps, but the middle containers know nothing of this and only consider the inner gaps When the outer gaps differ substantially from the inner gaps, the outer containers are smaller as only they adjust for the larger outer gaps With this change, the containers stop considering the edges, and instead the workspace as a whole is inset before any containers The result is that many tiled containers have the same size, and the gaps overall work as the user might expect them to
Currently, containers only consider their neighbors and screen edges If >2 containers are in a line, the outer containers adjust from outer gaps, but the middle containers know nothing of this and only consider the inner gaps When the outer gaps differ substantially from the inner gaps, the outer containers are smaller as only they adjust for the larger outer gaps With this change, the containers stop considering the edges, and instead the workspace as a whole is inset before any containers The result is that many tiled containers have the same size, and the gaps overall work as the user might expect them to
Currently, containers only consider their neighbors and screen edges If >2 containers are in a line, the outer containers adjust from outer gaps, but the middle containers know nothing of this and only consider the inner gaps When the outer gaps differ substantially from the inner gaps, the outer containers are smaller as only they adjust for the larger outer gaps With this change, the containers stop considering the edges, and instead the workspace as a whole is inset before any containers The result is that many tiled containers have the same size, and the gaps overall work as the user might expect them to
Currently, containers only consider their neighbors and screen edges If >2 containers are in a line, the outer containers adjust from outer gaps, but the middle containers know nothing of this and only consider the inner gaps When the outer gaps differ substantially from the inner gaps, the outer containers are smaller as only they adjust for the larger outer gaps With this change, the containers stop considering the edges, and instead the workspace as a whole is inset before any containers The result is that many tiled containers have the same size, and the gaps overall work as the user might expect them to
Currently, containers only consider their neighbors and screen edges If >2 containers are in a line, the outer containers adjust from outer gaps, but the middle containers know nothing of this and only consider the inner gaps When the outer gaps differ substantially from the inner gaps, the outer containers are smaller as only they adjust for the larger outer gaps With this change, the containers stop considering the edges, and instead the workspace as a whole is inset before any containers The result is that many tiled containers have the same size, and the gaps overall work as the user might expect them to
Currently, containers only consider their neighbors and screen edges If >2 containers are in a line, the outer containers adjust from outer gaps, but the middle containers know nothing of this and only consider the inner gaps When the outer gaps differ substantially from the inner gaps, the outer containers are smaller as only they adjust for the larger outer gaps With this change, the containers stop considering the edges, and instead the workspace as a whole is inset before any containers The result is that many tiled containers have the same size, and the gaps overall work as the user might expect them to
Currently, containers only consider their neighbors and screen edges If >2 containers are in a line, the outer containers adjust from outer gaps, but the middle containers know nothing of this and only consider the inner gaps When the outer gaps differ substantially from the inner gaps, the outer containers are smaller as only they adjust for the larger outer gaps With this change, the containers stop considering the edges, and instead the workspace as a whole is inset before any containers The result is that many tiled containers have the same size, and the gaps overall work as the user might expect them to
Currently, containers only consider their neighbors and screen edges If >2 containers are in a line, the outer containers adjust from outer gaps, but the middle containers know nothing of this and only consider the inner gaps When the outer gaps differ substantially from the inner gaps, the outer containers are smaller as only they adjust for the larger outer gaps With this change, the containers stop considering the edges, and instead the workspace as a whole is inset before any containers The result is that many tiled containers have the same size, and the gaps overall work as the user might expect them to
Currently, containers only consider their neighbors and screen edges If >2 containers are in a line, the outer containers adjust from outer gaps, but the middle containers know nothing of this and only consider the inner gaps When the outer gaps differ substantially from the inner gaps, the outer containers are smaller as only they adjust for the larger outer gaps With this change, containers always inset by the inner gap settings, and the workspace is now inset by the outer gap settings The result is that many tiled containers have the same size, and the gaps overall work as the user might expect them to Previous combinations of outer/inner gap settings still produce the same result, albeit with fixed outer-most sizes
Currently, containers only consider their neighbors and screen edges If >2 containers are in a line, the outer containers adjust from outer gaps, but the middle containers know nothing of this and only consider the inner gaps When the outer gaps differ substantially from the inner gaps, the outer containers are smaller as only they adjust for the larger outer gaps With this change, containers always inset by the inner gap settings, and the workspace is now inset by the outer gap settings The result is that many tiled containers have the same size, and the gaps overall work as the user might expect them to Previous combinations of outer/inner gap settings still produce the same result, albeit with fixed outer-most sizes
OK, I believe I've fixed this as my test results show perfectly tiling grids that respond as I'd expect them to with different combinations of outer/inner gaps. I just opened #253 for this. Put simply, containers will only consider inner gap settings, and the workspace is now inset by the outer gap settings. |
Currently, containers only consider their neighbors and screen edges If >2 containers are in a line, the outer containers adjust from outer gaps, but the middle containers know nothing of this and only consider the inner gaps When the outer gaps differ substantially from the inner gaps, the outer containers are smaller as only they adjust for the larger outer gaps With this change, containers always inset by the inner gap settings, and the workspace is now inset by the outer gap settings The result is that many tiled containers have the same size, and the gaps overall work as the user might expect them to Previous combinations of outer/inner gap settings still produce the same result, albeit with fixed outer-most sizes
Currently, containers only consider their neighbors and screen edges If >2 containers are in a line, the outer containers adjust from outer gaps, but the middle containers know nothing of this and only consider the inner gaps When the outer gaps differ substantially from the inner gaps, the outer containers are smaller as only they adjust for the larger outer gaps With this change, containers always inset by the inner gap settings, and the workspace is now inset by the outer gap settings The result is that many tiled containers have the same size, and the gaps overall work as the user might expect them to Previous combinations of outer/inner gap settings still produce the same result, albeit with fixed outer-most sizes
Currently, containers only consider their neighbors and screen edges If >2 containers are in a line, the outer containers adjust from outer gaps, but the middle containers know nothing of this and only consider the inner gaps When the outer gaps differ substantially from the inner gaps, the outer containers are smaller as only they adjust for the larger outer gaps With this change, containers always inset by the inner gap settings, and the workspace is now inset by the outer gap settings The result is that many tiled containers have the same size, and the gaps overall work as the user might expect them to Previous combinations of outer/inner gap settings still produce the same result, albeit with fixed outer-most sizes
This issue is particularly noticeable on 4K screen. When I try to make some workspace smaller than 4K and put in the center using outer gaps, after splitting it into three columns one window which is closest to the outer gap gets size < 0 (which, I think, cause |
Currently, containers only consider their neighbors and screen edges If >2 containers are in a line, the outer containers adjust from outer gaps, but the middle containers know nothing of this and only consider the inner gaps When the outer gaps differ substantially from the inner gaps, the outer containers are smaller as only they adjust for the larger outer gaps With this change, containers always inset by the inner gap settings, and the workspace is now inset by the outer gap settings The result is that many tiled containers have the same size, and the gaps overall work as the user might expect them to Previous combinations of outer/inner gap settings still produce the same result, albeit with fixed outer-most sizes
@seletskiy, are you speaking about the released i3-gaps or the branch I have that works-around this issue? I have a few changes that I try to keep up-to-date and applied on-top of this repo, and in my experience it resolves this issue and I haven't seen any new issues. |
@cameronleger I was talking about released i3-gaps. Just tested your branch ( Hope it will be merged into upstream. |
While I recognize that is (still) a valid issue, I will close it in lieu of i3/i3#3724 |
Currently, containers only consider their neighbors and screen edges If >2 containers are in a line, the outer containers adjust from outer gaps, but the middle containers know nothing of this and only consider the inner gaps When the outer gaps differ substantially from the inner gaps, the outer containers are smaller as only they adjust for the larger outer gaps With this change, containers always inset by the inner gap settings, and the workspace is now inset by the outer gap settings The result is that many tiled containers have the same size, and the gaps overall work as the user might expect them to Previous combinations of outer/inner gap settings still produce the same result, albeit with fixed outer-most sizes
Currently, containers only consider their neighbors and screen edges If >2 containers are in a line, the outer containers adjust from outer gaps, but the middle containers know nothing of this and only consider the inner gaps When the outer gaps differ substantially from the inner gaps, the outer containers are smaller as only they adjust for the larger outer gaps With this change, containers always inset by the inner gap settings, and the workspace is now inset by the outer gap settings The result is that many tiled containers have the same size, and the gaps overall work as the user might expect them to Previous combinations of outer/inner gap settings still produce the same result, albeit with fixed outer-most sizes
@cameronleger I somehow missed your patch all this time. Thank you so much for sharing it here. Let's see if we can upstream this in our effort to merge the i3-gaps and i3 projects. |
Currently, containers only consider their neighbors and screen edges If >2 containers are in a line, the outer containers adjust from outer gaps, but the middle containers know nothing of this and only consider the inner gaps When the outer gaps differ substantially from the inner gaps, the outer containers are smaller as only they adjust for the larger outer gaps With this change, containers always inset by the inner gap settings, and the workspace is now inset by the outer gap settings The result is that many tiled containers have the same size, and the gaps overall work as the user might expect them to Previous combinations of outer/inner gap settings still produce the same result, albeit with fixed outer-most sizes
That is quite alright; I believe another issue or pull request was where other related conversations occurred, and you had mentioned wanting additional tests to be sure about the changes since it was a significant change. I've been running that branch for years without issues. I'll rebase and rebuild for now! |
Currently, containers only consider their neighbors and screen edges. If >2 containers are in a line, the outer containers adjust from outer gaps, but the middle containers know nothing of this and only consider the inner gaps. When the outer gaps differ substantially from the inner gaps, the left-most and right-most containers are smaller as only they adjust for the larger outer gaps. This commit changes the rendering: containers are now always inset by their inner gap settings, and workspace containers is now inset by the outer gap settings. The result is that many tiled containers have the same size, and the gaps overall work as the user might expect them to previous combinations of outer/inner gap settings still produce the same result, albeit with fixed outer-most sizes. fixes Airblader/i3#22 related to i3#3724
Currently, containers only consider their neighbors and screen edges. If >2 containers are in a line, the outer containers adjust from outer gaps, but the middle containers know nothing of this and only consider the inner gaps. When the outer gaps differ substantially from the inner gaps, the left-most and right-most containers are smaller as only they adjust for the larger outer gaps. This commit changes the rendering: containers are now always inset by their inner gap settings, and workspace containers is now inset by the outer gap settings. The result is that many tiled containers have the same size, and the gaps overall work as the user might expect them to previous combinations of outer/inner gap settings still produce the same result, albeit with fixed outer-most sizes. fixes Airblader/i3#22 related to i3#3724
…5252) Currently, containers only consider their neighbors and screen edges. If >2 containers are in a line, the outer containers adjust from outer gaps, but the middle containers know nothing of this and only consider the inner gaps. When the outer gaps differ substantially from the inner gaps, the left-most and right-most containers are smaller as only they adjust for the larger outer gaps. This commit changes the rendering: containers are now always inset by their inner gap settings, and workspace containers is now inset by the outer gap settings. The result is that many tiled containers have the same size, and the gaps overall work as the user might expect them to previous combinations of outer/inner gap settings still produce the same result, albeit with fixed outer-most sizes. fixes Airblader/i3#22 related to #3724 Co-authored-by: Cameron Leger <contact@cameronleger.com>
…3#5252) Currently, containers only consider their neighbors and screen edges. If >2 containers are in a line, the outer containers adjust from outer gaps, but the middle containers know nothing of this and only consider the inner gaps. When the outer gaps differ substantially from the inner gaps, the left-most and right-most containers are smaller as only they adjust for the larger outer gaps. This commit changes the rendering: containers are now always inset by their inner gap settings, and workspace containers is now inset by the outer gap settings. The result is that many tiled containers have the same size, and the gaps overall work as the user might expect them to previous combinations of outer/inner gap settings still produce the same result, albeit with fixed outer-most sizes. fixes Airblader/i3#22 related to i3#3724 Co-authored-by: Cameron Leger <contact@cameronleger.com>
Effect seems to be stronger the bigger the outer gaps are. Doesn't seem to happen when outer gaps aren't used.
The text was updated successfully, but these errors were encountered: