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桌面环境的用户,可以启用以下设置:

通知>达到超时后删除通知