Изменение списка «Spaces» в OSX для установки рабочих столов по умолчанию - PullRequest
2 голосов
/ 24 февраля 2012

В настоящее время я пытаюсь установить приложение по умолчанию для всех рабочих столов, изменив список, связанный с «Пробелами» в 10.6 (и 10.7).В Snow Leopard можно установить рабочий стол по умолчанию для приложения, перейдя в «Системные настройки»> «Экспонировать и пробелы» и установив приложение для отображения по умолчанию во всех пространствах.Это работает, как и ожидалось, и мое приложение появляется на всех компьютерах.

Однако я ищу прагматичный подход и хотел бы иметь возможность установить эту функцию из моего приложения.Я обнаружил файлы plist, связанные с каждой ОС:

OS X 10.7: ~/Library/Preferences/com.apple.spaces.plist

и

OS X 10.6: ~/Library/Preferences/com.apple.dock.plist

Редактирование этих файлов (в соответствии с настройками по умолчанию на рабочем столе приложения), а затем перезапуск дока с помощью killallDock не влияет на то, где мое приложение отображается в Spaces.

Я также пытался использовать по умолчанию , чтобы установить для рабочего стола по умолчанию:

defaults write com.apple.dock workspaces-app-bindings -dict-add com.mybundle.thing  65544

Это также не сработало, поскольку приложение не связывалось с правильными рабочими столами (или со всеми рабочими столами, как показано в приведенной выше команде).

Оба эти метода заставляют приложение отображаться на панели «Системные настройки»,вместе с правильным назначением пространства.Однако, он просто не работает, если я не назначу его непосредственно из Системных настроек.

Есть ли что-то еще, что мне нужно установить, наряду с plist, чтобы это работало?

Ответы [ 2 ]

2 голосов
/ 18 апреля 2012

10.7 для хранения "всех пробелов" в виде строки AllSpaces.

Для справки, он привязывает приложения к основному рабочему столу с пустой строкой и к другим пробелам на основе значения uuid пробела.

1 голос
/ 24 декабря 2016

Этот Applescript работал для меня в OSX 10.8.5 для аналогичного проекта, но он перечисляет только имена каждого пробела (у меня было 9 пробелов). Это простой способ получить доступ к данным plist.Я уверен, что это может быть изменено, чтобы переписать список.

tell application "Finder" to set propsLST to alias ((home as text) & ¬
"Library:Preferences:com.apple.spaces.plist") as text

tell application "System Events" to set theSPACES to value of every property list item of property list item "Space Properties" of property list item ¬
 "SpacesConfiguration" of contents of property list file propsLST

set spacesLST to {}

repeat with eachSPACE in every item of theSPACES
  set {spaceNAM, spaceWNDW} to eachSPACE as list
  set end of spacesLST to spaceNAM
end repeat

return spacesLST
...