Johnny Matthews | Create a new virtual desktop in MacOS.

MacOS has the ability to create multiple virtual desktops. I find this feature super handy because it allows me to have separate desktops for separate pieces of work. Annoyingly, Apple doesn't include a built-in hot-key to create a new desktop. However, with the use of Albert, we can create a script to create a new desktop for us! This was written on 31st of May 2021.

Virtual desktops good! Default MacOS behavour bad.

  1. Install Alfred.

  2. Buy the pro version.

  3. Select Workflows and create a blank workflow.

  4. Enter the following info:

    Field Value
    Name Create a new desktop.
    Description Creates a new virtual desktop using a script.
    Category Productivity

    Create a workflow screen.

  5. Click Create.

  6. Right-click in the workflow panel and select Input > Keyword.

    Select input > keyword.

  7. Enter the following information:

    Field Value
    Keyword desktop
    Arguments dropdown No arguments
    Title Desktop
    Subtitle Creates a virtual desktop.

    Create a keyword.

  8. Right click the block that was just created and select Insert after > Actions > Run script.

    Select Insert after > Actions > Run script.

  9. Set the Language to osascript (AS).

  10. Leave with input as argv and running instance sequentially as their defaults.

  11. Paste the following code into the textbox:

    #!/usr/bin/osascript
    tell application "System Events"
      do shell script "/System/Applications/Mission\\ Control.app/Contents/MacOS/Mission\\ Control"
      click button 1 of group "Spaces Bar" of group 1 of group "Mission Control" of process "Dock"
      do shell script "/System/Applications/Mission\\ Control.app/Contents/MacOS/Mission\\ Control"
    end tell
    
  12. Click Save.

  13. Open Alfred and search for desktop.

    Search for desktop.

  14. That’s it!

Now, every time you search for desktop in Alfred, MacOS should create a new desktop for you! You could also follow the steps above to create a script to delete an open desktop if you were so inclined.