BLUEMAN NÃO ABRE O GERENCIADOR DE DISPOSITIVOS
Esse ano foi o ano das zikas. Um dia farei um post dedicado a muitas coisas bizarras que aconteceram comigo em 2023. Mas hoje vou falar do Blueman. Mais especificamente o blueman-applet. Depois de algumas atualizações simplesmente não funciona mais. Também deu zika no Steam para Linux, mas isso é papo para outro post.
Pela quantidade de bug reports e interações em páginas de suporte e fóruns, parece que o problema não é só recente como também não tem solução por parte dos desenvolvedores.
Introdução
Com o tempo, aprendi que devo rodar os programas no emulador de terminal de vez em quando para fazer diagnóstico. Abaixo deixo as mensagens comuns do bug atual do blueman-applet(ao chamar o blueman-manager):
"Traceback (most recent call last):
File "/usr/lib/python3.9/site-packages/blueman/main/DBusProxies.py", line 52, in call_finish
proxy.call_finish(resp)
gi.repository.GLib.Error: g-dbus-error-quark: GDBus.Error:org.freedesktop.DBus.Error.NoReply: Message recipient disconnected from message bus without replying (4)"
"Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/blueman/main/DBusProxies.py", line 52, in call_finish
proxy.call_finish(resp)
gi.repository.GLib.GError: g-dbus-error-quark: GDBus.Error:org.freedesktop.DBus.Error.InvalidArgs: Unknown action ‘Activate’ (16)"
De maneira geral, os vários erros ocorrem no processamento da linha 52 do arquivo /usr/lib/python3/dist-packages/blueman/main/DBusProxies.py.
Vamos às aventuras.
Tentativa e erro
Tem várias receitas de bolo malucas na internet para tentar mitigar o bug. É complicado.
Fiz upgrade dos pacotes. Tentei remover o dbus-broker. Tem que ficar atento porque quando você reinstala, atualiza ou faz downgrade do dbus aparece uma aviso de reboot. Então, pode ser que você tenha resolvido, mas a solução não foi testada corretamente depois de um reboot. Tentei fazer upgrade e downgrade do blueman...mesmo voltando para a versão estável...nada feito.
Work Aroud
Como vocês devem saber eu odeio fazer gambiarras no sistema. Então, descobri algumas formas de rodar o blueman nessa situação buguenta. A mais fácil e pouco conveniente é elevar os privilégios do usuário rodando o blueman-applet com sudo. Sim, dando sudo blueman-applet. Sabe-se lá quantas implicações de segurança envolve isso e fui atrás de outra solução.
Como falei, lá em cima...tentativa e erro...muita coisa eu descobri sozinho porque não tem tanta coisa na internet. Parece o povo andando em círculos e os bug reports são bem recentes. Outra maneira de contornar isso é rodar o blueman-applet e o blueman-manager em seguida.
Dá para fazer um script simples com um &. O problema é que você não vai poder fechar o gerenciador de dispositivos. Se fizer isso e tentar clicar no ícone ou chamar pelo menu clicando com o direito...nada feito. Aí tem que fechar o blueman-applet e repetir o esquema.
Recurso paliativo 1(com privilégios):
$sudo blueman-applet
Recurso paliativo 2(sem precisar elevar privilégios do usuário):
$blueman-applet & blueman-manager
Últimas tentativas e sinal de vida
Aqui fui desmobilizando. Voltei todos os pacotes relacionados ao dbus e ao blueman para o testing(usando o gerenciador de pacotes aptitude).
Tentei desinstalar o dbus-broker. Não vi diferença no comportamento e reinstalei. Depois dessas alterações reiniciei o PC.
Aqui o pulo do gato que funcionou para mim(porém, as mensagens de erro mudam...continuam lá...). Finalmente abre o gerenciador de dispositivos tanto pelo ícone como pelo menu clicando com o direito no ícone do blueman-applet.
Rodei o comando abaixo:
$dbus-update-activation-environment --all
Depois testei:
$blueman-applet
Algumas screenshots(aqui acionando o menu com o botão direito do mouse):
Aplicando de forma persistente
Abra seu .xinitrc(/home/seu-usuário/.xinitrc) com seu editor de textos favorito e acrescente o comando dbus-update-activation-environment --all ao final do arquivo. Alguns programas no Linux quebram se não tiver uma linha final no arquivo de configuração. Na dúvida, crie uma linha extra em branco(um enter resolve) ao final do arquivo sempre que você precisar colocar algo no final de um arquivo de configuração. Salve e feche. Para testar você deve reiniciar o ambiente gráfico. Pode tentar dar logout pelo menu do seu gerenciador de janelas ou como aqui(depois de salvar e fechar tudo) dando um ctrl+alt+backspace. Se você não achar a opção de voltar para o gerenciador de login ou display manager pode tentar reiniciar o PC.
Atualização
Percebi aqui que o comando dbus-update-activation-environment --all sendo rodado por script, .destkop, .xinitrc ou com alt+f2 não funciona sempre. Você teria de rodar através de um emulador de terminal. Não curti muito a ideia de abrir o gerenciador de janelas ou ambiente desktop junto com emulador de terminal rodando outra coisa. Bem mala isso. Segue a dica e que pode servir de template para um script para vocês testarem aí.
Caso você queira colocar num script ou arquivo de configuração, de lançador ou de inicialização:
bash -i -c "dbus-update-activation-environment --all && env NO_AT_BRIDGE=1 blueman-applet & blueman-manager"
Finalizando...
Olha, pessoal...acho que isso aí vai virar novela...parece estar longe de ter uma solução definitiva. Vamos torcer para as atualizações do dbus e do blueman entrarem em harmonia e os desenvolvedores finalmente resolverem o problema. Não sei se desenvolvedores de projetos diferentes como nesse caso interagem entre si. Seria legal uma troca de informações entre eles e fazerem um alinhamento para que o usuário final não tenha que correr atrás de receitas de bolo...aliás...algumas dessas receitas com sério potencial para quebrar o sistema.
Então, é isso aí...espero que o post tenha ajudado. Se a solução no final não resolver podem usar as dicas de work around que coloquei nesse post.
Grande abraço e até a próxima!
Gostou?
Inscreva-se no meu canal:
Paga um cafezinho para mim?
https://livepix.gg/meurefugionerd