Notify-send忽略超时?
也许我做错了什么,但不应该命令(单独运行)
notify-send -t 1 "test" notify-send -t 1000 "test" notify-send -t 10000 "test"
有不同的超时? 第一个几乎是瞬时的,第二个是1秒,第三个是100秒。 在所有情况下,它似乎需要大约六秒钟。
行为有办法吗? 由于开发人员将此标记为“function”而非错误,我想要一些替代方案……
这是一个已知的错误: https : //bugs.launchpad.net/ubuntu/+source/notify-osd/+bug/390508
(它被维护者视为’设计决策’。)
如上面其中一篇文章所述,有一项设计决定不允许此function。 对你来说幸运的是,其他人也不同意并建立了PPA,你也可以为你的系统改变这个决定。
要解决您的问题:
sudo add-apt-repository ppa:leolik/leolik sudo apt-get update sudo apt-get dist-upgrade sudo apt-get install libnotify-bin pkill notify-osd
可选的
要添加比当前更多的发送通知function:
从Ubuntu 16.04开始:
sudo add-apt-repository ppa:nilarimogard/webupd8 sudo apt update sudo apt install notifyosdconfig
对于版本9.10-14.10:
sudo add-apt-repository ppa:amandeepgrewal/notifyosdconfig sudo apt-get update sudo apt-get install notifyosdconfig
有关上述解决方案的更多信息,请阅读以下文章:
Ubuntu的可配置通知气泡
这是故意实施的违反既定公约的行为,而不会在主机终端环境中取消资格。 即。 notify-send
应该不再存在,因为它会损害已经建立的预期和记录的function,所以相反,现在应该存在一个新的命令notify-graffiti
– What ???? 等一下……所有那些使用“常规”命令名称拼写的脚本都会受到损害!?! 通过改变命令名称拼写方式的约定?!?! – 嗯这个哲学是exception的,矛盾的虚伪,由Unity桌面终端界面支持。
它不能以两种方式完成 – 保留一些惯例,即。 命令的名称,而不是其他命令,如所记录的命令的function。 如果要破坏function,那么命令名称也应如此,以便维护用户“体验”的完整性,惯例性,一致性等,或者是用户“沮丧”,“烦恼”,“刺激”,等等。 ..
参考:
- 有关详细信息,请参阅: 显示通知的程序的名称是什么?
- 检查“
man notify-send
” - 请参阅Ubuntu文档中的Non-expiring_notifications部分通知| Ubuntu App Developer
书签:
Notify-send忽略超时?
有一个小的方便的脚本notify-send.sh作为notify-send的替代品,可以让您关闭或替换以前发送的通知。
编辑:正如@Glutanimate指出的那样,此脚本默认支持到期时间。
我最终无法获得到期时间,所以我采用了一种hacky方式来发送2秒超时的通知,如下所示:
notify-send.sh --print-id test | xargs -I {} bash -c "sleep 2 && notify-send.sh --close={}" &
对于使用Cinnamon桌面环境的用户,可以启用以下设置:
通知>达到超时后删除通知