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

Virtual Desktop Window Manager #6797

Closed
mapasco-msft opened this issue Sep 23, 2020 · 12 comments
Closed

Virtual Desktop Window Manager #6797

mapasco-msft opened this issue Sep 23, 2020 · 12 comments
Labels
Idea-New PowerToy Suggestion for a PowerToy Product-Virtual Desktop Refers to the idea of an Improved Virtual Desktop power toys Resolution-Duplicate There's another issue on the tracker that's pretty much the same thing.

Comments

@mapasco-msft
Copy link

mapasco-msft commented Sep 23, 2020

Add better hot-key support for Virtual Desktop Management

Issue

To switch from Virtual Desktop 1 to Virtual Desktop 3 the user must hit the following combination twice:

CTRL + WIN + ->

As the number of virtual desktops grows, so does the navigation.

To move an application from one virtual desktop to another, the user must: launch the task view, right click on the desired application and then select the desktop.

Inspiration i3WM

https://i3wm.org/

Key Features

  1. Switch to a specific Virtual Desktop
    • Switch to Virtual Desktop 2:
    CTRL + WIN + 2
    
  2. Move the focused window to a specific Virtual Desktop
    • Move current application to Virtual Desktop 2, and switch to VD 2
    CTRL + SHIFT + WIN + 2
    

Why?

Keeping specific applications on a virtual desktop can improve your workflow. Keep your IDE and your terminal on VD 1. Keep Mail and IM on VD 2. Browser on VD 3. ETC.

With a Virtual Desktop Window Manager, it is simple to switch directly to your workspace without needing to cycle through Virtual Desktops or Alt Tab.

POC

Current POC cannot capture WIN shortcut but powertoys can
VDWM
https://github.com/mattpasco-microsoft/VDWM

Next Steps

  1. Integrate with PowerToys key management
  2. Rewrite Virtual Desktop Management in C++ (currently in C#)
    • In compliance with the other modules
  3. Design XAML UI to integrate with PowerToys Settings
@ghost ghost added the Needs-Triage For issues raised to be triaged and prioritized by internal Microsoft teams label Sep 23, 2020
@crutkas crutkas added Product-Virtual Desktop Refers to the idea of an Improved Virtual Desktop power toys Help Wanted We encourage anyone to jump in on these and submit a PR. Idea-New PowerToy Suggestion for a PowerToy and removed Needs-Triage For issues raised to be triaged and prioritized by internal Microsoft teams labels Sep 24, 2020
@crutkas
Copy link
Member

crutkas commented Sep 24, 2020

Cool idea. The Settings would be directly added into the settings app inside PT.

Shortcuts would be ctrl-win-numbers

@NicTanghe
Copy link

It whould mainly be awsome if there is also something minimal displaying the desktop you switch to.

I advice capslock + button.

Here`s a ahk script if you dident know of it already.
https://github.com/pmb6tz/windows-desktop-switcher

@crutkas crutkas removed the Help Wanted We encourage anyone to jump in on these and submit a PR. label Oct 14, 2020
@kiesman99
Copy link

Hey there :)

I'd totally love such an implementation. In my opinion we should even go a step further and implement an at a glance section as described in #3737.

@LinqLover
Copy link

Not sure whether this belongs here, but I would also love to switch to a VD by typing its name or number into the PowerToys run menu. Would be great if this could be implemented, too :-)

@just1a-person
Copy link
Contributor

Rewrite Virtual Desktop Management in C++ (currently in C#)

Is this step necessary?

@enricogior
Copy link
Contributor

PowerToys modules cannot use undocumented APIs.
Until Microsoft will publish official VD APIs, we cannot include any VD module.

@just1a-person
Copy link
Contributor

@enricogior ?

See transcription below

Image Transcription

Programmatically creating virtual desktops is not an intended scenario for the IVirtualDesktopManager. IVirtualDesktopManager’s purpose is to allow apps to find the correct window to activate, as described in the documentation at https://docs.microsoft.com/en-us/windows/win32/api/shobjidl_core/nn-shobjidl_core-ivirtualdesktopmanager.
The purpose of GetWindowDesktopId and MoveWindowToDesktop is to allow applications to keep related windows together on the same virtual desktop by letting them move one window to join another window.
It is explicitly not a goal of IVirtualDesktopManager to give programs the ability to create and manipulate virtual desktops. That is an operation reserved for the user.
That said, the https://github.com/microsoft/PowerToys team have been involved in discussions in the past about better supporting this scenario. Filing or upvoting an issue for this in their repo would enable you to engage with the team further on the request.

Mike B - Microsoft Engineer (on Feedback Hub)

@crutkas
Copy link
Member

crutkas commented Jan 5, 2021

There are private APIs that need to be surfaced and adjusted to not expose internal data structures.

You don’t know how many desktops, what apps are there, is it pinned, ...

@daraghfi
Copy link

PLEASE also add the ability to change the background (and even desktop icons) on each desktop! Thanks.

@wolf99
Copy link
Contributor

wolf99 commented Jan 22, 2021

Would very much like this. For me the usefulness of VD is drastically curtailed by the inability to move windows across them without opening the Task View and reaching for the mouse.

A quick web search shows that there are many, many, many, many other people asking about such.

@just1a-person
Copy link
Contributor

Rewrite Virtual Desktop Management in C++ (currently in C#)

Is this step necessary?

What about this though?

Screenshot of GitHub recognizing PowerToys as a C# project

Even GitHub now recognizes PowerToys as a C# project.

@enricogior enricogior changed the title Virtual Desktop Window Manger Virtual Desktop Window Manager Feb 15, 2021
@crutkas
Copy link
Member

crutkas commented Mar 17, 2021

Turns out this is tracked as issue #19!

@crutkas crutkas closed this as completed Mar 17, 2021
@crutkas crutkas added the Resolution-Duplicate There's another issue on the tracker that's pretty much the same thing. label Mar 17, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Idea-New PowerToy Suggestion for a PowerToy Product-Virtual Desktop Refers to the idea of an Improved Virtual Desktop power toys Resolution-Duplicate There's another issue on the tracker that's pretty much the same thing.
Projects
None yet
Development

No branches or pull requests

9 participants