Is there a way to switch virtual desktops on my monitors SIMULTANEOUSLY?
Option 1: Mission-Control Setting "Displays have separate Spaces"
I'm not entirely sure if this is what you're looking for:
If you go to "System Preferences" ➝ "Mission Control", then uncheck "Displays have separate Spaces":
This will couple the spaces of all screens. So if you swipe or switch to another space on one screen, the other screens will also switch to the corresponding space.
Option 2: Use a window manager
If you would like to configure the behaviour and the keyboard shortcuts exactly the way you want and you are willing to spend some time to configure it, consider using a window manager. A nice window manager for macOS is yabai.
yabai is a window management utility that is designed to work as an extension to the built-in window manager of macOS. yabai allows you to control your windows, spaces and displays freely using an intuitive command line interface and optionally set user-defined keyboard shortcuts using skhd and other third-party software.
-
Install the homebrew package manager
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-
Install yabai
brew install yabai
-
For switching spaces to work, you might also need to disable the system-integrity protection: https://github.com/koekeishiya/yabai/wiki/Disabling-System-Integrity-Protection -- Maybe have a look at the wikipedia article to decide whether you are ok with that.
-
Make sure to install and load yabai's scripting addition
sudo yabai --install-sa sudo yabai --load-sa
-
Depending on whether you would like to use window tiling, window-focus features etc., configure yabai in the
~/.yabairc
file. -
In order to bind window-manager commands to keyboard shortcuts, install skhd:
brew install koekeishiya/formulae/skhd brew services start skhd
-
Configure shortcuts in
~/.skhdrc
. For example, to bind Command+Ctrl+1 to switch to spaces 1 (on screen 1) and 6 (on screen 2), and to bind Ctrl+1 to switch to space 1 (on screen 1) only, use this configuration:# ~/.skhdrc ctrl - 1 : yabai -m space --focus 1 cmd + ctrl - 1 : yabai -m space --focus 1 && yabai -m space --focus 6
If your 'pairs' are always the same combinations 1&6, 2&7 etc, then switching off 'Displays have separate Spaces' will solve it - though you'll have to set your pairs up again initially as it won't combine your existing screens intelligently.
If you need anything more complex/flexible, then you'd probably be looking at something 3rd party.