The following shows how you can tell macOS to assign an application to show on one specific desktop, all desktops, or just a single desktop.
- Announcement: https://twitter.com/_devalias/status/1734131769631498652
⇒ defaults read com.apple.spaces app-bindings
{
"com.apple.activitymonitor" = AllSpaces;
"com.googlecode.iterm2" = AllSpaces;
"com.riotgames.riotgames.riotclientux" = AllSpaces;
"com.toggl.toggldesktop.toggldesktop" = AllSpaces;
"org.audacityteam.audacity" = "7B8802D8-756C-445B-AE72-23FCABFC74C4";
"org.whispersystems.signal-desktop" = AllSpaces;
"ru.keepcoder.telegram" = AllSpaces;
}⇒ /usr/libexec/PlistBuddy -c "Print :app-bindings" ~/Library/Preferences/com.apple.spaces.plist
Dict {
ru.keepcoder.telegram = AllSpaces
com.googlecode.iterm2 = AllSpaces
com.riotgames.riotgames.riotclientux = AllSpaces
com.toggl.toggldesktop.toggldesktop = AllSpaces
org.whispersystems.signal-desktop = AllSpaces
com.apple.activitymonitor = AllSpaces
org.audacityteam.audacity = 7B8802D8-756C-445B-AE72-23FCABFC74C4
}⇒ /usr/libexec/PlistBuddy -c "Delete :app-bindings:im.beeper" ~/Library/Preferences/com.apple.spaces.plist
# successfully deleted
⇒ killall Dock
# to ensure it is updated properly based on the plist changes⇒ /usr/libexec/PlistBuddy -c "Delete :app-bindings:im.beeper" ~/Library/Preferences/com.apple.spaces.plist
Delete: Entry, ":app-bindings:im.beeper", Does Not ExistNote: I haven't tested this
⇒ /usr/libexec/PlistBuddy -c "Add :app-bindings:im.beeper string TODO-THE-UUID-OF-THE-DESKTOP" ~/Library/Preferences/com.apple.spaces.plist
⇒ killall Dock
# to ensure it is updated properly based on the plist changes⇒ /usr/libexec/PlistBuddy -c "Add :app-bindings:im.beeper string AllSpaces" ~/Library/Preferences/com.apple.spaces.plist
⇒ killall Dock
# to ensure it is updated properly based on the plist changes