自分がお気に入りのLinux mint cinnamon Editionにはdeskletというガジェット機能があります。
こいつの開発手法が国内国外問わず殆どないため、試行錯誤しながら現在学んでいるのですが。
ある程度分かってきたのでメモを残していこうと思います。
とりあえずいつか自作deskletを一般リリースしたいものだ。
deskletとは
deskletとはwindows7まであったデスクトップガジェットみたいなもの。
あれはセキュリティ的な理由から排除されてしまいましたが。
MacのDashboardとは違いデスクトップに常駐するので、別スクリーンに切り替えても当然表示されています。
言語
deskletはJavaScriptとCSSで書かれています。
cinnamonのベースとなるGNOME3のgnome extensionがJavaScriptで書かれていますし、その延長線にあるものですね。
そのためWebの知識があれば飲み込みは早いです。
インタープリタ
deskletはCJSというツールで実行されます。
こいつはGNOME3のGJSをベースに拡張されたもの。
元々はSpiderMonky、Firefoxのエンジンがベースですが。
そのためCommonJSのrequireなんかは使えないですが、ES6あたりの記法はだいたいサポートされている感じですね。
Shell Toolkit
deskletではこいつを使ってGPUレンダリングします。
書き方はswingとかに近く、Buttonオブジェクトをコンテナにバインドする、という感じ。
ただこいつだけじゃなくてClutterおよびGtkも知ってないと色々こんがらがります。
ClutterというGPUレンダリングオブジェクトを継承したものなので。
とりあえずまずはこんなものか。
次回に続く。
第二回