Como recuperar o som do drum roll no Ubuntu 17.10 quando o sistema está pronto para o usuário efetuar login

12

No Ubuntu 16.04, quando eu ligava o meu computador, o som do drum roll era reproduzido logo antes de eu receber a interface de login. Após a atualização para o Ubuntu 17.10, o som do drum roll não está mais sendo reproduzido. Fiz uma pesquisa na web e tentei o seguinte, que permitia que o som do rolo de bateria fosse reproduzido, mas somente depois que eu fiz o login.

Lancei as Preferências dos aplicativos de inicialização e adicionei um item que continha o seguinte.

/usr/bin/canberra-gtk-play --id="desktop-login" -f /usr/share/sounds/ubuntu/stereo/system-ready.ogg

Mas isso só permitiu que o som fosse reproduzido após o login.

Eu também tentei

/usr/bin/canberra-gtk-play --id="system-ready" -f /usr/share/sounds/ubuntu/stereo/system-ready.ogg

Mas isso teve o mesmo efeito que a outra tentativa; o som do tambor tocava somente depois que eu fazia login.

Por isso, estou perguntando se alguém encontrou uma maneira de ativar o som do drum roll antes de o usuário efetuar login, quando o usuário é apresentado à caixa de diálogo de login.

Eu também tentei --id = "inicialização do sistema", que deveria ter trazido o som da bateria muito mais cedo. Mas mesmo com essa configuração, o som do rolo de bateria não foi reproduzido até depois que eu entrei.

Richard Fuhr
fonte
Mudar para lightdm do gdm3 pode resolver isso. Embora a tela de registro pareça com 17.04-. apt instalar o lightdm. dpkg-reconfigure lightdm
Artyom
Se instalássemos e usássemos o lightdm e se não funcionasse, e se quiséssemos voltar ao gdm3, como faríamos isso? Eu suspeito (sem prova) que a questão que estamos vendo agora com o rolo de tambor é um (relativamente-minor) bug com 17.10
Richard Fuhr
apt purge lightdm, dpkg-reconfigure gdm3
Artyom
O lightdm depende de vários pacotes que devem ser afastados do xwayland, por exemplo, xserver-xorg *, unity *, etc. O que os caras do gdm estão fazendo?
Funicorn
Por favor, diga-nos se a resposta funcionou para você, Richard, para que eu possa colocar essa recompensa nela! ;-)

Respostas:

11

Aqui está uma maneira de usar uma unidade de usuário systemd executando no diretório inicial do usuário gdm.

  • Salve o seguinte arquivo como /var/lib/gdm3/.config/systemd/user/drumroll.service:

    [Unit]
    Description=Drumroll
    Requires=pulseaudio.socket
    After=systemd-user-sessions.service
    
    [Service]
    Type=simple
    Restart=no
    ExecStart=/usr/bin/paplay /usr/share/sounds/ubuntu/stereo/system-ready.ogg
    
    [Install]
    WantedBy=default.target
    

A unidade systemd acima deve garantir que o pulseaudio tenha sido iniciado no contexto do usuário gdm e executar o paplaycomando (não tentei canberra-gtk-play, mas acho que funciona também).

After=systemd-user-sessions.servicefará o serviço iniciar somente depois que o sistema estiver pronto para logins do usuário. (consulte http://manpages.ubuntu.com/manpages/artful/man8/systemd-user-sessions.service.8.html )

  • Em seguida, execute:

    $ sudo mkdir -p /var/lib/gdm3/.config/systemd/user/default.target.wants
    $ sudo ln -s /var/lib/gdm3/.config/systemd/user/drumroll.service /var/lib/gdm3/.config/systemd/user/default.target.wants/drumroll.service
    $ sudo chown gdm:gdm /var/lib/gdm3/.config/systemd/user/{drumroll.service,default.target.wants}
    

Esses últimos comandos fazem a unidade iniciar automaticamente quando a sessão systemd do usuário gdm é iniciada.

  • Reinicie para testar.

Verificar erros é um pouco complicado, porque o systemctl tem a restrição de conectar-se à sessão do sistema ou à sessão do usuário que está chamando . Para tornar o gdm, o usuário que está chamando é fácil com o sudo, mas é necessário configurar algum ambiente para possibilitar a conexão com a sessão do usuário systemd:

$ sudo -u gdm XDG_RUNTIME_DIR="/run/user/$(id -u gdm)" DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus" systemctl --user status drumroll
● drumroll.service - Drumroll
   Loaded: loaded (/var/lib/gdm3/.config/systemd/user/drumroll.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Tue 2018-06-26 23:35:05 CEST; 36min ago
  Process: 1238 ExecStart=/usr/bin/paplay /usr/share/sounds/ubuntu/stereo/system-ready.ogg (code=exited, status=0/SUCCES
 Main PID: 1238 (code=exited, status=0/SUCCESS)

Eu não tentei isso com 17.10, mas 18.04, mas não vejo uma razão para não funcionar tão bem no 17.10.

Sebastian Stark
fonte
Mais rápido que eu! +1!
precisa
Também tenho certeza que funcionaria com 17.10. Está obsoleto no próximo mês, portanto, o OP estará atualizando para 18.04 em breve. +1.
WinEunuuchs2Unix 26/06