10

Gjs (Gnome JavaScript bindings) を使用して gtk+ アプリを作成しています。利用可能なドキュメントがないため、gnome-shell JavaScript のソースを読んでいます。私のアプリでは、にアクセスする必要がありますglobal.userdatadir

Shell オブジェクトをスクリプトに追加しようとしています:

const Shell = imports.gi.Shell;

で実行します#gjs myscript.js が、これを行うと、次のようなエラーがスローされます:

JS ERROR: !!!   Exception was: Error: Requiring Shell, version none: Typelib file for namespace 'Shell' (any version) not found
    JS ERROR: !!!     lineNumber = '0'
    JS ERROR: !!!     fileName = '"gjs_throw"'
    JS ERROR: !!!     stack = '"("Requiring Shell, version none: Typelib file for namespace 'Shell' (any version) not found")@gjs_throw:0
@manager.js:5
"'
    JS ERROR: !!!     message = '"Requiring Shell, version none: Typelib file for namespace 'Shell' (any version) not found"'
Error: Requiring Shell, version none: Typelib file for namespace 'Shell' (any version) not found

何が問題なのか理解できません。Gnome シェルのソース ファイルとまったく同じです。他のオブジェクトはimports.gi.Gio、を使用しても問題ありません。正常imports.gi.GLibに動作します。

Ubuntu 11.10 x64 での作業

4

3 に答える 3

7

gjs 経由で gnome-shell 拡張機能を実行することはできません。それらは gnome-shell 自体によってロードされる必要があります。開発の場合、これは通常、それらを~/.local/share/gnome-shell/extensions/YOUR-EXTENSION-IDシェルに入れて再起動することを意味します。

于 2012-05-05T06:39:20.553 に答える
2
$ apt-file search -x "Shell.*typelib"
gnome-shell: /usr/lib/gnome-shell/Shell-0.1.typelib
gnome-shell: /usr/lib/gnome-shell/ShellJS-0.1.typelib
gnome-shell: /usr/lib/gnome-shell/ShellMenu-0.1.typelib

$ sudo apt-get install gnome-shell
于 2015-01-20T16:58:51.477 に答える