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

Wm container feature #1225

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

Conversation

pro470
Copy link

@pro470 pro470 commented Jan 10, 2025

This is a PR about the idea I had of having something between Container and Workspace, but we don't. What I did is to make the Container more capable, a container has its own layout. So what did we break the answer is nothing everything is working I obviously didn't test all commands, but the important ones were tested, and it all worked. With that, we could have something between container and workspace but in the end, it is just a fancier container.

Pros:

  1. One of the biggest things is the layout. We can now have a grid layout on the left side of the screen and something else on the other side. The combination of layouts would be insane. I don't know if there is a limit when it comes to layout windows even with the default layouts that come with komorebi now also think about also customs layout added on top of that
  2. we can move multiple windows at once
  3. we can now have semi paused workspace or better described a paused container.

Cons:

  1. we need to look at the stack bar because it is rendering on the window, not on the container
    yeah, I think it is
    I only have some things to discuss
  2. I am not good at multithreading, so I pass the atomic values as parameters to the function. If you say I can load the atomic values in the container update function. Then I can change it.
  3. because the only thing I did was to add all the features that a workspace has to container. There are some duplicated code blocks. I didn't fix them because I don't know if you like the change and I wanted to show how minimal things we need to change to get the feature to work.

I don't think this code is at your level so you have three options:

  1. I can implement it again, but you need to guide me on what you really want because I am not a good rust developer (rust is hard)
  2. you can implement it yourself
  3. or you can just ignore this PR.

Anyway, see this code as a proof of concept and not like a real PR if I should then do something else then opening the PR. I don't know like opening a discussion or so. You need to tell me.
I didn't implement the commands because I don't know if you like to change how something works this would also change some command's behavior.

Yeah, that's it.

pro470 and others added 30 commits January 2, 2025 18:52
This commit adds an optional --komorebi-config flag to the check command
to allow users to check a komorebi.json file in an arbitrary location.
This commit adds support for specifying a layout flip axis for each
workspace in the static configuration file.
…container not the window itself and also fixed formating
This commit adds mutex lock scoping in
WindowManager::enforce_workspace_rule to avoid a deadlock when
should_update_focused_workspace evaluates to true.

fix LGUG2Z#1212
If a user triggers the workspace reconciliator by clicking on an app in
the start bar or via alt-tab, a notification should be sent to
subscribers such as komorebi-bar so that the focused workspace can be
updated.

The various komorebi reconciliators and manager modules don't emit
events to subscribers themselves (yet?), so for now we can pass on the
uncloak event.

Maybe we can look into expanding the Notification enum in the future.

fix LGUG2Z#1211
This commit adds a new komorebic command "stackbar-mode" to allow users
to change stackbar modes programmatically.
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