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

Configurable empty workspace removal behaviour #774

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

xDarksome
Copy link
Contributor

Related to #586

Adds a configuration option that allows to choose the behavior of the compositor when an empty workspace gets deactivated.

RemoveEmpty::All - same as currently, the empty workspace gets removed and the ones after it get shifted
RemoveEmpty::Trailing - removes only "trailing" empty workspaces, the ones after which there are no non-empty workspaces anymore

Been running it for a week, works fine. There was an edge case that caused a crash here, because now previously active workspace may become invalid (out of bounds). Let me now if there's a better way to fix it.

@Drakulix
Copy link
Member

Ping @pop-os/ux, mostly for taking note of this use-case. (Though I would appreciate some input.)

Thank you for the work you put into this, but I honestly don't think we want this contribution - not even as a (likely rarely tested) config option - as this further complicates the workspace logic, which we want to revisit in the future anyway.

Static/Named workspaces are still a feature we want to eventually have and it is unclear how exactly that would interact with these changes. (And we don't want to silently drop features, like this config settings, when we start reworking the logic.)

@xDarksome
Copy link
Contributor Author

xDarksome commented Aug 26, 2024

Sure, no problem. I'll maintain a fork until this usecase is covered. Let me know once there's a design for something like this ready, I'll consider implementing it.

The current behavior of the compositor contradicts my workflow in two aspects:

  • non-trailing empty workspaces are being automatically removed and everything gets shifted (this PR fixes this for me)
  • unable to switch to a non-existing empty workspace, basically I need dynamic workspace creation

Static workspaces are one way to cover these, but I also think that this logic can be integrated into dynamic ones. A lot of the popular tiling wms/compositors have this behavior by default.

From the user perspective though, static vs dynamic matters only in the context of the workspaces widget ui. Compositor may always have a fixed amount of workspaces, but ui displays only non-empty ones, for example.

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

Successfully merging this pull request may close these issues.

2 participants