次の通知を生成するスクリプトを作成しました。
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
gdbus
CLIでは、/を介して通知ポップアップを表示および閉じることができます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-send
PS私はGnome 3を使用していますpynotify
。また、スタックされません。 Gnomeは一度に1つの通知のみを表示します。したがって、複数のポップアップをテストすることはできませんが、機能します。libnotify
time