web-dev-qa-db-fra.com

Comment ramener le son de tambour dans Ubuntu 17.10 lorsque le système est prêt pour que l'utilisateur se connecte

Dans Ubuntu 16.04, lorsque j'allumais mon ordinateur, le son de roulement de batterie était joué juste avant que l'interface de connexion ne me soit présentée. Après ma mise à niveau vers Ubuntu 17.10, le son de roulement de tambour n'est plus joué. J'ai fait des recherches sur le Web et essayé ce qui suit, qui permettait de jouer le son de roulement de tambour, mais seulement après m'être connecté.

J'ai lancé Préférences des applications de démarrage et ajouté un élément contenant les éléments suivants.

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

Mais cela ne permettait de jouer le son qu'après que je sois déjà connecté.

J'ai aussi essayé

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

Mais cela a eu le même effet que l’autre tentative; le son de roulement de tambour a joué seulement après que je me suis connecté.

Je demande donc si quelqu'un a trouvé un moyen de permettre au son de roulement de jouer de jouer avant que l'utilisateur se soit connecté, lorsque la boîte de dialogue de connexion lui est présentée.

J'ai aussi essayé --id = "system-bootup" qui aurait dû faire apparaître le son de roulement de batterie beaucoup plus tôt. Mais même avec ce réglage, le son de roulement de tambour n'a été joué qu'après ma connexion.

12
Richard Fuhr

Voici un moyen d'utiliser une unité utilisateur systemd exécutée à partir du répertoire de base de l'utilisateur gdm.

  • Enregistrez le fichier suivant sous le nom /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
    

L’unité systemd ci-dessus doit s’assurer que pulseaudio a été démarré dans le contexte utilisateur gdm et exécuter la commande paplay (je n’ai pas essayé canberra-gtk-play, mais je pense que cela fonctionne également). .

After=systemd-user-sessions.service ne fera démarrer le service que lorsque le système sera prêt pour les connexions utilisateur. (voir http://manpages.ubuntu.com/manpages/artful/man8/systemd-user-sessions.service.8.html )

  • Puis exécutez:

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

Ces dernières commandes font que l'unité démarre automatiquement lorsque la session systemd de l'utilisateur gdm est lancée.

  • Redémarrez pour tester.

Vérifier les erreurs est un peu délicat, car systemctl a la restriction de se connecter à la session système ou à la session de l'utilisateur appelant . Pour rendre gdm l'appelant facile à utiliser avec Sudo, un environnement doit être configuré pour permettre la connexion à sa session utilisateur 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)

Je n'ai pas essayé avec 17h10, mais 18h04, mais je ne vois pas pourquoi cela ne fonctionnerait pas aussi bien le 17h10.

11
Sebastian Stark