workspacer icon indicating copy to clipboard operation
workspacer copied to clipboard

Replacing workspaces with windows native Virtual Desktops - POLL

Open N1x0 opened this issue 3 years ago • 11 comments

I'm currently checking the viability of replacing the current workspaces with the windows-native VirtualDesktops.

Reason for this is that there are currently some issues with UWP apps (e.g. Power Bi) shutting down when leaving the workspace they are on, (see #97) and also with moving electron/chromium windows turning black (#171). This does not happen with the virtual desktops from my testing.

I found some viable alternatives for readily-available c# API's that allow access and found this. However compatibility is limited to windows 10.

Before going further and creating an alternative branch with VirtualDesktops replacing the current workspace implementation I first wanted to see how many users' installation would be affevted by this change.

In general I am quite optimistic on the development of virtual desktops, as new features have been showcased in the windows 11 release announcement. I think it'd be better for workspacer to use a solution provided by the OS and integrating it rather than duplicating the functionality.

Feedback and comments are most welcome!

N1x0 avatar Jun 28 '21 08:06 N1x0

This was first mentioned in #62:

  • What about use of native virtual desktops?: does it seems reasonable? I think that both virtual desktops and tagged space could coexist. Not sure if viable or really open some opportunity, but it seems that relying on a native feature could give some plus: Win+TAB giving a snapshots of "tagged" windows for example...

However compatibility is limited to windows 10.

Well according to the workspacer homepage, it is "a tiling window manager for Windows 10", isn't it? Builds right now are built on the win10-x64 platform as well.

Anyways, +1 for this. I have used win3wm which makes use of virtual desktops and haven't encountered the issues mentioned above. This would also ultimately fix #37 as you are just switching between virtual desktops instead of hiding them as well.

sitiom avatar Jun 28 '21 08:06 sitiom

For chromium turning black, this has been triggered for me when changing layout engines - it may be related to moving windows. It'd be interesting to see what PowerToys does for laying out windows vs. what workspacer currently does.

For virtual desktops, do you know if each monitor can have a separate virtual desktop in Windows 11? Currently, in Windows 10 switching virtual desktops switches for all monitors, which would mean monitors could no longer have independent workspaces open.

dalyIsaac avatar Jun 28 '21 08:06 dalyIsaac

I found some viable alternatives for readily-available c# API's that allow access and found this. However compatibility is limited to windows 10.

Workspacer is officially Windows 10+ only, so that’s not an issue.

E4B9E205-B15A-4B8F-85AB-1C596CBD5138

josteink avatar Jun 28 '21 11:06 josteink

For chromium turning black, this has been triggered for me when changing layout engines - it may be related to moving windows. It'd be interesting to see what PowerToys does for laying out windows vs. what workspacer currently does.

For virtual desktops, do you know if each monitor can have a separate virtual desktop in Windows 11? Currently, in Windows 10 switching virtual desktops switches for all monitors, which would mean monitors could no longer have independent workspaces open.

I have checked the PowerToys repo and found this similar issue. Supposedly it was fixed but it seems like it's not quite gone.

I forgot about the issues with multiple displays on win10, but there is some talk of improved multi-monitor support, but it's only slightly related and not a real fix. Sadly this makes this unworkable for multiple displays as it seems.

N1x0 avatar Jun 28 '21 14:06 N1x0

I know Amethyst Windows uses the native virtual desktops and has multi-monitor support, but I have not tested multi-monitor support myself. It seems to be a very early project, but perhaps there is something to learn from it. A couple nice things I noticed when using it were that electron apps behaved more regularly and the desktop switched automatically when doing something like opening an link (automatically switched to the desktop with my browser).

swebra avatar Jun 28 '21 15:06 swebra

@N1x0 I don't have a good source for this, but this video at 8:10 says "On a per-display basis, you can have multiple virtual desktops that you can switch between" in Windows 11, which seems to be exactly what we need and not covered by the link you posted (Though it's possible I'm misunderstanding what is being said and that it's still the Win 10 behavior).

(Also, by the way, I think I may have accidentally voted for Win 8.1 since I didn't realize clicking on it counts a vote instead of taking you to a page to vote)

JakobBruenker avatar Jun 29 '21 03:06 JakobBruenker

I know Amethyst Windows uses the native virtual desktops and has multi-monitor support, but I have not tested multi-monitor support myself. It seems to be a very early project, but perhaps there is something to learn from it. A couple nice things I noticed when using it were that electron apps behaved more regularly and the desktop switched automatically when doing something like opening an link (automatically switched to the desktop with my browser).

Thanks for mentioning Amethyst Windows, I had a look to see what the multi-monitor support includes and sadly it doesn't solve our issues with workspacer as it also doesn't fix the inability to move virtual desktops per monitor. Also I very quickly experienced the bug we have with chromium windows turning black (see screenshot) image

So I don't think Amethyst has the solutions to our problem, which is very unfortunate because the author based their work on the VirtualDesktopManager repo's I had looked at as well.

@JakobBruenker

I hope that that's indeed the case, it's been an issue for over half a decade so would be good of MS to get around to fixing it. Once that has happened I think it should be possible fully replace the in-built workspaces with the native VirtualDesktops. Whether that will be back-ported to Win10 remains to be seen.

I have also looked at win3wm but no luck there either, it supports different bars but switching between virtual desktops again moves them on both monitors

N1x0 avatar Jun 29 '21 10:06 N1x0

I don't know where Linus Tech Tips got that tidbit from - it hasn't been in any of the recent Windows 11 coverage.

However, I did find a report from Winaero which indicates that it is a feature which Microsoft has added to internal builds. Nevertheless, it's not currently in Windows 11 (as of 22000.51).

dalyIsaac avatar Jun 29 '21 10:06 dalyIsaac

It seems the best course of action is to wait for Microsoft's Task View API to allow multiple Virtual Desktops on each monitor. Switching to Virtual Desktops right now would make multi-monitors quite irritating to use. Though starting work now to future proof Workspacer isn't a bad idea (on a separate branch I guess), since I believe Virtual Desktops would be the long term solution anyway.

rikai-suru avatar Jun 30 '21 05:06 rikai-suru

It seems the best course of action is to wait for Microsoft's Task View API to allow multiple Virtual Desktops on each monitor. Switching to Virtual Desktops right now would make multi-monitors quite irritating to use. Though starting work now to future proof Workspacer isn't a bad idea (on a separate branch I guess), since I believe Virtual Desktops would be the long term solution anyway.

I agree with this approach would be nice to have a virtualdesktop fork already set-up for when the changes come through and those using single monitors could already take advantage of this now.

N1x0 avatar Jun 30 '21 06:06 N1x0

I offer the following points, as a fan of TWMs and of this incredible repo, and as someone who is frustrated with the lack of usable TWMs for Win 10/11, and someone whose programming languages of choice are not popular among TWM repos:

  1. I agree as well that native integration is more future-proof, as has already been argued in this thread. a. Certainly with strong competition from MacOS and nix UX, and as evidenced by PowerToys FancyZones, MS is invested in advancing window management and vDesktops in general
  2. I think native integration is _at least worth implementing as a toggleable, caveat-warned alternate even outside of future-proofing, because:
  3. Not necessarily everyone wants separate desktops per monitor a. I myself do not a. Despite seeing people argue as much in forums, issues, etc, it's not clear that the majority of virtual desktop users are indeed per-monitor desktop advocates. b. MacOS offers the option of shared vs per-monitor, with clearly announced caveats ( eg a single menu bar or one per monitor? )
  4. Nor will everyone who suffers from the above listed bugs due to non-native workspaces ( electron black windows etc ) be unwilling to give up separate workspaces, in exchange for a bug-free/reduced experience. a. I could imagine users that get more use out of frequent electron app (which is very popular) usage, versus use of workspacer's per-monitor workspace paradigm, might be okay with the compromise, esp if its caveats are clear and acknowledged, or is optional
  5. Less important but not trivial: Win 10/11's swipe gestures for virtual desktops are pretty delightful and W11's new Win+Tab view is quite pretty, and so native integration potentially elevates the sleekness of any TWM that makes use of them.

I hope this wasn't too verbose to the point of noisiness, please lmk and I'll edit. I want to express gratitude again for this awesome, domain-leading work, and proactive, open-minded philosophy that the org is taking.

As I set up my own config, hopefully I'll pick up some non-trivial C# skills and also contribute in the near future!

riotrah avatar Dec 18 '21 21:12 riotrah