以前のlibnotify通知を消去または編集しますか?

以前のlibnotify通知を消去または編集しますか?

次の通知を生成するスクリプトを作成しました。

notify-send -i audio-card "Transferring audio playback to speakers." \
    "Audio playback has been transferred to the analog output speaker system."

コマンドラインまたはPythonでこれらの通知を消去または置き換える方法はありますか?デフォルトでは、2つのPulseAudioリスナーを切り替えるスクリプトがあり、ユーザーがすばやく切り替えた場合は、以前の通知を消去して更新されたテキストに置き換えたいと思います。

ベストアンサー1

gdbusCLIでは、/を介して通知ポップアップを表示および閉じることができますqdbus
実行方法は次のとおりですgdbus

gdbus call --session --dest org.freedesktop.Notifications --object-path /org/freedesktop/Notifications --method org.freedesktop.Notifications.Notify my_app_name 42 audio-card "Message" "Body" [] {} 20

すると、次のように出力されます。

(uint32 72,)

72通知ですID。これでわかったので、次のようにIDポップアップを閉じることができます。

gdbus call --session --dest org.freedesktop.Notifications --object-path /org/freedesktop/Notifications --method org.freedesktop.Notifications.CloseNotification 72 

今後ID必要に応じて、呼び出し時にファイルに書き込むだけですNotify

gdbus call --session --dest org.freedesktop.Notifications --object-path /org/freedesktop/Notifications --method org.freedesktop.Notifications.Notify my_app_name 42 audio-card "Message" "Body" [] {} 20  | sed 's/[^ ]* //; s/,.//' > /tmp/last_id

ポップアップを閉じたいときはここから入手してください。

gdbus call --session --dest org.freedesktop.Notifications --object-path /org/freedesktop/Notifications --method org.freedesktop.Notifications.CloseNotification $(cat /tmp/last_id)

notify-sendPS私はGnome 3を使用していますpynotify。また、スタックされません。 Gnomeは一度に1つの通知のみを表示します。したがって、複数のポップアップをテストすることはできませんが、機能します。libnotifytime

おすすめ記事