私は最近それを自分で掘り下げました。ドキュメントは通常、まばらであるか、古くなっています。ここに私が始めるのを助けた(そして開発を通して)いくつかの情報源があります:
ドキュメントはほとんど利用できない (または最新のものである) ため、多くのソースを読む必要があります。上記の gnome-shell ソース (JavaScript 部分) をリンクしました。これは、非公式ドキュメント (最も完全なもの) でカバーされていない部分に飛び込むときの良い出発点です。
また、特に役立つのは、作成したいものと同様のことを行う拡張機能について extensions.gnome.org をチェックし、それらのソースを確認することです (それらのほとんどは GitHub または Bitbucket でオープンソースになっています。それらをインストールして見つけることもできます) 。の下のソース~/.local/share/gnome-shell/extensions/
)。
使用するものや特定の関数に関するドキュメントを検索する場合は、さまざまな言語のバインディングのマニュアルを参照することもできます (パラメーターと戻り値が一致しない可能性があります)。
最後になりましたが、デバッグに関するアドバイスを次に示します。
LookingGlass は特に役に立ちません。例外の 1 行 (説明) のみが表示され、起動時 (拡張機能が最初に開始されたとき) に例外が発生した場合にのみ表示されます。
完全な StackTraces と実行時例外については、~/.xsession-errors
-file を参照してください。非常に長くて肥大している可能性があります。この便利なスクリプトを使用して読み取ります。
# Grabs the last session-errors from the current X11 session.
# This includes full Stack-Trace of gnome-shell-extension errors.
# See https://live.gnome.org/GnomeShell/Extensions/StepByStepTutorial#lookingGlass
tail -n100 ~/.cache/gdm/session.log | less
Gnome 3.6 以降、gdm
ディスプレイ マネージャーとして使用している場合、現在のセッション ログはファイルです~/.cache/gdm/session.log
。
systemd を使用する一部の新しいディストリビューションでは、次のコマンドでエラー ログを取得できます。
journalctl -f /usr/bin/gnome-session
拡張機能の設定部分をデバッグするには、端末から-toolを使用して設定を起動gnome-shell-extension-prefs
し、コンソールで例外出力を確認できます (gnome-shell-extension-prefs [uuid]
拡張機能の設定を直接表示するために、 のようなツールを呼び出すこともできます)。
現在、ブレークポイントを使用してデバッグする実際の方法がないため (あるが、注意が必要です)、コンソールにログオンして簡単に確認し、-関数を使用できprint()
ます。上記の出力が表示されます (sessions-error ファイルまたはgnome-shell-extension-prefs
-tool の起動時のターミナル)。
少し入りにくいかもしれませんが、拡張フレームワークは非常に強力です。楽しんでください!
私はもう少し詳細なブログ投稿を書きました。これはここにあります: Making Gnome-Shell Extensions