Starting Programs in a Specific Virtual Desktop

You can use the program VDesk to achieve this functionality.

VDesk for Windows 10: launch programs on virtual desktops

Vdesk is a portable program for Windows that adds the feature to Windows 10. It is a command line program but ships with an option to integrate its functionality in File Explorer.

The main command looks like this: vdesk [n] [command [args]]

  • n sets the index of the virtual desktop you want to launch the program on.
  • [command [args]] specifies the program and arguments that you want it to start.

The command vdesk notepad.exe launches Notepad on a new virtual desktop, while vdesk 3 notepad c:\text.txt opens Notepad on virtual desktop 3 and uses an argument to load text.txt automatically.

You can run the application on start of Windows 10 to always load programs on virtual desktops when the operating system starts by creating simple batch files, and adding them to one of the many startup locations of the operating system.

The option to launch a program on a new virtual desktop can be added to File Explorer as well. You need to run vdesk -install for that on the command line, and will notice afterwards that a new "open in new virtual desktop" option is available when you right-click on executable files in File Explorer.

The command vdesk -uninstall removes the entry from File Explorer again.


Since the original answer was posted, VDesk command line syntax has changed, and the context menu feature (vdesk -install) is no longer available. The referenced ghacks.net article has been partially updated. The README and usage popup look correct but omit the vdesk n command mentioned in the 1.1.0 Release Notes. I imagine these inconsistencies are the source of some users' difficulties in getting VDesk to work.

For quick reference, here are the VDesk 1.2.0 command formats which I have found to work on Windows 10 Home 1903:

vdesk Show VDesk Usage popup.

vdesk create Create a new desktop.
vdesk create:n Create new desktop(s) to total n.

vdesk n Switch to desktop number n.
vdesk run:command [args] Switch to new desktop, run program.
vdesk on:n run:command [args] Switch to desktop n, run program.

vdesk noswitch:true run:command [args] Run on a new desktop.
vdesk noswitch:true on:n run:command [args] Run on desktop n.

Note: noswitch:true opens the application's first window on the specified desktop. Any additional windows open on the current desktop.

Commands must specify an executable whose filename is either fully qualified, or exists in a directory/folder on the PATH. It can be a script if there is an associated executable to open it (in some cases I have to include the script's extension). If VDesk cannot find the executable, an error popup says "The system cannot find the file specified". If the file is not executable, it may say "No application is associated with the specified file for this operation".