我安装了i3
,建议使用dunst
,但我目前没有使用 i3,并且 dunst 通知并不真正适合 Unity。我宁愿不完全卸载 dunst,因为我可能想在将来的某个时候开始使用它;有没有办法在不卸载 dunst 的情况下切换回 notify-osd?
我安装了i3
,建议使用dunst
,但我目前没有使用 i3,并且 dunst 通知并不真正适合 Unity。我宁愿不完全卸载 dunst,因为我可能想在将来的某个时候开始使用它;有没有办法在不卸载 dunst 的情况下切换回 notify-osd?
通知守护进程在发送通知时由 dbus-daemon 启动。您可以通过在 D-Feet 中的会话总线上搜索
org.freedesktop.Notifications
总线名称来查看当前活动的通知守护程序(假设有一个);您还可以检查journalctl
输出以查看 dbus-daemon 认为它在做什么以及为什么(包括例如哪个应用程序发送了通知)。dbus-daemon 查看服务文件
/usr/share/dbus-1/services/
以查找要为每个总线名称运行的服务。该文件org.freedesktop.Notifications.service
是 notify-osd 的文件(在默认的 Ubuntu 18.04 上),并且 dunst 在org.knopwob.dunst.service
. 这两个文件都有一个Name
oforg.freedesktop.Notifications
,这意味着它们都能够处理通知。不幸的是,当给定的总线名称有多个可能的服务时,dbus-daemon 在确定启动哪个服务时并不是很聪明。截至 2018 年,它只选择找到的第一个;近十年来,Red Hat Bugzilla 中一直有关于此的功能请求。唯一真正的解决方案似乎是:
在这种情况下,移动冲突的服务文件要容易得多:只需运行
sudo mv /usr/share/dbus-1/services/org.knopwob.dunst.service{,.disabled}
. 如果您想再次开始使用 dunst,很容易将文件重命名为原来的名称。