Изменение списка пространств в OSX для установки рабочих столов по умолчанию

В настоящее время я пытаюсь установить приложение по умолчанию для всех рабочих столов, изменив список, связанный с «Пробелами» в 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

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

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

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

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

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

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


person Julio    schedule 23.02.2012    source источник


Ответы (2)


10.7, похоже, хранит «все пробелы» как строку AllSpaces.

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

person eyelidlessness    schedule 18.04.2012
comment
Кому-нибудь повезло сделать это программно в 10.8, и система действительно учитывает ваши изменения без необходимости изменять и повторно устанавливать предпочтения путем нажатия на значок док-станции? - person finiteloop; 27.06.2013

Этот 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
person Mr. Science    schedule 24.12.2016