Jul 14, 2007

Preferences Manager.js

ホットキーやレイアウトの設定を書き出し/読み込みするスクリプトを公開しました。

将来的にはビルトインで実装されそうですが、スクリプトと defaults コマンドで何とかなりそうだったので作ってみました。ただ間違ったファイルを読み込ませたりすると、最悪ウィンドウが開かなくなったりするので注意が必要です。


外部から初期設定をいじる事が出来るので、OSX の 'defaults' コマンドは非常に便利なんですが、ネストされた配列や辞書の値をセットする方法がわからず、ちょっとハマりました。

なんの事はない、指定のフォーマットで整形した文字列をシングルクオテーションでくくってセットしてやればいいんですよね。要するに read で出力された文字列を、そのままシングルクオテーションでくくって write でセットしてやればいいみたいです。

配列の配列 'A', 'B' を AA というキーの値として設定するには、

defaults write someDomain.someApp AA '( ('A','B') )'

ただこの方法だと、設定値の置き換えや追加にはデータを予めパースしてやらないと駄目なんだよぁ。1次元の配列や辞書の場合、オプション -array-add や -dict-add なんかで、追加ができるんですが、この場合はネストされた値には使えないみたいですね。残念。

Comment

No Comments

Post Your Comment


(Smile) (Wink) (Laugh) (Foot in mouth) (Frown) (Gasp) (Cool) (Tongue) (Ambivalent) (Angry) (Cry) (Sealed) (Touched) (Undecided) (Yum)

You must fill all *s. e-mail won't be publicized.