[Bug Fix] Per-screen virtual desktops

Hi fellow KDE users,

This bug is open since 19 years… Its time to get it closed.

Background

See Bug: 107302 - Per-screen virtual desktops

I have a 3 Display setting, One Laptop for work, after login, KDE turns this display off. Two 4k Monitors that display KDE for me.

Feature Requirement

  • Usable on Plasma 6 Wayland
  • When my mouse is on monitor 1 and I press the shortcut for switch virtual desktop to next/prev, only the virtual desktops with its apps on this monitor are switched. When the mouse is on monitor 2 only the virtual desktops on monitor two are switched with their programms. Basicly like Neal Gompa described in the comments.
  • Tied to a display optionally to a activity. As i dont use activities this should work so that its not required to use activities but rather physical displays.
  • Additional monitors or Laptops who have their displays turned off are ignored.Only Displays that are active are used.
  • Current behaviour of switching all desktops at once should remain possible as a (checkbox) option.

Payment

I’m willing to pay/plege 400 Euros as a start. But there are other people in the Bugreport who are hopefully willing to put money behind it as well. Payment after completion and upstream acceptance.

I can pay with PayPal.

Bonus Points

If the feature is implemented in a way that is will be easily carried over to Plasma 7 or whatever it will be called i will put +30 Euros.

Reasoning

This is a long requested feature. Even if its not enough money to fully fund the development i hope it shows that its badly wanted.

I hope this gives a push to someone to implement it for this amount or any amount we reach here.

Please reach out if you have any questions.

Best

Manux

5 Likes

Used my special forum privileges to edit your post and insert the actual link to the bug report. Thanks & let’s hope someone takes up the challenge to make it happen after all!

1 Like

Hmm, what you’re describing seems different to what the bug report says.

What would be really nice if there were a common set of virtual desktops for both screens, but that you could choose quite easily which screen would display the windows of which virtual desktop.

Basically, how it works in Sway.

Do you really just want to be able to uncouple the virtual desktop selection for each monitor but not be able to choose which virtual desktop shows on which monitor? For me that would be the most useful and wanted part.

For the Sway-like implementation I would additionally pay 100€ also after it gets completed and upstreamed (preferably via SEPA bank transfer, also open to stuff like ko-fi that just lets me pay with credit card. Not paypal)

(if someone starts working on this please confirm beforehand that I’m still up for paying! I should be but you never know what might happen)

Hi

I’m not sure how sawy does it and could not find a youtube video of it.
I know how Mac does it and that is the behavior i want.
I think basically its the behavior that is the desired outcome if you read enough of the comments in the bugreport. I also think that we we want the same thing.
But im not sure how its technical implemented. So my description above was from a user perspective. I want basically the behavior like Brodie Robertson describes in his video and MacOs does implement it. This is the mac behavior that saves me a lot of time at work. And i think also the sway one. I just want that the mouse curser does set the focus which virtual desktop does get switched and not another key you have to hold down to switch monitor one or monitor two.

I hope this clears it up a bit but as im not a developer im not sure what needs switching in technical terms i can only provide feedback from a user perspective.

Ah, sorry, I got the impression that you wanted the current KDE system unchanged except for the active virtual desktop being per-monitor. So, one monitor has desktop 1/2/3/4, the other has desktop 1/2/3/4, and you can select them independently but they are always stuck on the same monitor. That was pretty much my main thing that I didn’t want. My bad.

The way macOS does is also fine by me (with “Displays have separate Spaces” turned on), where each display has its own list of desktops but you can drag them to other display in Mission Control. I’d just want to be able to do that without using the mouse too :wink:

How it works in sway is, as far as I remember (it’s been a while since I’ve used it), you have a single list of workspaces, each of which are assigned a unique shortcut. Pressing the shortcut to activate a workspace brings it up on the monitor that currently has focus (unless it is currently visible on another monitor in which case it just moves the focus to the other monitor), and monitors have no relation to workspaces except for the one currently active on that monitor (though now that I think about it, maybe it does keep track of which monitor a workspace was last displayed on and shows it there; correct me if I’m wrong). And workspaces are automatically hidden/deleted if there are no windows on them. Slightly different in how you use it but comes around to the same.

1 Like

I would love to [financially] support for this implementation as well. Maybe the Kwin developer @Zamundaaa can take this over?

Its not much, but I’m willing to donate 30$+ (~ ₹2500+) for this. Thank you.

2 Likes

I am still not clear on what exactly the request is. I have no familiarity with how macOS does anything. Is this similar to how GNOME offers an option for virtual desktops, so only the primary display has virtual desktops and secondary displays are always static?

A video link, or even a couple sketches/annotated images might help make it more clear.

1 Like

I would add 100€ via SEPA or PayPal :slight_smile:

3 Likes

macOS has the Mission Control view which shows you all open windows (pretty much like Plasma’s Toggle Overview shortcut), but it also has a bar at the top where you can manage the desktops of whichever display you’re looking at (full-screen windows like CLion in my screenshot below are their own desktop). Each display has its own independent list of desktops.

There’s a button to add a new desktop on the right, and you can delete desktops via a button that appears when you move your mouse over the desktop in the bar, which moves all of its windows to the current desktop (or the first one in the list, if you’re deleting the current desktop). It’s of course not possible to delete the last desktop on a display.

You can drag a desktop to another display’s desktop list in this view, which moves it including the windows in it to the other display.

This is how it looks:

You can switch between desktops via either keyboard shortcuts (ctrl+left, ctrl+right by default) or a touchpad gesture (both of these switch desktops of whichever display the mouse is currently on), or by clicking on the desktop in the Mission Control view.

I think that’s pretty much the extent of how it works on the Mac. There’s no interaction with the concept of primary display as far as I know (except maybe that when you disconnect a display its desktops are moved to the primary display, but not sure about how exactly the behavior is there).

The important points for me are basically:

  • You can independently switch desktops on each display
  • You can move desktops between displays (a bit clunky on the Mac imo because you need to drag it with the mouse to exactly the other display’s desktop bar while Mission Control is open, and you can’t move the currently active desktop, but it works)
3 Likes

Hi Merrit,

Here is a shorte video[1]. This explains it beste i think.

On Minute 3:30 you can see his two monitors with Desktops 1,2 and 3 on one monitor with applications in them. Then On Monitor tow you see Desktop 4 and 5. Now these are indivendently switchable. So you can look at Desktop 3 on the first Monitor and then switch on the second monitor from Desktop 4 to Desktop 5 but only this monitor would switch. Monitor one will still show Desktop 3. You can then switch to Desktop 1 on Monitor one but Monitor two will still show Desktop 5.

There is a good explanaiton in the orilly book about spaces [2]

Import is the section:

  • Multiple monitors. If you have a second monitor connected to your Mac (or even several), each one can have its own set of Spaces.If “Displays have separate Spaces” is turned on in the Mission Control panel of System Preferences , then each monitor has its own set of Spaces. When you use one of the gestures or keystrokes for switching Spaces, you affect the Spaces on only one monitor: the one that contains your cursor at the moment.

You can also see a good example of Spaces here [3]: but here its missing that every display should have it own set of independent spaces.

Basicly setup a virtual desktop in linux with a dual monitor setup. And now if you switch the virtual desktop from virtual one to virt. two, only one monitor should change with its apps, the other one should stay like it is. Not the current behaviour but i think it illustrates it.

I’m looking for a better video if i find it i post it.

I hope this helps to understand it, please let me know if i should explain it differently…

As I cant post Links:

Video [1]: Google: How to MULTI TASK on Mac like a PRO // Tips for Chrome, Split View, Spectacle, and more! youtube
Oreily Book [2]: Google: O’Reilly Spaces (Virtual Desktops) - Switching to the Mac
Video [3] : Please google: How to Use Multiple Desktops on Mac: Tips and Tricks for Better Organization youtube

2 Likes

The funds are a bit tight at the moment, but I would also like to commit at least €50 to the cause, payable via SEPA transfer.

Having per-monitor virtual desktops would be absolutely wonderful and a huge boon for productivity. Or at the very least just allow me to switch virtual desktops only on my primary monitor.

4 Likes

Thanks for the explanations, that was very helpful!

I think I understand the request now… I’ll restate to confirm:

An option so virtual desktops are per-monitor

For example I could have my 2nd monitor with a virtual desktop that has my chats open, and another virtual desktop with my music. I can switch between the two by putting my mouse on that monitor and invoking the switch virtual desktop gesture/shortcut, without affecting the virtual desktop displayed on my primary monitor.

Similarly, I could switch my primary monitor’s virtual desktop by putting my cursor on that monitor, and switch from the virtual desktop with my code editor to the virtual desktop with Firefox, without the chats on my second monitor being moved out of view.

Ability to drag virtual desktop to another monitor

Virtual desktop arrives on the new monitor, along with all that virtual desktop’s open windows.


I wonder what happens if a display were unplugged or turned off - do the open windows get moved over to a still-active monitor? What if that display were re-connected, do they move back automatically?

I think there will be a lot of similar such UX questions as we look into the details.


Also notice that Plasma’s Overview effect looks quite a lot like this Mission Control from mac, that already allows us to create/remove virtual desktops directly:

2 Likes

This is an absolute must-have feature, coming from a recent Hyprland User. Also, the ability to pin specific workspaces to specific monitors, like Hyprland does, is crucial for portability when disconnecting/reconnecting laptops.

I’m also willing to donate 100 Euro for this feature.

1 Like

Hello Merrit,

Thanks for beeing interrested in this. Please ask as many questions as you want :smile:

Yes this it correct.

Here is another video that shows this from an xmonad perspective, but you understood it i think.

Google “distrotube The Killer Feature Of Tiling Window Managers Isn’t Tiling”

Also what vod3 said is crutial:

  • A virtual desktop remembers on which monitor it was opend so “Desktop 3” would always open on my right monitor and not the left one.

  • Also KDE should remember how many Desktops you have. So after login it loads the saved Desktops (with or without their apps, this depends on the app itself if you start that on the login etc) if the same monitors are attached it “pushes” the Desktops to their respective monitors. So every thing gets restored and saved with login/logout. And then when you start firefox it already opens on the correct Desktop which is on the correct monitor because it was pushed there as the monitor was detected.

To answer your question:
If the monitor gets removed/unplugged or deactivated (like a laptop display) and is not there after login the whole “Desktop” with windows gets moved to the other monitor and is then there Desktop number 2 or 3 or 5 etc. This depends on how many Desktops are already open on the monitor that is left on are. So not the Windows get plucked out of the “to be destroyed” Desktop but the whole Desktop moves over to the left over monitor. It moved back then the monitor is reattached/activated. You can rearange where which desktop should be with the “Overview” in Plasma.

Wit the feature that we can force windows to open on a specific virtual desktop (already in KDE 5.28 not sure if ported to 6 yet) this gives the ability to setup a wokflow like this:

  • Thunderbird always opens in Desktop 3 on my left monitor
  • Signal Chat also opens on Desktop 4 on my left monitor.
  • Firefox opens on Desktop 1 on my right monitor
  • Ticket System opens in Desktop 2 on my right monitor.

So i can switch between then and have my “communication stuff” on my left monitor and can read my online ticket in Firefox for writeing an email. Then switch to my Firefox and ask a colleague about some stuff via Mail or chat.

I think this does show the usefulness and clear things up.

Happy to answer more questions as they come along.

Unrelated:
When can i post links ? this gets ridiculous…

1 Like

Posting links is I believe related to trust level, so maybe check that you’ve done the necessary things to go up a trust level from 0 to 1.

Hello, I cannot contribute quite as much as @Manux here, but I will pledge 40 USD upon the completion + upstreaming of this feature. I can pay via PayPal.

If it takes more than a couple of months, please ping me to verify that I still can pledge.

I like the way Manux describes it. Each screen (regardless of total number of screens) gets its own desktops and can all be changed independently, ideally with a keyboard shortcut that changes the desktop on the screen with the mouse pointer.

Regards,
sirmrgentleman

2 Likes

How do you get that? I only have the search bar at the top. Was it recently added? (I’m still on 6.0.4)

Not sure when it was added. I have it on 6.0.5, and seem to recall having it for some time.

You can check the hotkey assigned in settings, I think the default is Meta + W. Try that to make sure you are seeing Overview, rather than say the Present Windows effect, which doesn’t do virtual desktops.

I would be willing to pledge US$200 via PayPal for this feature. It is the killer feature for me on macOS for doing presentations at events with demos and stuff all prepared.

I also suspect that this would lay the groundwork to enable GNOME-style single monitor dynamic workspaces (not that we have dynamic workspaces as a thing yet either…).

2 Likes

Yeah, that’s the one I’m looking at. Weird.

edit: Oh, figured it out right after. It doesn’t show it if you have more than one row of virtual desktops.

1 Like