web-dev-qa-db-ja.com

gnome Shell拡張機能開発のドキュメント?

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

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

22
KoRnKloWn

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

Gnome Shell のドキュメントが生成されていますが、やや不完全です。さまざまなチュートリアル、例、公開されている拡張機能で見たもののほとんどが見つかりませんでした。

唯一の本当に信頼できるドキュメントは、Gnome Shellソース自体です。利用できるものを知るための最新の方法や完全な方法は他にありません。

これらの2つの出発点は特に優れています。

Cソースは、インポートする必要のないglobalと呼ばれる重要なオブジェクトがあることを示し、ウィンドウマネージャー(キーバインドを含む)、セッション情報、利用可能な画面などへのアクセスを提供します。 。ソースは次のとおりです。

global.displayオブジェクトの使用方法 を知りたかったのですが、現時点では、最良のドキュメントは Alan Knowles提供 です。

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

ドキュメントは少し遅れており、潜在的な情報源の1つは OS配管工のミュージング です。この投稿は バージョン3.2で動作するようにGNOME Shell拡張機能を更新する

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

4
Panther

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

3
agustibr