Jak przywrócić dźwięk bębna w Ubuntu 17.10, gdy system jest gotowy do zalogowania się

12

W Ubuntu 16.04, kiedy włączałem komputer, dźwięk bębna był odtwarzany tuż przed tym, jak zostałem przedstawiony za pomocą interfejsu logowania. Po aktualizacji do Ubuntu 17.10 dźwięk bębna nie jest już odtwarzany. Przeprowadziłem badania w Internecie i wypróbowałem następujące, które umożliwiły odtwarzanie dźwięku bębna, ale dopiero po zalogowaniu.

Uruchomiłem Preferencje aplikacji startowych i dodałem element zawierający następujące elementy.

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

Ale to pozwoliło na odtworzenie dźwięku dopiero po zalogowaniu.

Też próbowałem

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

Ale to miało taki sam efekt jak druga próba; dźwięk bębna odtwarzany był dopiero po zalogowaniu.

Pytam więc, czy ktoś znalazł sposób, aby włączyć odtwarzanie dźwięku bębna, zanim użytkownik się zaloguje, gdy pojawi się okno dialogowe logowania.

Próbowałem także --id = "boot-system", który powinien był przywołać dźwięk bębna znacznie wcześniej. Ale nawet przy tym ustawieniu dźwięk bębna nie był odtwarzany, dopóki się nie zalogowałem.

Richard Fuhr
źródło
Zmiana na lightdm z gdm3 może rozwiązać ten problem. Chociaż ekran logowania będzie wyglądał jak 17.04-. apt install lightdm. dpkg-rekonfiguruj lightdm
Artyom
Gdybyśmy mieli zainstalować i używać lightdm, a jeśli to nie zadziałałoby, a jeśli chcielibyśmy wrócić do gdm3, jak byśmy to zrobili? Podejrzewam (bez dowodu), że problem, który widzimy teraz przy rzucie bębna, to (stosunkowo niewielki) błąd z 17.10
Richard Fuhr
apt purge lightdm, dpkg-rekonfiguruj gdm3
Artyom
lightdm zależy od wielu pakietów, które należy odepchnąć od xwayland, np. xserver-xorg *, jedność * itp. Co robią faceci z GDM?
funicorn
Powiedz nam, czy odpowiedź zadziałała dla ciebie, Richard, abym mógł po prostu nałożyć na to nagrodę! ;-)

Odpowiedzi:

11

Oto sposób korzystania z systemowej jednostki użytkownika uruchomionej z katalogu domowego użytkownika gdm.

  • Zapisz następujący plik jako /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
    

Powyższa jednostka systemowa powinna upewnić się, że pulseaudio została uruchomiona w kontekście użytkownika gdm i wykonać paplaypolecenie (nie próbowałem canberra-gtk-play, ale myślę, że to również działa).

After=systemd-user-sessions.servicespowoduje uruchomienie usługi dopiero po przygotowaniu systemu do logowania użytkownika. (patrz http://manpages.ubuntu.com/manpages/artful/man8/systemd-user-sessions.service.8.html )

  • Następnie wykonaj:

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

Te ostatnie polecenia powodują automatyczne uruchomienie urządzenia po uruchomieniu sesji systemowej użytkownika gdm.

  • Uruchom ponownie, aby przetestować.

Sprawdzanie błędów jest trochę trudne, ponieważ systemctl ma ograniczenie łączenia się z sesją systemową lub sesją użytkownika wywołującego . Aby ustawić gdm, użytkownik wywołujący jest łatwy w sudo, ale trzeba skonfigurować pewne środowisko, aby umożliwić połączenie z jego sesją użytkownika 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)

Nie próbowałem tego z 17.10, ale 18.04, ale nie widzę powodu, dla którego nie działałoby tak dobrze 17.10.

Sebastian Stark
źródło
Szybciej niż ja! +1!
Fabby
Jestem też pewien, że to zadziała z 17.10. W przyszłym miesiącu jest przestarzały, więc i tak wkrótce zostanie zaktualizowany do 18.04. +1.
WinEunuuchs2Unix