Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby和Ubuntu';s通知OSD_Ruby_Libnotify - Fatal编程技术网

Ruby和Ubuntu';s通知OSD

Ruby和Ubuntu';s通知OSD,ruby,libnotify,Ruby,Libnotify,我在Ruby GTK应用程序中使用,在Ubuntu中创建一个气泡弹出窗口非常有效。我在Hardy上,一切都很好。然后我让其他人在Jaunty上试用这个应用程序,而不是像我预期的那样,用新的Notify OSD系统弹出一个气泡,通知变成了一个对话框 我查看了一下,发现问题是因为我将超时设置为0: 某些程序指定expire_超时为0,以生成从不自行关闭的通知,假设它们可以像在通知守护进程中一样手动关闭。由于这通常是针对需要响应或确认的消息执行的,因此Notify OSD将其显示为警报框而不是气泡 有

我在Ruby GTK应用程序中使用,在Ubuntu中创建一个气泡弹出窗口非常有效。我在Hardy上,一切都很好。然后我让其他人在Jaunty上试用这个应用程序,而不是像我预期的那样,用新的Notify OSD系统弹出一个气泡,通知变成了一个对话框

我查看了一下,发现问题是因为我将超时设置为0:

某些程序指定expire_超时为0,以生成从不自行关闭的通知,假设它们可以像在通知守护进程中一样手动关闭。由于这通常是针对需要响应或确认的消息执行的,因此Notify OSD将其显示为警报框而不是气泡

有没有一种方法可以通过某种方式使用libnotify来创建一个具有“永不过期”超时的正常气泡?事实上,如果我能使用旧的通知系统,我会更喜欢它,因为NotifyOSD似乎根本不支持永久气泡


对于我来说,对话框是不可接受的,因为它不会覆盖所有窗口,因此用户不会立即看到弹出窗口(这是使用气泡弹出窗口的全部目的)。

有点像一个侧面回答,但是,如果通知API没有完全映射到您想要做的事情,那么您应该考虑使用一个更通用的库,它允许您在屏幕上绘制自己的气泡。我想到了,虽然我记得它非常有限,但可能还有其他选项…

我记得使用了一些命令行工具来显示通知。您可以使用system或``来调用它。

看起来您只是在尝试将Notify OSD用于它不是为之设计的东西。Notify OSD气泡是信息性的和暂时的,这意味着不应将任何关键信息放入其中,因为它们被设置为可忽略的


根据Ubuntu的设计指南,看起来您正在尝试制作一个适合您需要的软件。

谢谢!不过,我很确定命令行工具只是路由到jaunty中的新通知引擎。我希望事情就这么简单!