2012-02-23 54 views
2

我目前正試圖通過修改與10.6(和10.7)上的「Spaces」關聯的plist來默認應用程序到所有桌面。在Snow Leopard上,可以通過轉到系統偏好設置>公開和空格設置應用程序的默認桌面,並將應用程序設置爲默認顯示在所有空間中。這按預期工作,我的應用程序出現在所有桌面上。修改OSX上的「Spaces」plist以設置默認桌面

但是,我正在尋找一種務實的方法,並希望能夠在我的應用程序中設置此功能。我發現每個操作系統相關的的plist文件:

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

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

編輯這些文件(參考應用程序桌面的默認值),然後重新啓動與碼頭killall碼頭不影響地方我的應用程序顯示在Spaces中。

我也嘗試使用默認設置我的默認桌面有:

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

這也未能奏效,因爲應用程序沒有使用正確的桌面(或所有桌面相關聯,如上面的命令顯示)。

這兩種方法都使應用程序顯示在「系統首選項」面板中,並顯示正確的空間分配。但是,除非我直接從系統偏好設置中指定它,否則它將失敗。

是否還有其他東西需要與plist一起設置才能使其工作?

回答

2

10.7似乎將字符串AllSpaces的「所有空格」一起存儲。

作爲參考,結合應用到桌面主用一個空字符串,並根據空間的uuid值其他空間。

+0

這是真的,我怎麼最終得到這個工作。 – Julio 2012-04-18 14:45:35

+1

有沒有人有運氣10.8編程這樣做,並具有系統實際兌現的更改,您無需更改和重新設定通過點擊Dock圖標的方式偏好? – finiteloop 2013-06-27 03:14:50

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