问题描述
有没有办法改变 libnotify 通知的持续时间?我已经用谷歌搜索了几个月,但仍然没有运气。
我实际上开始认为你无法改变它。我什至在 API 中找不到开发人员可以控制它的任何地方。
最佳思路
正常情况下你不能这样做。但是,有一个 notify-osd 的修补版本支持它:
从 Ubuntu 16.04 开始:
您需要添加两个 PPA:
sudo add-apt-repository ppa:leolik/leolik
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt update
然后像这样安装:
sudo apt-get upgrade
sudo apt-get install notifyosdconfig
配置对话框应位于终端的“应用程序”->“附件”或“notifyosdconf
”中。如果您未设置 --expire-time
参数,则有一个标准通知持续时间的设置,如上面的屏幕截图所示。
例子:
notify-send --urgency=LOW --expire-time=1 --icon=face-laugh "test" "1 second"
旧版本:(9.10-14.10)
您需要添加两个 PPA:
sudo add-apt-repository ppa:leolik/leolik
sudo add-apt-repository ppa:amandeepgrewal/notifyosdconfig
sudo apt-get update
然后像这样安装:
sudo apt-get upgrade
sudo apt-get install notifyosdconfig
配置对话框应位于终端的“应用程序”->“附件”或“notifyosdconf
”中。如上面的屏幕截图所示,有一个通知持续时间的设置。
例子:
notify-send --urgency=LOW --expire-time=1 --icon=face-laugh "test" "1 second"
次佳思路
粗略但有效,然后一些 – 警告这也会杀死待处理的通知\n这只能缩短显示时间只需更改下面的 sleep 1.5;
中的 1.5
:
参考:\nClose button on notify-osd? 中的详细信息
x-ref:\n Expiry time in notify-send notifications
dbus-monitor "interface='org.freedesktop.Notifications'" \
| grep --line-buffered "member=Notify" \
| sed -u -e 's/.*/sleep 1.5; killall notify-osd/' \
| bash
书签:\n自己 – How do I change how long notifications are displayed? \n Expiry time in notify-send notifications
第三种思路
我认为通知的持续时间取决于消息的长度。
从间接使用它的人(通过使用 Python 中的 pynotify 模块)的角度来看,我发现指定消息的持续时间是不可能的。