267

Windows 10 introduced Task View - the ability to have multiple virtual desktops. When I am in a window on Desktop 1, what's the quickest way to move it to Desktop 2?

Currently, I need to enter the task switcher (icon in the Taskbar or Win + Tab), find the window, and drag & drop it between desktops. It is inconvenient. Is there a quicker way?

Lloyd Dominic
  • 213
  • 3
  • 16
Borek Bernard
  • 14,048
  • 32
  • 81
  • 93
  • 3
    This is how I do it and the only way I know how to do it. Press the **Windows key + Tab** . Press **Tab again** . This removes the outline from the active program thumbnail and Task View interface active. Use the arrow keys to move among the desktops on the Task View interface. When you have highlighted the desktop to which you want to switch, press **Enter** . – zain.ali Aug 04 '15 at 11:40
  • 10
    Oooooo you can try **WINKEY + CTRL + LEFT ARROW** or **WINKEY + CTRL + RIGHT ARROW** – zain.ali Aug 04 '15 at 11:43
  • 72
    This is not about navigating between desktops, it is about moving windows from one desktop to another. And yes, Ctrl+Win+left/right is cool :) – Borek Bernard Aug 04 '15 at 11:49
  • 9
    When to expect a Windows build in hotkey for it? – principal-ideal-domain Apr 19 '17 at 10:03
  • @Borek Does any of the answers satisfy you? – arieljannai Mar 10 '18 at 17:03
  • can we expect to receive a built-in Windows keyboard shortcut before the AI overlords take over? – Răzvan Flavius Panda Jan 16 '21 at 15:11
  • If you want a native shortcut, I suggest upvoting [this suggestion in the MS Feedback Hub](https://aka.ms/AA2dqfg). – Jacktose May 03 '21 at 23:53
  • I wish there was just a numbered option, e.g. **Winkey** + **ctrl** + **2** to send to desktop 2. And **Winkey** + **ctrl** + **+/-** to send to next/previous desktop. I used to have an Nvidia driver or something that could do this and made it so easy. – xr280xr Apr 06 '23 at 17:02

16 Answers16

184

I think for a quicker switch this should be in the titlebar, so I created a tool for that:

https://github.com/Eun/MoveToDesktop

enter image description here

You can also move windows by using WIN+ALT+Left/Right or change the shortcut as needed.

Eun
  • 2,463
  • 2
  • 15
  • 14
  • (y) Excellant work. Thanks. BTW, why does it need both x86 and x64 version of Visual C++ Redistributable for Visual Studio 2015 even when my processor and OS both are x64? – IsmailS Mar 29 '16 at 07:58
  • 9
    Yes! Finally!!! Thank you so much! :) As an Ubuntu user I was super excited about Virtual Desktops in Windows 10... but without this hotkey feature it felt useless. Now the feature is finally complete :) Thanks for your efforts and thanks for open sourcing it. – Adamski Apr 13 '16 at 09:14
  • OK, call me an idiot, but "Download and Run" is a bit cynical... I have downloaded the zip. Run... what? I have tried opening the solution in VisualStudio 2015 Community, but nothing happens. What am I missing? Do I need to build it? Build what then? Looks amazing, please help me use it. – vacip May 19 '16 at 08:27
  • 8
    Download `MoveToDesktop-X.Y.zip` from the Releases section. In there is an `.exe` file, extract it somewhere and run it. No need for Visual Studio 2015. You might just need to install the Visual C++ Redistributable package. – Eun May 19 '16 at 08:48
  • Releases section... That was the key. Makes sense, too. Thank you very much! – vacip May 20 '16 at 12:13
  • @Eun: cool. thx! Might want to mention the thing about the release secton in the readme. Downloading the source had me thinking "oh, this is too techy for me". I was expecting the zip to also contain the source. Or is this a common GitHub thing all other users expect this way? – Wouter Jun 14 '16 at 13:24
  • @Wouter You would normaly check the release section :). But there is a big Download button on the page ;) – Eun Jun 14 '16 at 14:24
  • 7
    This tool did not work. – K Robinson Nov 04 '16 at 16:10
  • 3
    wonder when windows will add drag and drop to the virtual desktops screen - that would be _amazing_ – Mikey Dec 03 '16 at 16:10
  • 1
    @Mikey They added that a long time ago. I have had it since I first started using Win 10. – Ninjakannon Dec 06 '16 at 00:43
  • 3
    @Ninjakannon sorry, I should have been more specific. I mean to drag one window from any desktop to another - without having to switch to that desktop first, i.e. from the thumbnail windows. And also the ability to drag the virtual desktops around, to rearrange the order. – Mikey Dec 06 '16 at 00:45
  • 1
    @Mikey If you press Win + tab, you can drag windows from the current desktop to any other. I'm not sure it makes sense to want to drag a window from a desktop you are not on, that could get very confusing! – Ninjakannon Dec 06 '16 at 00:49
  • @Eun The tool seems great! Which version of the Visual C++ Redistributable Package is necessary? When I simply run the downloaded .exe file it doesn't add the Window option nor the shortcuts. – riddleculous Mar 21 '17 at 12:54
  • @Eun never mind. After a Windows Update it's working without installing any further packages. Works like a charm! – riddleculous Mar 22 '17 at 11:07
  • Awesome! - @borek I think this can be marked as answer. – arieljannai Apr 07 '17 at 12:59
  • @vacip I did that too. Instead of downloading from the clone or download box on the upper right as you normally would, scroll down to the green download button probably about half way down the page. Download from there and it will be an exe file instead of a zip. – mchid Apr 11 '17 at 23:21
  • 2
    @Ninjakannon No, I believe Mikey is talking about being able to drag the window over the sides of the screen into the next desktop without changing view. Just like it is in almost all linux desktops and on Ubuntu Unity. There is also usually a setting for the snappiness which allows the user to still snap to the side but if using more force or momentum then then the user would be able to drag the window past the border into the next virtual desktop instead of snapping. – mchid Apr 11 '17 at 23:23
  • Works for me. Thanks. The default hotkeys couldn't be registered, but after changing them it works great! – AgDude Apr 03 '19 at 17:25
  • As a Linux user forced to use Windows at work, this is exactly what I was looking for. I use virtual desktops a lot and features like this to speed up workflow mean a lot. Thanks! It's a shame Microsoft seems to be ignoring so many useful features common in Linux distros. – Pilot_51 Jul 22 '19 at 13:26
  • Quite a lot of malware detections https://www.virustotal.com/gui/file/dcaa40b0dbffbaaa25f9b97d72a8a50beb94763c58213c45afeb142f63666003/detection. Hopefully, all benign. – Artem Russakovskii Aug 06 '19 at 23:48
  • 2
    @ArtemRussakovskii really? did anyone else confirm this? really needed a tool like this.. it's sad if it comes with malware – Anoyz Oct 29 '19 at 12:22
  • This is exactly what I was looking for. Thanks a lot Eun. – Arpit Aggarwal Jan 21 '20 at 09:50
  • 1
    Does this no longer work with the latest update to Windows? – aagha Apr 16 '21 at 01:07
  • This appears to be exactly what I've been looking for. Unfortunately, with so may red flags on VirusTotal, I just can't bring myself to use it. I post this in case others care similarly about such things: https://www.virustotal.com/gui/file/dcaa40b0dbffbaaa25f9b97d72a8a50beb94763c58213c45afeb142f63666003/detection – Brandon Jun 11 '21 at 23:00
  • Awesome! Works very well. Just like Linux now. – AlfredBaudisch Jan 03 '22 at 08:32
  • It is an archived (unmaintained) repo, and unfortunately it does not work in windows 11, it only works in windows 10 – AmazingMiki Aug 28 '22 at 09:04
100

I also looked for that option, and from the searches I've made (I think that I also saw it on the Microsoft forums), it's not something that is available built-in at the moment.

The best way I came out with for now, to avoid using the mouse, is:

  • Winkey + tab for the desktops screen
  • Right click on the window you want to move.
    Use the right click keyboard button, or Shift + F10 if you don't have that key in your keyboard.
  • Choose Move to (or type M, because it's marked), and then the desktop you want (or N for new desktop, also marked)

This doesn't help that much, but that's what there is until someone develops something to make it easier.

Update: I've started looking into this. There's a registry value that changes when the app is moved between desktops. In that location, there are all the open apps:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\ApplicationViewManagement 
(I guess the session number will change if there is more than one logged in).

The id of the current desktop is here:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\VirtualDesktops\CurrentVirtualDesktop

It's not enough to change it to the other virtual desktop key because some UI refresh is needed.

I've checked with procmon, and the dll's that are used in the process are:

  • msctf.dll
  • twinui.dll
  • windows.immersiveshell.serviceprovider.dll
  • shell32.dll
  • UIAnimation.dll

I'll guess that one of them is responsible for the visual refresh, and the main suspect is UIAnimation.dll!

If someone wants to keep investigating, this will serve as a start.

fixer1234
  • 27,064
  • 61
  • 75
  • 116
arieljannai
  • 3,079
  • 5
  • 20
  • 36
23

UPDATE: It seam to stop working on latest Windows and this project is discontinued by author...

I use Windows 10 Virtual Desktop Enhancer.

Just download it, run it (and configure autostart if you need).

Then you can simply press Win + Ctrl + Shift + Arrow Left / Arrow Right and it will move you app to other desktop and switch to that desktop.

CichyK24
  • 449
  • 3
  • 7
  • The script didn't work for me, but the release exe does. Nice solution! – lucidbrot Jan 14 '18 at 10:04
  • 3
    simple, transparent, easy to install = perfect! – anderstood Dec 07 '18 at 12:26
  • I can't get Win+Ctrl+Shift+Left/Right to work recently. Does this still work for anyone else? – AndrewRalon Oct 20 '20 at 16:27
  • 1
    @AndrewRalon Yeah, I also checked and it seams to not work on latest Windows :/ – CichyK24 Oct 20 '20 at 16:47
  • Without trying the AutoHotKey software, this doesn't seem to work on Win 10 Pro (build 19041.630) – JamesBB Nov 26 '20 at 11:15
  • 1
    One can fix the official, but discontinued [Windows 10 Virtual Desktop Enhancer](https://github.com/sdias/win-10-virtual-desktop-enhancer) by replacing the `virtual-desktop-accessor.dll` as described in this [reddit post](https://www.reddit.com/r/AutoHotkey/comments/cvjfi4/virtual_desktop_enhancer_ahk_solution_seems_to_be/). 1. Get the latest official version [here](https://github.com/sdias/win-10-virtual-desktop-enhancer/releases/tag/0.11.2). 2. Replace `virtual-desktop-accessor.dll` in `libraries` with the one from [this fork](https://github.com/lschwahn/win-10-virtual-desktop-enhancer). – ToJo Jan 04 '21 at 10:39
  • **It does not work on Windows 10** – Bizhan Nov 04 '21 at 14:33
  • @ToJo The .dll replacement not only fixes the keyboard shortcuts, but also adds indicator with desktop number, a very useful touch. Thanks!!! – AnyDev Nov 30 '21 at 05:41
  • Worked perfectly for me without any modification, I'm on last version of W10. Thanks @CichyK24! – Redoman Apr 24 '22 at 07:44
  • it is not a quick way when needing to install some 3rd party stuff when there's a built-in way doing so – hfrmobile Jul 10 '23 at 11:51
23

Yet another AHK Script

#Left::
  WinGetTitle, Title, A
  WinSet, ExStyle, ^0x80, %Title%
  Send {LWin down}{Ctrl down}{Left}{Ctrl up}{LWin up}
  sleep, 50
  WinSet, ExStyle, ^0x80, %Title%
  WinActivate, %Title%
Return

#Right::
  WinGetTitle, Title, A
  WinSet, ExStyle, ^0x80, %Title%
  Send {LWin down}{Ctrl down}{Right}{Ctrl up}{LWin up}
  sleep, 50
  WinSet, ExStyle, ^0x80, %Title%
  WinActivate, %Title%
Return

This moves the active window left or right with the win+arrow keys. Tested on Win10 Version 10.0.17134.1365 with animations off.

Benjamin
  • 339
  • 2
  • 2
  • 2
    Works fluently, also with more than two virtual desktops. – Matthieu May 26 '20 at 20:35
  • This works well! I copied this to my own script, an added a hotkey to move the current window to a _new_ desktop, by changing the `Send` line to `Send {LWin down}{Ctrl down}d{Ctrl up}{LWin up}` – husB Oct 11 '20 at 15:30
  • 4
    Note that `#Left` and `#Right` conflicts with the shortcuts to snap windows to the side of the screen. Modified it to `!#Left` and `!#Right` (Win + Alt + arrow) – Bram Schoenmakers Oct 27 '20 at 09:00
  • I'm on Win10Pro and when I ran the script, I got an error "Keyboard/Mouse hook could not be activated". I was able to get it working by changing the hotkeys and removing the navigation Left/Right (e.g. using ^#j works). Any ideas why the navigation keys don't work? – artze Dec 17 '20 at 01:51
  • Unfortunately, this does not work with my "VcXsrv X Server" windows. And they are actually the ones I care most about :-( The don't seem to be affected by the `WinSet, ExStyle, ^0x80, %Title%` commands. – Peter V. Mørch Apr 20 '21 at 13:52
  • Great! I combined this with showing the **name of the current virtual desktop** from https://stackoverflow.com/a/73624889/1265192 – MD004 Oct 19 '22 at 17:54
  • not a quick way – hfrmobile Jul 10 '23 at 11:50
19

At this level of managing Windows, I really think you should use a third-party program to help out. My own solution to this was to add a simple shortcut to AutoHotKey (AHK):

#|::Send, +{F10}M{Enter}

#| is the shortcut, which translates to Win + |

On my keyboard, that makes sense, as | is above Tab, but you could change it to whatever suits your need.

Using above answer by arieljannai, by sending Shift + F10, M, Enter, the marked window will be moved to the other virtual desktop if you're juggling between two.

For an introduction to AHK, please see https://autohotkey.com/docs/Tutorial.htm.

Jacktose
  • 258
  • 1
  • 3
  • 18
vildauget
  • 199
  • 1
  • 4
  • 2
    *F10* does nothing on my computer. The *contextual menu* key of my (French) keyboard does the job though. – Sébastien Jan 23 '17 at 15:45
  • `win+Tab, context, V, Enter ` on Swiss-german setup – lucidbrot Jan 14 '18 at 07:59
  • 1
    F10 alone does not bring up context menu, you must hold shift (denoted by + in AHK above). updated answer to reflect the typo. – Kevin Feb 20 '19 at 19:55
  • I thought a program called Windows would manage windows just fine? ;) – Redoman Apr 24 '22 at 07:19
  • This solution requires pressing Win+Tab first. Personally, I wanted to avoid that step (and the time it takes, especially when the CPU is busy which causes a delay). – MD004 Oct 19 '22 at 17:48
15

I'm not sure why this hasn't been mentioned above, but the following is the native way to do this, without downloading helpers.

  1. Win + Tab to quickly see all applications/windows (if you have multiple monitors, there will be one list on each monitor for each virtual desktop).

  2. Right click on the application/window you want to move over, hover on Move to, and select the desktop you want send the application to.

Before I found this, I even tried the MoveToDesktop project posted above, but I find this just as easy, and the MoveToDesktop menu doesn't seem to appear on all applications anyway (for example, not Chrome nor Sublime at the moment).

Lloyd Dominic
  • 213
  • 3
  • 16
nights
  • 261
  • 2
  • 3
  • 5
    Too bad that there is still not hotkey for it. Though this works nice too. – JP Hellemons Jan 19 '18 at 13:20
  • Once you have the desktops setup its rare that you need to move things over, no? – nights Jun 07 '18 at 07:31
  • 4
    I move screens from monitor 1 to 2 all the time with a hotkey. I move between desktops all the time with a hotkey, so why not a hotkey to move a window between virtual desktops? And I mean a native hotkey build in win10 – JP Hellemons Jun 08 '18 at 07:19
  • It would be nice indeed. – nights Jun 09 '18 at 08:15
  • 5
    What has been so nice for *many years* in Ubuntu Linux has been that you can set up your virtual desktops without ever taking your hands off the keyboard. In the course of working on whatever you're working on, you can decide to launch an app with its hotkey, then decide only afterward that you'd rather put it in a new or other workspace, and send it there with another hotkey. No need to move a hand to mouse or touchpad. It's incredibly fast and efficient. I miss it greatly in Windows. In fact it's one of the reasons I now use Windows only for certain games or Adobe products. – cdaddr Oct 14 '18 at 05:29
  • I use Win key+tab in conjunction with CoolSwitch and AltTabSettings giving me a more versatile array as I keep over 40 windows open. Note, nasty little irritant that might not be obvious, it took me a while to connect the dots: at least on my Win 10, hitting Win+tab is turning off "automatically hide the taskbar". The taskbar goes to always-on-top every time I hit Win+tab. – MicrosoftShouldBeKickedInNuts Apr 20 '20 at 22:13
  • Isn't this the same as https://superuser.com/a/950507/268750 ? – StayOnTarget Oct 26 '22 at 19:38
  • 1
    Thanks a lot!! It answers exactly the original question. Also wondering why so many people using some 3rd party stuff since there's an quick and easy way doing so... and if I need to get some 3rd party tools, install it, then it is not quick. – hfrmobile Jul 10 '23 at 11:49
6

zVirtualDesktop

I'm using it for that purpose. It has keyboard shortcuts - which is great.
The developer is very responsive if you report an issue or ask a question or for a possible feature.

The best feature is DesktopView See below.

There are more options at GitHub, which I currently can't remember

Here are some screenshots of zVirtualDesktop

You can choose from these system tray icons enter image description here

It has a really nice feature called DesktopView shown below. With this view you can drag and drop your windows to any desktop. It also works like Alt+Tab in that you can click a thumbnail to go to that window. enter image description here

Note: I answered this question about 1.5-2 years ago, with some hints to start developing something. But now, there are some solutions developed for this.
I added a new answer since there's no point in editing/improving my previous one, since they are totally different.

Michael Z.
  • 115
  • 4
arieljannai
  • 3,079
  • 5
  • 20
  • 36
  • There are many programs to do it but the OP is asking about the Virtual Desktop manager included in Windows. – skan Jan 18 '18 at 10:56
  • 3
    I haven't used this, but [VirtuaWin](http://virtuawin.sourceforge.net/) is worth a try too, since it (1) [can auto catch programs into their own desktop](https://softwarerecs.stackexchange.com/a/48103/6389), and (2) has addons to improve productivity. – Ooker May 31 '18 at 08:38
  • 3
    I checked out zVirtualDesktop and it doesnt look trustworthy. Hosts on a Github but is closed source (apparently the source got removed), the older version that was apparently accidentally uploaded to Github (the exe is in the history) has a different usage license (private use is free forever) but autoupdates to the everyone-pays version... Also no mention of price on the site, only when you already launched it – sinni800 Sep 14 '18 at 06:26
  • VirtuaWin is fantastic. It does not manipulate windows 10 Virtual Desktop but it seems to hide/restore windows. I've been using it since XP, perfect for windows <10. In Win10 it has minor glitch but still very useful. Win10 native virtual desktop is clunky and incomplete in comparison. – AnyDev Nov 30 '21 at 05:34
  • why using some 3rd party stuff from a not trusted source when there's a built-in way doing so... – hfrmobile Jul 10 '23 at 11:50
5

Taking hints from the solutions of Greenonline and Sebastien:

  1. Hit 'Win+Tab' for the Workspace Management View
  2. Directional keys to navigate to the window of interest (if this was the last one in focus, it shouldn't be necessary).
  3. Hit the 'Context' key for a dropdown menu (typically the key with the Windows logo between 'Ctrl' and 'Alt'), where you can select moving to other desktops.

So, not very straightforward, but definitely something you can easily automate your hands to do.

pete_san
  • 51
  • 1
  • 3
  • 1
    Completely agree. Not ideal, but I'd rather automate my hands to follow these simple steps than to install some third party, specially when they seem to be having modest maintenance. – JesusIniesta May 14 '20 at 12:01
4

I use autohotkey with the keyboard shortcut CTRL+WIN+SHIFT+LEFT or RIGHT to push windows to the other virtual desktop. I only use 2 virtual desktops, so this works for me regardless if i press left or right.

AHK Code:

#^+Left::
#^+Right::
Send #{tab}        ;WIN+TAB=Open the desktop view
Sleep 200
Send +{F10}M{Enter};SHIFT+F10=context menue. M=move. Enter for the first desktop in the list.
Sleep 100
Send #{tab}        ;WIN+TAB=Close the desktop view
return
  • Note that this only works (in a multi-monitor setup) for applications on the main monitor. I needed to add a "Send {Left}{Right}" after the "Send #{tab}" to ensure that the application is actually selected before trying to move, or this did nothing. – Daniel Bragg Apr 13 '18 at 23:27
3

Given that Eun's MoveToDesktop is now unmaintained and no longer works, an alternative I've found for AutoHotKey is VD.ahk. It works on current versions of Windows 10 and 11.

Download the AHK files (as of this writing, the default branch shows files for AHK 1.x; support for AHK 2 can be found on an alternate branch) and add to your ahk script:

#Include VD.ahk
#!Left::VD.MoveWindowToRelativeDesktopNum("A", -1)
#!Right::VD.MoveWindowToRelativeDesktopNum("A", 1)

This binds to Win+Alt+Left/Right.

josh3736
  • 3,913
  • 5
  • 24
  • 33
2

As of Windows 10 Version 1803, the simple way to move current/targeted window from 1 desktop to another is by following way:

  1. Press Win + Tab to see the timeline.
  2. Below Desktops section, you'll see the list of active running programs window under the current desktop. Click & hold the window and drag into specific desktop you want.
  3. Voila!


Plus, its native and doesn't require any third party software.

androizer
  • 49
  • 4
1

For me Shift + F10 doesn't work.

But this key is doing his job:

enter image description here

So I am able to move windows across desktop only with the keyboard navigating in the right click menu in the desktop preview view.

Zioalex
  • 121
  • 4
1

It ain't pretty but it doesn't use the mouse or any third-party software

Win + Tab, Shift + F10, Arrow Down, Arrow Down, Enter, Arrow Down, Enter, Esc

Jesse Hufstetler
  • 183
  • 2
  • 10
0

Autohotkey solution. Bound to Win+Tilde key. This script automates all keystrokes that you would perform manually to send it to the next (if you're on the first) or previous desktop. Be careful though with such things - this can be dangerous if this input goes to wrong destination.

SendMode Input 
#`::
    send {blind}#{tab}
    sleep 1000
    send {appskey}
    sleep 300
    send {down}
    sleep 200
    send {down }
    sleep 200
    send {right}
    sleep 200
    send {left}
    sleep 200
    send {right}
    sleep 300
    send {enter}
    sleep 300
    send {esc}
    sleep 300
return
Mikhail V
  • 973
  • 5
  • 13
-4

simple press Winkey + Tab, now select the program (window) and drag it to the list of Desktops shown below (Desktop 1 or 2). Done. No other way..

vignesh
  • 19
-8

Win + Shift + Arrow Left / Arrow Right

or

Win + Arrow Left / Arrow Right

or

Win + Arrow Up / Arrow Down

Vomit IT - Chunky Mess Style
  • 40,038
  • 27
  • 84
  • 117