2012-02-23 7 views
2

現在、10.6(および10.7)の "スペース"に関連するplistを変更することによって、すべてのデスクトップにアプリケーションをデフォルト設定しようとしています。 Snow Leopardでは、システム環境設定>公開とスペースに行き、デフォルトですべてのスペースに表示されるようにアプリケーションを設定することで、アプリケーションのデフォルトのデスクトップを設定することができます。これは期待通りに機能し、アプリケーションはすべてのデスクトップに表示されます。デフォルトのデスクトップを設定するためにOSXの "スペース" plistを変更する

しかし、私は実用的なアプローチを探していて、アプリケーション内からこの機能を設定したいと考えています。

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

、その後とドックを再起動し、(アプリケーションのデスクトップのデフォルトを参照して)、これらのファイルを編集する

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

がどこに影響しませんドック killallを:私は、各OSに関連付けられているのplistファイルを見つけました私のアプリケーションはSpacesに表示されます。

私もと私のデフォルトのデスクトップを設定するデフォルトを使用して試してみた:アプリケーションのように、正しいデスクトップ(またはすべてのデスクトップに関連付けられていなかったという点で、これはまた仕事に失敗した

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

上記のコマンドが表示されます)。

この2つの方法では、システム環境設定パネルにアプリケーションが表示され、正しいスペースが割り当てられます。しかし、システム環境設定から直接割り当てない限り、動作しません。

これを得るには、plistと一緒に設定する必要がありますか?

答えて

2

10.7は、文字列AllSpacesとして「すべてのスペース」を格納するように見えます。

参照のため、空の文字列を使用してメインのデスクトップにアプリケーションをバインドし、スペースのuuid値に基づいて他のスペースにアプリケーションをバインドします。

+0

これは当てはまりました。 – Julio

+1

ドックアイコンをクリックすることで、環境設定を変更したり再設定しなくても、システムが実際にあなたの変更を尊重することができましたか? – finiteloop

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 
関連する問題