我进行了干净的 Arch 安装,仅使用 XDM 和 i3 作为登录/窗口管理器。我还安装了 dunst 包;根据拱门维基无需其他任何操作即可使其工作。
但是,当我尝试发送通知时,我收到:
Unable to send notification: Error calling StartServiceByName for org.freedesktop.Notifications: Timeout was reached
同一 wiki 页面上的故障排除部分建议分配DISPLAY
变量。我的 中有以下内容.xinitrc
:
source /etc/X11/xinit/xinitrc.d/50-systemd-user.sh
它的作用是:
➜ cat /etc/X11/xinit/xinitrc.d/50-systemd-user.sh
#!/bin/sh
systemctl --user import-environment DISPLAY XAUTHORITY
if command -v dbus-update-activation-environment >/dev/null 2>&1; then
dbus-update-activation-environment DISPLAY XAUTHORITY
fi
检查dunst 的常见问题解答,它提到了变量的可用性DBUS_SESSION_BUS_ADDRESS
。并检查gdbus
运行通知守护程序的命令:
➜ gdbus call --session --dest org.freedesktop.DBus --object-path /org/freedesktop/Dbus --method org.freedesktop.DBus.ListNames
(['org.freedesktop.DBus', ':1.40', 'org.freedesktop.systemd1', 'org.a11y.Bus', ':1.20', ':1.21', 'net.tenshu.Terminator20x1a6021154d881c', ':1.0', ':1.1', 'org.PulseAudio1', 'org.pulseaudio.Server', ':1.2', ':1.16', ':1.17', ':1.18', ':1.19'],)
➜ echo $DBUS_SESSION_BUS_ADDRESS
unix:path=/run/user/1000/bus
➜ echo $DISPLAY
:0
我的目录中确实列出了 dunst 服务/usr/share/dbus-1/services
。
-rw-r--r-- 1 root root 64 Oct 23 03:43 ca.desrt.dconf.service
-rw-r--r-- 1 root root 107 Sep 6 00:40 org.a11y.Bus.service
-rw-r--r-- 1 root root 68 Feb 20 10:29 org.dharkael.Flameshot.service
-rw-r--r-- 1 root root 116 Aug 1 2018 org.freedesktop.ColorHelper.service
lrwxrwxrwx 1 root root 51 Feb 20 18:37 org.freedesktop.systemd1.service -> ../system-services/org.freedesktop.systemd1.service
-rw-r--r-- 1 root root 60 Oct 27 22:09 org.gnome.GConf.service
-rw-r--r-- 1 root root 111 Sep 5 05:36 org.gtk.GLib.PACRunner.service
-rw-r--r-- 1 root root 100 Jan 2 17:13 org.knopwob.dunst.service
-rw-r--r-- 1 root root 56 Nov 22 2017 org.xfce.calendar.service
-rw-r--r-- 1 root root 115 Jan 28 05:22 org.xfce.FileManager.service
-rw-r--r-- 1 root root 56 Nov 22 2017 org.xfce.orage.service
-rw-r--r-- 1 root root 124 Jan 28 05:22 org.xfce.Thunar.FileManager1.service
-rw-r--r-- 1 root root 110 Jan 28 05:22 org.xfce.Thunar.service
根据这篇博文;我应该将 dunst 切换为我的通知服务。但我不知道我当前的通知服务是哪一个!
dbus.service
我的列表中确实有 2 个单独列出的正在运行的systemctl status
程序;一个在system.slice
树中,另一个在[email protected]
树中。
关于如何配置我的 dbus 守护进程的任何指示都会有所帮助,
答案1
安装 Plasma 后,我遇到了与 dunst 类似的问题。Plasma 注册了自己的 dbus 服务,该服务存在冲突,导致notify-send
、slack
、... 在发送通知时挂起。
您可以检查这是否适用于您:
grep -ri freedesktop.Notifications /usr/share/dbus-1/services/
如果您注册了多个服务,请选择一个并删除其他服务(最好通过包管理器,而不是rm
)