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