Konfabulator for Windows

ちょっとした小物を置くのに便利なKonfabulatorMacOS X TigerだとDashboardってのが入って、揉めたっけね。
なんとなく、これのwidgetってどうやって作るんだろと調べてみたら。これってUnxUtils(http://unxutils.sourceforge.net/)が中にバンドルされてて、javascriptからrunCommand("foo")を実行すると、それにあるsh.exe経由で実行するんだね。へええ。そんな訳で、たまたまCygwin入れてたりすると、

ret = runCommand("gcc -v");

でも動く。shがHOMEみて.bashrc読んでるっぽい。あれまあ。あ、UnxUtilsに加えてcurlまで入っとる。
最低限必要な.konファイルはXMLでこれくらい。Webをぐるぐるしたが、今はどうもタグが必須になったらしい。ロード時にエラーが出る。

<?xml version="1.0" encoding="UTF-8"?>
<widget>
    <debug>on</debug> <!-- Turn on debugging console -->

    <window title="MyFirstWidget">
        <name>main</name>
        <width>100</width>
        <height>100</height>
        <visible>false</visible>
    </window>
    <action trigger="onLoad" file="main.js">
    <!-- 
    // Or put your js code here like this
    main.visible = true;
     -->
    </action>
</widget>

コードはmain.jsに書くか、内に書く。onLoadがエントリポイント。ってjs書く人には言わなくても大体わかるか。日本語はファイルのencodingをどうやってもUTF-8しか通らない。
で、これをMyFirstWidget.konに保存して、ダブルクリックで起動。デバッグコンソールにはprint()で文字列が出せて、evalさせることもできる。
テストとデバッグはそのダブルクリックだけで済むんだが、そのあとにひっかかったのがパッケージング。ファイル配置は

MyFirstWidget.widget/Contents/MyFirstWidget.kon
                              main.js
                              Resources/foo.png

とかなんとかにして、これをzipで固めて拡張子を.widgetに変更する。そのとき、このMyFirstWidgetってところは全部同じにして、zipで固める前のディレクトリ名も固めた後のファイル名も.widgetにする。らしい。
参考にしたのはこのへん。皆さんありがとうございます。