Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request: Filter windowed tiles #5

Open
nclarius opened this issue Aug 10, 2022 · 4 comments
Open

Feature request: Filter windowed tiles #5

nclarius opened this issue Aug 10, 2022 · 4 comments

Comments

@nclarius
Copy link
Contributor

Related to the other proposal, it might be useful to have the assistant only show on tiles that are not already filled by some window.

@emvaized
Copy link
Owner

I think that recently introduced "snap groups" features are the natural extension for this script, and it's future development should focus on this direction, making them more stable and more smoothly integrated in the system and the workflow. "Snap groups" features suggest users to think of snapped windows as of one window, which can be minimized/restored and focused with a single click. I just haven't introduced them properly to the users yet, with video introduction and stuff (as I found out it's not working on Wayland), so couldn't gather some feedback to confirm or refute my opinion.

However, the feature you request in this form may not align well with the "snap groups" functionality, as it will prevent users from creating several snap groups of the same layout. From my point of view, that would be as if two options in the config would imply completely different workflows, which would likely contradict with each other.

But we probably could rethink it so that it would complement and extend the "snap groups" workflow instead of contradicting it. For example, currently there's an option in settings to try to fill the area on closing the snapped window, which resizes other windows from the same group to cover the gap. Perhaps we could introduce something similar for when a new window gets snapped: if there's active unminimized snap group right behind it, and it has any window matching the same size and position, it will get snapped with new window in the group, and the assist will not show; or if it's possible, other windows in the group could resize to fit a newly snapped window in the layout of this group.

Implementing this will require additional work on determining if the given snap group is on top of the windows stack or not, and I'm not sure if this feature will be intuitive enough and easy to understand for users.

Please let me know what are your thoughts on this.

@emvaized
Copy link
Owner

emvaized commented Aug 22, 2022

I just implemented new test option "Try to fit snapped window in group behind it" in the dev branch, which does more or less what I described: when there's active snap group behind the newly snapped window, the script will try to fit it in the group, and if it succeeds assist will not show.

fit-in-group-behind

It's not fully stable yet, sometimes the script fails to detect snap group behind the window – I believe there must be a better way to find out windows stacking order rather than relying on last activation time. But it could give a taste of how I see this option.

@emvaized
Copy link
Owner

emvaized commented Aug 29, 2022

After some polishing, the feature is now released in the new version 1.6.

Perhaps it's also possible to improve it by making a window "fit" in a snap group when it already fits it, and no need to resize other windows to let it in — I may think about it for next releases. But for now, the need for such option can be resolved by enabling the last three "snap groups" features in the script settings.

@emvaized
Copy link
Owner

"Try to fit snapped window in group behind it" now also tries to fit a window if it doesn't intersect with other windows in the group. Assist is not shown if it manages to do so.

This behavior can be tested by installing latest dev branch code — I consider it a 2.0-dev version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants