<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:admin="http://webns.net/mvcb/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>TG BLOG</title>
<link>http://tres-graficos.jp/blog/index.php</link>
<pubDate>Sat, 14 Jul 2007 10:08:28 </pubDate>
<description>
TG BLOG - RSS 2.0 (Really Simple Syndication).
</description>
<item>
<title>Preferences Manager.js</title>
<link>http://tres-graficos.jp/blog/article.php?id=435</link>
<pubDate>Sat, 14 Jul 2007 10:08:28 +0900</pubDate>
<description>ホットキーやレイアウトの設定を書き出し／読み込みするスクリプトを公開しました。
将来的にはビルトインで実装されそうですが、スクリプトと defaults コマンドで何とかなりそうだったので作ってみました。ただ間違ったファイルを読み込ませたり...</description>
<content:encoded>
<![CDATA[<p>ホットキーやレイアウトの設定を書き出し／読み込みするスクリプトを公開しました。</p>
<p>将来的にはビルトインで実装されそうですが、スクリプトと defaults コマンドで何とかなりそうだったので作ってみました。ただ間違ったファイルを読み込ませたりすると、最悪ウィンドウが開かなくなったりするので注意が必要です。</p>
<hr />
<p>外部から初期設定をいじる事が出来るので、OSX の 'defaults' コマンドは非常に便利なんですが、ネストされた配列や辞書の値をセットする方法がわからず、ちょっとハマりました。</p>
<p>なんの事はない、指定のフォーマットで整形した文字列をシングルクオテーションでくくってセットしてやればいいんですよね。要するに read で出力された文字列を、そのままシングルクオテーションでくくって write でセットしてやればいいみたいです。</p>
<p>配列の配列 'A', 'B' を AA というキーの値として設定するには、</p>
<div class="code">
<code>defaults write someDomain.someApp AA '( ('A','B') )'</code>
</div>
<p>ただこの方法だと、設定値の置き換えや追加にはデータを予めパースしてやらないと駄目なんだよぁ。１次元の配列や辞書の場合、オプション -array-add や -dict-add なんかで、追加ができるんですが、この場合はネストされた値には使えないみたいですね。残念。</p>
]]>
</content:encoded>
</item>
</channel>
</rss>