デモコードとチュートリアルに満足していないのは、ランダムインポートの束を導入し、それらが何であるか、またはそれらをどのように使用するかを決して説明しないからです。他の人が追加できる独自の回答を作成しているので、人々は実際に呼び出すことができる関数、インポートできるものなどを実際に知ることができます。
Gnome Shellのドキュメントは生成されていますが、やや不完全です。さまざまなチュートリアル、例、公開されている拡張機能で見たもののほとんどが見つかりませんでした。
唯一の本当に信頼できるドキュメントは、Gnome Shellソース自体です。利用可能なものを知るための他の最新の方法や完全な方法はありません。
これらの2つの出発点は特に優れています。
Cソースは、global
インポートする必要のない重要なオブジェクトがあり、ウィンドウマネージャー(キーバインドを含む)、セッション情報、利用可能な画面などにアクセスできることを示しています。ソースは次のとおりです。
オブジェクトの使い方global.display
を知りたかったので、今のところ最高のドキュメントはアランノウルズによって提供されたものです。
GObjectイントロスペクションバインディングを介して他のものをインポートできます。たとえば、次のとおりです。
一般に、さまざまなGnomeコンポーネントのリファレンスドキュメントを調べて、他のインポートを見つけることができます。
見かけのガラスに関する注意:これらのインポートを見かけのガラスで使用する場合、いくつかの奇妙な点があります。例えば:
const Clutter = imports.gi.Clutter;
... Clutter
すでに存在しているため、機能しません。しかしその後:
const MyClutter = imports.gi.Clutter;
...また機能しません。MyClutter
未定義であり、使用できません。あなたはしなければならない:
MyClutter = imports.gi.Clutter;
もちろん、この場合はClutter
すでに存在しているため、実際には必要ありません。しかし、探しているGlass名前空間に何があり、まだないかは文書化されていないので、何かをインポートしようとしてこれらの問題が発生した場合は、覚えておいてください。
残りの質問:
- なに
Mainloop
?これはインポートされmain.js
、GLibメインループに関連する機能があるようです。これに関するドキュメントはありますか?
- なに
imports.misc
?そこには本当に便利なものがいくつかあるようExtensionUtils
です。それは何ですか?
- DBusはどのように使用しますか?イントロスペクションはどうですか?