GNOME Gjs と Clutter

Seed で Clutter を使うサンプルは以前書いたが、Gjs では書いてなかったので試した。窓を開いて、終了ボタンで終了するだけのサンプルです。

#! /usr/bin/env gjs

const Clutter = imports.gi.Clutter;

Clutter.init (null, 0);

var stage = new Clutter.Stage();
stage.connect("destroy", function(){Clutter.main_quit();});

stage.show();
Clutter.main();

Clutter の場合、main window というか Top Level Window が Stage 型で、その中に Actor 型を作っていく感じです。Stage 型のオブジェクトを終了するときに、 destroy シグナルが飛ぶので、 Clutter.main_quit() 関数を呼び出しているだけの簡単なプログラムです。

gjs で引数を扱えないのは困るんだよな。