Gjs のサンプルコードはほとんど以下が書いてある。
const Lang = imports.lang;
この lang.js って今はドコにあるの?
以前は /usr/share/gjs-1.0 以下にあったのに。
Gjs は gir 以外のモジュールをどこから探しているのだろう。
以下のコードで調べることができるようだ。
#!/usr/bin/gjs let list = imports.searchPath; for (let s of list) { print(s); } /* output @ 3.18 resource:///org/gnome/gjs/modules/ /usr/local/share/gjs-1.0 /usr/share/gjs-1.0 /usr/share/gjs-1.0 */
こんなディレクトリは 3.18 では存在しない。
どうやら現行版はリソース化されてソレを参照しているようだ。
ちなみにこの resource:///org/gnome/* は Gvfs の URI でして。
たとえば Nautilus にて Ctrl+L して resource:/// と打ち込むと。
と Nautilus が参照しているリソースにアクセスできます。
ファイルに見えるけど拡張子が無いものはディレクトリ。
Gedit の FileChooserDialog で Ctrl+L しても同じようにできます。
各アプリが参照しているリソースにしかアクセスできませんので注意。
ということで、Gjs のリソースの中身を探してみる。
gjs/modules at master ? GNOME/gjs ? GitHub
上記がリソースの中身らしい、lang.js もしっかりあります。
以前書いた format.js もこの中にある。
Here Document | PaePoi
色々まとめようと思ったけどバージョンでコロコロ変わりそう。
もしかしたら Gjs も PyGObject 同様にバージョン指定が必要になるかも。
Fedora 24 が出てからもう少し確認しよう。
もはや GNOME 公式の overview が Gjs なんだよな。
vfunc_* のオーバーライドを使っていないのは何故だ?
GitHub – gcampax/gtk-js-app: A template for a standard Gtk/GNOME JS application
コッチのほうが解りやすい、メモメモ。