-
-
Notifications
You must be signed in to change notification settings - Fork 724
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
special workspaces showing randomly #2646
Comments
Can you describe your issue further? When the special workspaces do appear, do you see any windows registered to the workspaces when running |
It happens using pyprland & the scratchpad extension, using special workspaces for each scratchpad, and clients are moved from/to it on demand. |
That's a very important information, as it can help find out what's happening. I'll make a patch with some logs so you can run against and paste the output here after reproducing the problem |
Just poke me and I'll install the git version to run some tests. |
Sorry for taking a while, @fdev31, had a busy weekend! Before running against any patches, could you check Hyprland's IPC to see if the workspaces are correctly reported as destroyed after you remove all windows from them? To do so, please run this command and reproduce the issue: socat - UNIX-CONNECT:/tmp/hypr/$HYPRLAND_INSTANCE_SIGNATURE/.socket2.sock Afterwards, please attach a file with the output! Output ExampleWhen creating and destroying workspaces, you should see something like this (excluding the comments):
|
So I think I was mistaken about the "adding up" thing, it's just that I have many of them and they start with the same prefix... about the test, those workspaces should NEVER show, regardless of if they are created/destroyed, isn't it ? (When I show one, with single monitor setup, it never shows...)
Another try, withoug plugging/unplugging anything, I switch screens & show/hide special workspaces a few times, worked fine but the last one which made the special workspace visible:
|
Looks like our configurations/usages are very different! I never create or delete workspaces explicitly... I made one more test where I isolated the sequence producing the issue a bit more, here is the "prologue":
And then I guess the first line of this sequence (showing the special workspace on a given screen) made the issue:
|
There's a lot of info on these messages, so I'll break them down here:
I think there's a misconception here. Creating and destroying workspaces are processes that Hyprland does; if a workspace is focused and it was previously empty (no windows) then it's created just in time for you to switch to it. Then, if said workspace is left empty and unfocused, it is destroyed. The only exception to this rule are workspaces explicitly set as
Workspaces will show if they exist in the bar that corresponds to that monitor. If The exception here are workspaces whose names match any regexes in The tl;dr here is: if a workspace exists and you didn't configure it to be ignored, then it will be shown in at least one of your bars.
Probably related to the configurations I mentioned. Please attach your waybar config so we can be certain that's the case.
Judging from these lines in the log:
Hyprland decided to move the workspace I was going to comment on other inputs and logs you gave, but it's pretty hard to tell what's happening while not seeing the screen or Hyprland's current state. Could you re-reproduce the problem and post the output of the following commands both before and after reproducing the problem? Also, send in the IPC's logs again. hyprctl workspaces -j hyprctl clients -j hyprctl monitors -j and, if you're running Hyprland ≥ 0.32.0: hyprctl workspacerules -j |
I kind of disagree with your remarks, what you mention applies to normal workspaces, not the special ones... there is even a special config to handle that ("show-special") and I provided a patch fixing the problem... are we talking about the same thing? Here is my config:
|
Actually, you're right, we might as well not be. You haven't provided any images or the output of
Your patch seems to edit some of Hyprland's workspaces module code, but your config uses I'm glad you manged to fix the problem for you, though :) I won't be commenting further; learn some manners. |
Haha, thanks for the remark, at some point I switched so my configuration refers to "wlr/workspaces" but "hyprland/workspaces" is what I'm using, so I guess I have no configuration at all... so that explains the confusion :) I didn't send a screenshot yet but I will, but it's pretty basic: instead of showing "normal" desktops only (eg: "1 2 3") it will show SOME special desktops if more than one monitor is used (eg: "1 2 3 foo bar baz" if foo, bar & baz are special workspaces, having the "special:" prefix). |
Sometimes special workspaces are showing, while it's not expected (it can be very annoying if you use a lot of them).
I was able to fix it by adding:
if (workspace.starts_with("special")) return;
at the start of
void Workspaces::on_workspace_moved(std::string const &payload)
in theworkspaces.cpp
file of the hyprland module.I didn't see how it was implemented regarding #1983 so this might not be the expected solution.
The text was updated successfully, but these errors were encountered: