Назначение окон приложений разным пространствам/рабочим столам

У меня настроено два пространства, и я храню некоторые окна Safari в одном пространстве, а некоторые — в другом. Тем не менее, Mission Control позволяет вам назначать приложение только для пространства, но не для разных окон в приложении.

В качестве обходного пути я создал ярлык AppleScript, который запускает новый экземпляр Safari:

открыть -n /Приложения/Safari.app

Это успешно создает несколько экземпляров Safari, но экземпляры все еще каким-то образом переплетаются в Mission Control. Когда я выбираю экземпляр в Dock и выбираю «Параметры» > «Назначить» > «Этот рабочий стол» или «Нет», этот параметр в другом экземпляре обновляется и становится таким же.

Есть ли способ запустить несколько экземпляров приложения, каждое из которых может быть назначено разным пространствам? (Бегущий горный лев 10.8.5.)

Ответы (1)

Вы можете сделать копию пакета приложений Safari и изменить идентификатор пакета:

cp -R /Applications/Safari.app /Applications/Safari2.app
defaults write /Applications/Safari2.app/Contents/Info.plist CFBundleIdentifier my.safari2
cp ~/Library/Preferences/com.apple.Safari.plist ~/Library/Preferences/my.safari2.plist

Назначения пространств выполняются для каждого идентификатора пакета:

$ defaults read ~/Library/Preferences/com.apple.spaces.plist app-bindings
{
    "my.safari2" = "FC886111-EE78-4844-A5E5-A11BECA713CF";
}

В этом случае вы также можете использовать Webkit.app или создать браузер для конкретного сайта с помощью Fluid .

Отличное решение для OSX-ниндзя, Лаури!
Я смущен этим. Могу ли я использовать это для любых окон любого приложения? не только сафари? Я хочу открыть некоторые окна MS Edge и некоторые окна vscode в одном пространстве, а затем некоторые другие окна MS Edge и другие окна vscode в другом пространстве? и чтобы они оставались там даже после перезагрузки ноутбука