我目前正尝试通过在10.6(和10.7)上修改与“Spaces”相关联的plist来将应用程序默认为所有桌面。在Snow Leopard上,可以通过转到“系统偏好设置”>设置应用程序的默认桌面。 Expose和Spaces,并将应用程序设置为默认显示在所有空格中。这按预期工作,我的应用程序出现在所有桌面上。
但是,我正在寻找一种实用的方法,并希望能够在我的应用程序中设置此功能。我找到了与每个操作系统相关的plist文件:
OS X 10.7: ~/Library/Preferences/com.apple.spaces.plist
和
OS X 10.6: ~/Library/Preferences/com.apple.dock.plist
编辑这些文件(参考应用程序桌面默认设置),然后使用 killall Dock 重新启动Dock不会影响我的应用程序在Spaces中显示的位置。
我还尝试使用 defaults 设置我的默认桌面:
defaults write com.apple.dock workspaces-app-bindings -dict-add com.mybundle.thing 65544
这也无法工作,因为应用程序没有与正确的桌面(或所有桌面,如上面的命令所示)相关联。
这两种方法都会使应用程序显示在“系统偏好设置”面板中,同时显示正确的空间分配。但是,除非我直接从系统偏好设置中分配它,否则它无法工作。
为了让这个工作起作用,还有其他我需要设置的东西吗?
答案 0 :(得分:2)
10.7似乎将“所有空格”存储为字符串AllSpaces
。
作为参考,它使用空字符串将应用程序绑定到主桌面,并根据空间的uuid
值将其绑定到其他空间。
答案 1 :(得分:1)
这个Applescript在OSX 10.8.5中为我的类似项目工作, 但它只列出了每个空间的名称,(我有9个空格。)这是一种访问plist数据的简单方法。我确信可以通过调整来重写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