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

Disable tiling on specific Workspace #921

Open
oisanjaya opened this issue Aug 5, 2024 · 3 comments
Open

Disable tiling on specific Workspace #921

oisanjaya opened this issue Aug 5, 2024 · 3 comments
Labels
enhancement Adds a new feature or extends scope

Comments

@oisanjaya
Copy link

While i like paperWM very much, but not all my workflow can be done in tiling window manner. Specifically when i use Lazarus IDE which i need many floating windows.

I propose adding option to disable tiling on specific Workspace. So that windows inside said Workspace keep default floating states.

@oisanjaya oisanjaya added the enhancement Adds a new feature or extends scope label Aug 5, 2024
@Lythenas
Copy link
Collaborator

Lythenas commented Aug 5, 2024

I think this could be worth adding in some form and I believe it should be possible. Although there are probably a bunch of edge cases that need to be considered (moving windows between workspaces etc.).

As a workaround it should be possible to configure Winprops for the windows of Lazarus IDE and send them to the scratch layer. Although that would make them visible on all workspaces. So it is not ideal.

@oisanjaya
Copy link
Author

oisanjaya commented Aug 7, 2024

I never done GNOME extensions before, but i try to hack into tiling.js:insertWindow() by simply returns if said window/space belongs to certain workspace by comparing space.index to arbitrary number i chose. It worked but i see problem that now no window shown in overview mode. Of course maybe because I'm very unfamiliar with this function. Also I'm not sure what side effect else maybe caused by this mishandling.

@Lythenas moving Lazarus IDE into scratch layer does not ideal, because Lazarus is an MDI which creates many child window. If I have to use scratch layer, then I would move so many window into scratch layer and disrupts purpose of scratch layer which is containing few temporary window that can be quickly access from any workspace

@Lythenas
Copy link
Collaborator

Lythenas commented Aug 7, 2024

I think insertWindow is probably a good starting point. This part may be relevant: https://github.com/paperwm/PaperWM/blob/release/tiling.js#L4060-L4069 there are already some types of windows that we don't want to tile.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Adds a new feature or extends scope
Projects
None yet
Development

No branches or pull requests

2 participants