St の St.IconType と extenson.js 内部でのglobal

GNOME Shell Extension のソースとリファレンスを調べていて、 St.IconType がわからなかったのでソースを調べてみました。
http://git.gnome.org/browse/gnome-shell/tree/src/st/st-types.h
を見ると、

typedef enum {
  ST_ICON_SYMBOLIC,
  ST_ICON_FULLCOLOR
} StIconType;

となっていて、St.IconType.SYMBOLIC と St.IconType.FULLCOLOR の2つだけのようです。icon-name は、/usr/share/icons 以下にインストールされているファイル名を指定し、FULLCOLOR の場合はそのまま basename となり、SYMBOLIC の場合は、 icon_name に -symbolic がついた basename になっているようです。

gnome-shell-extension-tool コマンドで作成されるデフォルトアイコンは、

$ eog /usr/share/icons/gnome/scalable/actions/system-run-symbolic.svg 

になります。
property で、 icon_type を St.IconType.FULLCOLOR にすると、

$ eog /usr/share/icons/gnome/48x48/actions/system-run.png 

になりますが、違いがよくわかりませんね。一応、設定できるということで我慢します。

次に、 Looking Glass で紹介した global ですが、これは、 Shell.global_get() しなくても、 extension.js 内部でそのまま使えるようです。
extension.js の _showHello() 関数の最初に、

    global.notify_error("Hello,", "world!");

を追加しておくと、Hello, world! というラベル表示の他に、notification エリアからも Hello, world! というエラー表示がなされます。

デバッグ時に使うとどこまで動作しているかわかるようになるので、便利かもしれません。