gnomeシェル拡張開発のドキュメント?


22

私はいくつかのGnomeシェル拡張を開発したいと思っていましたが、JavaScriptを使用しているだけでしたが、基本的なGnomeのドキュメントを使用するように言われているところを探していますが、これは役に立ちません。拡張機能のインポートに関するドキュメントや拡張機能開発用のJavaScript APIが見つからない場合は、チュートリアル(ほとんどは3.2ではなくGnome 3.0向け)のいくつかを調べてみましたが、何も助けにはなりませんでした。

拡張機能開発のためのドキュメントの作成が進行中かどうかは誰にもわかりませんか?私はいくつかの良いドキュメントが本当に欲しいです...


すでにこのページを見ましたか:live.gnome.org/GnomeShell/Extensions
ベンジャミン

SOに関する同様の質問:stackoverflow.com/questions/13107743/…–
Wilf

回答:


7

デモコードとチュートリアルに満足していないのは、ランダムインポートの束を導入し、それらが何であるか、またはそれらをどのように使用するかを決して説明しないからです。他の人が追加できる独自の回答を作成しているので、人々は実際に呼び出すことができる関数、インポートできるものなどを実際に知ることができます。

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はどのように使用しますか?イントロスペクションはどうですか?

4

ドキュメントは少し遅れており、潜在的な情報源の1つは、OS配管工の黙想です。たとえば、バージョン3.2で動作するようにGNOMEシェル拡張を更新するこの投稿です。

必要な情報に応じて、gnomeメーリングリストを試すことができます。


1
これは理論的には質問に回答するかもしれませんが、回答の重要な部分をここに含め、参照用のリンクを提供することが望ましいでしょう
hhlp

3

gnome 3.4の拡張機能を作成するためのステップバイステップチュートリアルは、https//live.gnome.org/GnomeShell/Extensions/StepByStepTutorialに役立つ場合があります。


1
それは言う:「[API]があるためドキュメントの不足のため、非常に困難です...」。しかたがない。
確実に

1
そのランディングページが:)多くの有用なリンクを持っているので、私はあなたに恵みを授与しています
detly
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.