エラーの明らかな部分は、ボリュームを変更すると複数の通知を受け取ることです。
症状は似ているようですAskUbuntuに関する質問しかし、これは他の理由かもしれませんが、私は実際にUbuntuを使用していないので、新しい質問をします。
数回の悩みの末に奇妙な点を発見しました。 D-BusサービスNotify
のメソッドを呼び出すとxorg.freedesktop.Notifications
通知を表示できますが、エラーが返されます。
私はこれをd-feet
D-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.16
とxfce4-pulseaudio-plugin=0.4.3-1
。また、実際には以下で提供されます。xfce4-notifyd=0.6.3-1
dbus=1.14.0-1
xorg.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
私の設定のバグである可能性が高くなりますdbus
。xfce4-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.75
(d-tree
それ自体)から:1.48
D-Busサービスに送信されることがわかります。xfce4-notifyd
d-tree
しかし、、エラーはで発生します:1.61
。これを見ると、他のサービスがメソッド呼び出しで何かをしたことを意味していることがd-tree
わかりました。eavesdrop=true
あちこち回りました。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
すべてが正常に戻りました!