Cómo recuperar el sonido del redoble de batería en Ubuntu 17.10 cuando el sistema está listo para que el usuario inicie sesión

12

En Ubuntu 16.04, cuando encendí mi computadora, el sonido del tambor se reproduciría justo antes de que me presentaran la interfaz de inicio de sesión. Después de actualizar a Ubuntu 17.10, ya no se reproduce el sonido de batería. Investigué un poco en la web e intenté lo siguiente, lo que permitió que se reprodujera el sonido del tambor, pero solo después de haber iniciado sesión.

Lancé Preferencias de aplicaciones de inicio y agregué un elemento que contenía lo siguiente.

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

Pero esto solo permitió que el sonido se reprodujera después de haber iniciado sesión.

También intenté

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

Pero eso tuvo el mismo efecto que el otro intento; el sonido del redoble de batería se reprodujo solo después de haber iniciado sesión.

Por lo tanto, pregunto si alguien ha encontrado una manera de permitir que se reproduzca el sonido del redoble de batería antes de que el usuario haya iniciado sesión, cuando se le presenta el cuadro de diálogo de inicio de sesión.

También probé --id = "system-bootup", que debería haber sacado el sonido del redoble mucho antes. Pero incluso con esa configuración, el sonido del redoble de batería no se reprodujo hasta después de iniciar sesión.

Richard Fuhr
fuente
Cambiar a lightdm desde gdm3 puede resolver esto. Aunque la pantalla de búsqueda se verá como 17.04-. apto para instalar lightdm. dpkg-reconfigure lightdm
Artyom
Si tuviéramos que instalar y usar lightdm y no funcionara, y si quisiéramos volver a gdm3, ¿cómo lo haríamos? Sospecho (sin pruebas) que el problema que estamos viendo ahora con el redoble de tambores es un error (relativamente menor) con 17.10
Richard Fuhr
apt purge lightdm, dpkg-reconfigure gdm3
Artyom
lightdm depende de un montón de paquetes que se deben alejar de xwayland, por ejemplo, xserver-xorg *, unity *, etc. ¿Qué están haciendo los chicos de gdm?
Funicorn
¡Díganos si la respuesta funcionó para usted, Richard, para que pueda darle esta recompensa! ;-)

Respuestas:

11

Aquí hay una manera de usar una unidad de usuario systemd que se ejecuta desde el directorio de inicio del usuario gdm.

  • Guarde el siguiente archivo 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
    

La unidad systemd anterior debe asegurarse de que pulseaudio se haya iniciado en el contexto de usuario gdm y ejecutar el paplaycomando (no lo he intentado canberra-gtk-play, pero creo que también funciona).

After=systemd-user-sessions.servicehará que el servicio se inicie solo después de que el sistema esté listo para los inicios de sesión de los usuarios. (ver http://manpages.ubuntu.com/manpages/artful/man8/systemd-user-sessions.service.8.html )

  • Luego ejecuta:

    $ 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}
    

Esos últimos comandos hacen que la unidad se inicie automáticamente cuando se inicia la sesión systemd del usuario gdm.

  • Reiniciar para probar.

Verificar errores es un poco complicado, porque systemctl tiene la restricción de conectarse a la sesión del sistema o a la sesión del usuario llamante . Para hacer gdm, el usuario que realiza la llamada es fácil con sudo, pero es necesario configurar algún entorno para que sea posible conectarse a su sesión de usuario 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)

No he intentado esto con 17.10, pero 18.04, pero no veo una razón por la que no funcionaría tan bien en 17.10.

Sebastian Stark
fuente
Más rápido que yo! +1!
Fabby
También estoy seguro de que funcionaría con 17.10. Está obsoleto el próximo mes, por lo que OP se actualizará a 18.04 pronto de todos modos. +1.
WinEunuuchs2Unix