UnknownMethodエラーのため、xfce4の複数のボリューム通知

UnknownMethodエラーのため、xfce4の複数のボリューム通知

エラーの明らかな部分は、ボリュームを変更すると複数の通知を受け取ることです。

複数ボリュームの通知

症状は似ているようですAskUbuntuに関する質問しかし、これは他の理由かもしれませんが、私は実際にUbuntuを使用していないので、新しい質問をします。

数回の悩みの末に奇妙な点を発見しました。 D-BusサービスNotifyのメソッドを呼び出すとxorg.freedesktop.Notifications通知を表示できますが、エラーが返されます。

Notifyメソッドを呼び出すと機能しますが、エラーが返されます。

私はこれをd-feetD-Busサービスに移動してメソッド署名を検証するために使用しているので、正しいパラメータタイプを使用していることを嬉しく思います(そうしないと、より具体的なエラーが発生した可能性があります)。以下を使用すると同じエラーが発生しましたnotify-send

~% notify-send a                                                              
GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: Method "Notify" with signature "susssasa{sv}i" on interface "org.freedesktop.Notifications" doesn't exist

少なくとも一人が同時に同じ問題を経験しました。https://www.linuxquestions.org/questions/slackware-14/pygobject-desktop-notifications-stopped-working-4175710943/

バグのないXubuntu 20.04と比較すると、通知のIDを返す必要があることがわかりました。その後、replacedid通知を更新するためのパラメータとして使用できます。これはxfce4-pulseaudio-plugin最初の通知を更新できませんが、代わりに新しい通知が開かれる理由を説明します。

私はテスト(本虫)と最新のアップデートだけでなく、xfce4=4.16xfce4-pulseaudio-plugin=0.4.3-1。また、実際には以下で提供されます。xfce4-notifyd=0.6.3-1dbus=1.14.0-1xorg.freedesktop.Notifications/usr/share/dbus-1/services/org.xfce.xfce4-notifyd.Notifications.service

[D-BUS Service]
Name=org.freedesktop.Notifications
Exec=/usr/lib/x86_64-linux-gnu/xfce4/notifyd/xfce4-notifyd
SystemdService=xfce4-notifyd.service

私の考えでは、これがxfce4-pulseaudio-plugin私の設定のバグである可能性が高くなりますdbusxfce4-notifyd真実を調べるにはどうすればよいですか?

ベストアンサー1

解決策を見つけるだけでは十分ではないと思いますが、D-Busログを見るだけで正しい方法を見つけることができました。

そのため、通知をオンにしながら、次のコマンドを実行しましたd-feet

dbus-monitor >log

ログにその取引所を見つけることができます。

method call time=1656781561.510107 sender=:1.75 -> destination=:1.48 serial=325 path=/org/freedesktop/Notifications; interface=org.freedesktop.Notifications; member=Notify
   string "Test"
   uint32 0
   string "computer"
   string "Title"
   string "Body"
   array [
   ]
   array [
   ]
   int32 1
error time=1656781561.510300 sender=:1.61 -> destination=:1.75 error_name=org.freedesktop.DBus.Error.UnknownMethod reply_serial=325
   string "Method "Notify" with signature "susssasa{sv}i" on interface "org.freedesktop.Notifications" doesn't exist
"

私と同じ情報が入っています。また、通信サービスのIDも含まれます。。以下のスクリーンショットに示すように、メソッド呼び出しが:1.75d-treeそれ自体)から:1.48D-Busサービスに送信されることがわかります。xfce4-notifydd-tree

d-treeのxfce4-notifiedが提供するD-Busサービス

しかし、、エラーはで発生します:1.61。これを見ると、他のサービスがメソッド呼び出しで何かをしたことを意味していることがd-treeわかりました。eavesdrop=true

Dツリーのもう一つの予期しないサービス

あちこち回りました。D-bus session.confの盗聴サポートの中止に関する記事。私のシステムを検索した後、/usr/share/dbus-1/session.conf次のパッチを適用してセッションを再開しました。今、すべてが大丈夫です!

-    <allow send_destination="*" eavesdrop="true"/>
+    <allow send_destination="*" eavesdrop="false"/>
     <!-- Allow everything to be received -->
-    <allow eavesdrop="true"/>
+    <allow eavesdrop="false"/>

私が理解したところ、元のサービスはうまく機能しましたが、他のサービスがそれを処理しようとしましたが、正しいNotify方法がないか、署名が正しくないため失敗しました。このバグがどこで発生するのかわかりません。正しい修正はこれを識別することを意味します。しかし、回避策は元の問題を解決するようです。


編集する:を実行して犯人を見つけましたgrep -r freedesktop.Notifications ~/.local。更新していないことがわかりました発見範囲、管理されていませんapt。実行しpip install --upgrade discover-overlayて変更をに戻した後、/usr/share/dbus-1/session.confすべてが正常に戻りました!

おすすめ記事