Electron: [Linux] 通知显示不正确

创建于 2014-07-07  ·  47评论  ·  资料来源: electron/electron

Ubuntu 上的通知显示为警报而不是常规通知。
这是通知在 ubuntu 上的样子吗?
ubuntu____running_

platforlinux

最有用的评论

如果您正在浏览此内容以寻找分散 Slack 通知的快速解决方法:

sudo touch /usr/lib/libunity-electron_notification_fix

参见: https :

所有47条评论

Ubuntu 的版本是什么,您使用的是 Unity 吗?

这是一个带有 ubuntu 14.xx LTS 的 virtualbox VM。

您可以在终端下运行notify-send summary body并查看它是否显示正确的通知吗? Linux 上的通知有时在虚拟机中不能很好地工作。

由于缺乏信息,我将关闭此功能,如果您能提供更多信息,请重新打开。

我也有这个问题。 我正在运行 ubutnu 14.04.2 LTS。

notify-send 显示我希望看到的系统通知(屏幕右上角的咆哮式通知)​​。

我尝试使用的 atom-shell 应用程序中的通知以及当我手动创建它们时(使用new Notification("msg") )显示这些丑陋的警报框:

screenshot

知道如何解决这个问题吗?

@sidoh你能下载 Atom 编辑器,看看在它的开发工具中发送通知是否有效吗? 在某些发行版中,只有“安装”了应用程序,通知才能正确显示。

我从这个 PPA 安装了 atom:

http://www.webupd8.org/2014/05/atom-text-editor-ubuntu-ppa-update.html

在 atom 的 DevTools 中,我得到了同样的东西( new Notification丑陋警报)。

我也见过这个错误,它是超级发行版特定的:crying_cat_face:

您可以尝试删除 atom-shell 附带的libnotify.so吗? 可能是 atom-shell 附带的那个太旧了。 您可能必须创建一个指向系统 libnotify 库的符号链接才能使其运行。

我尝试删除它。 我重新启动 atom 并以相同的结果运行相同的测试。

我还将/usr/lib/x86_64-linux-gnu/libnotify.so.4放入 atom 安装文件夹中,结果相同。

这是你想让我做的吗?

是的,这就是我的意图,谢谢。

我认为发行版可能有某种发送通知的白名单,因为不同的发行版会产生不同的结果,因此将其报告给发行版的错误跟踪器可能会从那里的开发人员那里获得一些解决方案。

这个错误再次有效。 在 0.28.3 上工作正常,但在 0.36.7 上却失败了。

@markbaas安装 Unity(你不必使用它,只需拥有它)

@paulcbetts我正在使用统一

N1 和 Slack 等主要应用程序受到影响。

尝试了从 0.28.3 到 0.36.6 的所有电子版本,但它在 0.33.5 上中断了

也许这在以前版本的 Ubuntu 中有效,至少在 16.04 中无效。 在统一电子想要使用统一特定变量,此代码打破了:
https://github.com/atom/brightray/blob/master/browser/linux/libnotify_notification.cc#L31

// Look for the presence of libunity as our hint that we're under Ubuntu.
  base::FileEnumerator enumerator(base::FilePath("/usr/lib"),
                                  false, base::FileEnumerator::FILES);
  base::FilePath haystack;
  while (!((haystack = enumerator.Next()).empty())) {
    if (base::StartsWith(haystack.value(), "/usr/lib/libunity-",
                         base::CompareCase::SENSITIVE)) {
      unity_result = true;
      break;
    }
  }

相反,它应该查看正在运行的进程 IMO。

@markbaas问题是,从根本上说,我们需要检测的是,“libnotify(或实际上,它通过 DBus 发出信号的服务)是否应用了 Ubuntu 的特殊补丁来禁用操作”。 没有理智的方法来检测这一点。

即使根本没有使用 Unity(即基于 Xfce 的 Xubuntu 等),如果修补了 libnotify,您也会看到对话框。 您也无法根据发行版名称进行检测,因为许多发行版(如 Elementary OS)都是基于 Ubuntu 的,因此继承了 Ubuntu 的脑损伤通知,而不会被_称为_“Ubuntu”。 虽然我完全同意提出更好的启发式方法(因为这个方法在许多情况下也失败了),但要做到这一点并不容易。

看来 Ubuntu 16.04 会破坏 Brightray 中的代码以检测到这一点,我们必须对其进行更新或提出更好的计划

我建议更改以下文件。 https://github.com/atom/brightray/pull/197

我无法测试它,因为我无法编译电子(整个周末都试过)。

我在 ubuntu 16.04 中有同样的问题:(

+1 16.04

在 Ubuntu 16.04 的全新原生安装中也可以看到这一点。

终端上的notify-send summary body按预期提供桌面通知。

Slack 应用程序发出这些:
electron alert from slack - pii removed

最大的烦恼是警报堆积并持续存在,因此需要为收到的每条消息单击取消。

我在 Arch Linux 上遇到了这里描述的问题。 我最终做了以下事情,这对我来说已经足够了,因为它现在以较少干扰的方式显示通知:

sudo pacman -R notify-osd
sudo pkill notify-osd
sudo pacman -S mate-notification-daemon

请注意,我使用mate-notification-daemon ,即使我不使用 Mate 桌面。 它在 i3 窗口管理器上对我来说很好用。

我希望这有帮助。

我在 Ubuntu 16.04 上遇到了同样的问题。 我不能使用上面提到的解决方法,其他程序需要notify-osd。 还有其他解决方法吗? 这会中断 Slack 和 Nylas 的通知。

我怀疑这与针对 notify-osd 记录的此错误有关。

https://bugs.launchpad.net/ubuntu/+source/notify-osd/+bug/1277430

我在使用 Electron 应用程序 (Slack) 的系统上看到了这种行为。

这正常工作:

notify-send body summary

但这会导致不良行为:

notify-send -t 0 body summary

如果您正在浏览此内容以寻找分散 Slack 通知的快速解决方法:

sudo touch /usr/lib/libunity-electron_notification_fix

参见: https :

是的, @jamesadney是预期的工作。

在 16.04 中出现这种情况的原因是 unity 移动到 multi-arch,因此 libunity 文件已移动到/usr/lib/${ARCH}/libunity-*
但是我认为使用这种方法来检查桌面是错误的。 更好的(不是最好的,但仍然是)是https://github.com/electron/brightray/pull/197 中提出的,尽管它应该被修复,因为XDG_CURRENT_DESKTOP必须作为:分隔列表。

所以,请修复电子。

PS:如果您需要其他任何东西,我是 Ubuntu 统一开发人员。 另外,关于这个话题,请看看错误 #5052 :)

@ 3v1n0我们真的很想以一种非疯狂的方式检测修补的通知程序,您对如何做到这一点有更好的想法吗?

@paulcbetts我认为最好的方法是从 libnotify 或支持的大写字母获取服务器信息

为了清楚起见,以下是运行 notify-osd 时得到的结果:

>>> from gi.repository import Notify
>>> Notify.get_server_info()
(True, 'notify-osd', 'Canonical Ltd', '1.0', '1.1')
>>> Notify.get_server_caps()
['body', 'body-markup', 'icon-static', 'image/svg+xml', 'x-canonical-private-synchronous', 'x-canonical-append', 'x-canonical-private-icon-only', 'x-canonical-truncation', 'private-synchronous', 'append', 'private-icon-only', 'truncation']

slacknotification
仍然存在于 ubuntu 16.04 上的 slack 应用程序。 有什么解决办法吗?

@marcosfede slack 应用程序必须在修复之前更新电子版本

自从更新到 Ubuntu 16.04 以来,我在 Slack 中遇到了同样的错误……没有虚拟机

此处与 Franz 应用程序中的 16.04 和 Nylas N1 相同。

@philippgerard我只想重申一下。 仅仅因为它在这里(上游)被修复并不意味着使用电子的单个应用程序已经更新到具有修复的电子版本......

那么我们是否有解决上述问题的方法。 更新到 Ubuntu 16.04 后,我的 Slack 和所有其他通知都会作为警报出现。

@Arihantar解决方法发布在此线程中,您也可以export ELECTRON_USE_UBUNTU_NOTIFIER=1

我尝试了export ELECTRON_USE_UBUNTU_NOTIFIER=1但我仍然在我的 Slack 应用程序上收到同样烦人的电子警报..

@xzitlou如何使用该解决方法可能不适用于此错误线程。 请参阅https://github.com/electron/electron/issues/465#issuecomment -206582829 以了解可能对您有用的另一个选项。

Slack 也有同样的问题。 https://github.com/electron/electron/issues/465#issuecomment -206582829 帮助了我

感谢@jamesadney https://github.com/electron/electron/issues/465#issuecomment -206582829 解决了 Slack 通知错误!

我在使用 Mattermost 桌面的 Ubuntu 16.04 和https://github.com/electron/electron/issues/465#issuecomment -206582829 删除了烦人的通知,但现在我根本没有收到任何通知。

自从我更新到 Ubuntu 16.04 以来,我也受到了这个错误的影响。

我在 ubuntu 16.04 中遇到了同样的错误。

伙计们...阅读此线程中链接的评论数次

@MarshallOfSound电子修复有特定的提交吗? 或者更好的是,修复是否包含在最后一个版本中? https://github.com/electron/electron/releases谢谢

@ildella已在电子版本 0.37.6 中修复

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

tengyifei picture tengyifei  ·  3评论

dangan-ronpa picture dangan-ronpa  ·  3评论

tenry92 picture tenry92  ·  3评论

lealife picture lealife  ·  3评论

chonsser picture chonsser  ·  3评论