Windows 10 and 11 let you switch between virtual desktops using Ctrl + Win + Arrow, but they don’t offer a built-in shortcut for moving the currently active window between desktops. This lightweight utility fills that gap by letting you send the active window to the next or previous virtual desktop with a single keyboard shortcut. It makes managing multiple workspaces far more efficient and dramatically improves your workflow.
Note: This repository is primarily hosted on Codeberg. Issues, pull requests, and contributions should be directed to the Codeberg repository.
Because laptop keyboards include an Fn key between Ctrl and Win keys while desktop keyboards do not, alternative hotkeys were added to maintain consistent finger distance across devices.
| Shortcut | Action |
|---|---|
Ctrl + Shift + Win + → |
Move window to next desktop (Windows style) |
Ctrl + Shift + Win + ← |
Move window to previous desktop (Windows style) |
Ctrl + Shift + Alt + → |
Move window to next desktop (alternative style) |
Ctrl + Shift + Alt + ← |
Move window to previous desktop (alternative style) |
| Shortcut | Action |
|---|---|
Ctrl + Win + → |
Switch to next desktop (native Windows) |
Ctrl + Win + ← |
Switch to previous desktop (native Windows) |
Ctrl + Alt + → |
Switch to next desktop (alternative style) |
Ctrl + Alt + ← |
Switch to previous desktop (alternative style) |
Download the move-window-between-desktops-setup.exe from the releases page, double-click the setup installer and follow the on-screen instructions.
- Automatically configures Task Scheduler to launch the utility at every user login
- Supports automatic updates via WinGet
Run PowerShell and type the following commands:
winget install FAI-Solution.move-window-between-desktopsDuring installation, you’ll be prompted for elevated privileges. Accept to enable moving elevated apps (Task Manager). After installation, the folder opens—double-click move-window-between-desktops.exe to run. To upgrade, enter the following in PowerShell:
winget update FAI-Solution.move-window-between-desktopsDownload move-window-between-desktops.exe and setup-autostart.exe (a helper utility that configures Task Scheduler) from the releases page:
- No installation required
- Run directly from any folder
- Requires
VirtualDesktopAccessor.dllin same folder — download the correct version from VirtualDesktopAccessor's release page for your Windows build (Settings → System → About → look for "OS build")
- Download and install AutoHotkey v2 (if not already installed)
- Download (right-click → "Save link as") the following files: move-window-between-desktops.ahk , setup-autostart.ahk
- Find and download the matching
VirtualDesktopAccessor.dllfor your Windows build (Settings → System → About → check "OS build") from VirtualDesktopAccessor's release page - Place all three files together, as shown below:
📁 MoveWindowBetweenDesktops/
├── move-window-between-desktops.ahk (main script)
├── setup-autostart.ahk (autostart configuration)
└── VirtualDesktopAccessor.dll (Windows API bridge)
- Run setup-autostart.ahk as Administrator — this sets up autostart and launches the script
- (Optional) add a custom icon named
app_icon.icoto the same folder — the script will automatically update the tray icon
Open PowerShell as Administrator (pwsh.exe), add the bucket, then install by running:
scoop bucket add fai-solutions https://codeberg.org/FAI-Solutions/scoop-bucket
scoop install move-window-between-desktopsThen double-click setup-autostart.ahk as Administrator to enable autostart and the main script.
If you see a SmartScreen warning (this is normal for new software):
- Click More info
- Click Run anyway
When you download .ahk files from the internet, Windows may flag them as
untrusted. You might see a SmartScreen popup stating “Windows protected your PC”.
- Right-click each downloaded
.ahkfile → select Properties → at the bottom of the General tab, check the Unblock checkbox → click Apply - Do this for both
move-window-between-desktops.ahkandsetup-autostart.ahkbefore running them
- Check if the icon still appears in the system tray
- A Windows update may require a new DLL version — check releases for updates
- Open an issue with your Windows build number
Run the application as Administrator. The installer can configure this automatically via scheduled task.
- Developer: Johannes Faber — fais.udder466@passinbox.com
- Homepage: https://fai-solutions.codeberg.page/move-window-between-desktops/
- Repository: https://codeberg.org/FAI-Solutions/move-window-between-desktops
- Issues: https://codeberg.org/FAI-Solutions/move-window-between-desktops/issues
- Mirror: https://github.com/FAI-Solutions/move-window-between-desktops
-
AutoHotkey v2 — The scripting language that powers this utility. AutoHotkey is a free, open-source scripting language for Windows that allows users to easily create scripts for automating tasks and customizing hotkeys.
-
VirtualDesktopAccessor by Jari Pennanen — The DLL that provides access to Windows' virtual desktop API (MIT License).
-
Code Signing Policy — Code signed by SignPath.io, certificate by SignPath Foundation
Enjoy a feature Microsoft should have included long ago!