Finalmente resolvi o problema sozinho.
Vou deixar instruções que fiz.
O problema consiste em duas partes:
- O Dbus não pode ser acessado a partir do gerenciador de janelas
- O daemon de notificação não pode receber mensagens do dbus
Primeira solução do problema:
O problema real era que meu gerenciador de janelas era executado a partir do lxdm, que por alguma razão não mescla arquivos de configuração de /etc/X11/xinit/xinitrc.d
, exceto a sessão lxde (no LXDE dbus funciona, mas o awesome wm não). Nesta pasta existe um arquivo chamado 30-dbus
com o seguinte conteúdo:
#!/bin/bash
# launches a session dbus instance
if [ -z "$DBUS_SESSION_BUS_ADDRESS" ] && type dbus-launch >/dev/null; then
eval $(dbus-launch --sh-syntax --exit-with-session)
fi
Esta parte do código define a variável $DBUS_SESSION_BUS_ADDRESS
, que define uma porta dbus a ser usada para várias aplicações. echo $DBUS_SESSION_BUS_ADDRESS
pode ser usado como verificação simples de sanidade para ver se existe uma sessão dbus (ele deve retornar o arquivo de sessão dbus).
Os arquivos de configuração dessa pasta podem ser mesclados com o shell script simples no início da sessão (código obtido de .xinitrc
):
#!/bin/bash
if [ -d /etc/X11/xinit/xinitrc.d ]; then
for f in /etc/X11/xinit/xinitrc.d/*; do
[ -x "$f" ] && . "$f"
done
unset f
fi
2ª solução do problema:
Enquanto o dbus está em execução e está disponível para outros programas, ele ainda precisa de mais acesso para que as notificações funcionem corretamente, então eu precisei executar o polkit agent, porque o Awesome WM não possui um. Eu escolhi lxpolkit
, porque eu já tinha quase todo o ambiente lxde. No meu caso, acabou de adicionar ao meu arquivo ~/.config/awesome/rc.lua
:
awful.util.spawn_with_shell("dex /etc/xdg/autostart/lxpolkit.desktop")
, por algum motivo sem essa linha, ele se recusou a iniciar por padrão com lxdm.
Eu acho que o agente gnome polkit deve funcionar bem também.