Como trazer de volta o som do drum roll no Ubuntu 17.10 quando o sistema está pronto para o usuário logar

10

No Ubuntu 16.04, quando eu liguei meu computador, o som de bateria seria reproduzido antes de eu ser apresentado à interface de Login. Depois que eu atualizei para o Ubuntu 17.10, o som da bateria não está mais sendo reproduzido. Fiz algumas pesquisas na web e tentei o seguinte, o que permitiu que o som do rolo de bateria fosse tocado, mas só depois de eu ter logado.

Eu lancei Startup Applications Preferences 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 tocado depois que eu já estava logado.

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 rolo de bateria tocou somente depois que eu entrei.

Por isso, estou perguntando se alguém encontrou uma maneira de permitir que o som de bateria seja reproduzido antes que o usuário tenha feito login, quando o usuário é apresentado com a caixa de diálogo de login.

Eu também tentei --id="system-bootup", que deveria ter trazido o som de bateria mais cedo. Mas mesmo com essa configuração, o som de bateria não foi tocado até depois que eu entrei.

    
por Richard Fuhr 06.11.2017 / 23:32

1 resposta

6

Aqui está uma maneira de usar uma unidade de usuário systemd em execução no diretório inicial do usuário do gdm.

  • Salve o arquivo a seguir 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 certificar-se de que pulseaudio foi iniciado no contexto do usuário gdm e executar o paplay comando (eu não tentei canberra-gtk-play , mas eu acho que funciona também).

After=systemd-user-sessions.service fará o serviço iniciar somente depois que o sistema estiver pronto para os logins do usuário. (consulte link )

  • 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 do gdm é iniciada.

  • Reinicialize para testar.

Para verificar se há erros é um pouco complicado, porque o systemctl tem a restrição de conectar-se à sessão do sistema ou à sessão chamada do usuário . Para fazer o gdm, o usuário chamador é fácil com o sudo, mas algum ambiente precisa ser configurado 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 com 18.04, mas não vejo razão para não funcionar tão bem com 17.10.

    
por Sebastian Stark 26.06.2018 / 23:50