
チュートリアルがありますhttp://wiki.mate-desktop.org/matecorba_to_dbus#d-bus_service_fileDBus 構成ファイルを作成する方法を説明します。
しかし、なぜそれが必要なのか理解できません。サービスは、アプレットの起動時にアプレット自体によって登録されます。そして、アプレットの起動は別の構成 (mate-panel の構成内) で記述されます。
では、DBus はいつ mate-panel から独立してアプレットを起動するのでしょうか?
答え1
これがまだ問題である場合: 私の知る限り、DBUS は、ユーザーがメイト パネルを右クリックして [パネルに追加...] を選択し、アプレットをパネルに追加すると、アプレットを作成または起動するために使用されます。
ご覧になるには https://github.com/mate-desktop/mate-university アプレットを作りたいなら、更新してみようと思います。
編集: わかりました。正確に説明してみましょう。 - 私はこの分野は初めてですが。
なぜ DBus 構成ファイルが必要なのでしょうか?
アプレットをインストールすると、構成ファイルは /usr/share/dbus-1/services にコピーされます - 少なくとも私はそう思います。これにより、アプレットの DBus サービスが開始されます。Mate
-panel は、次のファクトリー サービスの所有権を取得します:
mate-panel-applet-factory.c mate_panel_applet_factory_register_service() が
g_bus_own_name() を呼び出します。
したがって、「サービスはアプレットの起動時にアプレット自身によって登録される」という記述は、私にはちょっと間違っているように思えます。アプレットがサービスを登録するのではなく、単にそれをポイントするだけです。
サービスを削除してパネルを再起動すると、アプレットを追加できますが、何も起こりません。
サービスがアプレットを実行します。
サービスはおそらく panel-addto.c から呼び出されますが、正確な場所を見つけることができませんでした。
DBus が mate-panel から独立してアプレットを起動するのはいつでしょうか?
おそらく決してないでしょう。DBus は単なるインターフェイスであり、それを介して mate-panel はすべてのアプレット ファクトリのリストを解析し、必要に応じてそれらを呼び出すことができるのではないかと思います。
なお、私は mate-panel コードに非常に不慣れなので、3 年以上前に誰かが何かを書いた理由を実際に説明することはできません。
これも関係ありません。誰かがアプレットを書きたいなら、私がお手伝いできると思います。そうでない場合は、元の開発者に直接メールするか、私がこの 1 時間行ってきたようにコードを参照してください...