我如何禁用 Dunst 并返回到notify-osd?

我如何禁用 Dunst 并返回到notify-osd?

我安装了i3,它推荐dunst,但我目前没有使用 i3,而且 dunst 通知与 Unity 不太匹配。我不想完全卸载 dunst,因为我可能想在将来的某个时候开始使用它;有没有办法在不卸载 dunst 的情况下切换回通知 osd?

答案1

通知守护进程由 dbus-daemon 在发送通知时启动。您可以通过org.freedesktop.Notifications在 D-Feet 中的会话总线上搜索总线名称来查看当前处于活动状态的通知守护进程(假设有一个);您还可以检查journalctl输出以查看 dbus-daemon 认为它在做什么以及为什么这样做(例如包括哪个应用程序发送了通知)。

dbus-daemon 查看 中的服务文件,以/usr/share/dbus-1/services/查找要为每个总线名称运行的服务。 该文件org.freedesktop.Notifications.service是用于 notify-osd 的文件(在默认的 Ubuntu 18.04 上),dunst 在 处安装了一个新服务org.knopwob.dunst.service。 这两个文件都有一个Nameorg.freedesktop.Notifications这意味着它们都能够处理通知。

不幸的是,当给定总线名称有多个可能的服务时,dbus-daemon 在确定启动哪个服务方面不是很聪明。截至 2018 年,它只选择找到的第一个;有一个功能要求在 Red Hat Bugzilla 中已经讨论了近十年。唯一真正的解决方案似乎是:

  • 编写自己的服务,根据某些因素选择是否启动notify-osd或dunst(在这个答案), 或者
  • 移动或删除除一个冲突的服务文件之外的所有文件。

在这种情况下,移动冲突的服务文件要容易得多:只需运行sudo mv /usr/share/dbus-1/services/org.knopwob.dunst.service{,.disabled}。如果您想再次开始使用 dunst,只需将文件重命名为原来的名称即可。

相关内容