Bagaimana cara mengembalikan suara drum roll di Ubuntu 17.10 ketika sistem siap bagi pengguna untuk masuk

12

Di Ubuntu 16.04, ketika saya menyalakan komputer saya, suara drum roll akan diputar tepat sebelum saya disajikan dengan antarmuka Login. Setelah saya upgrade ke Ubuntu 17.10, suara drum roll tidak lagi dimainkan. Saya melakukan riset di web dan mencoba yang berikut, yang memungkinkan suara drum roll dimainkan, tetapi hanya setelah saya masuk.

Saya meluncurkan Preferensi Aplikasi Startup dan menambahkan item yang berisi yang berikut ini.

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

Tetapi ini hanya memungkinkan suara untuk diputar setelah saya sudah login.

Saya juga mencoba

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

Tetapi itu memiliki efek yang sama dengan upaya lainnya; suara drum roll dimainkan hanya setelah saya login.

Jadi saya bertanya apakah ada yang menemukan cara untuk mengaktifkan suara drum roll untuk diputar sebelum pengguna masuk, ketika pengguna disajikan dengan dialog login.

Saya juga mencoba --id = "system-bootup" yang seharusnya memunculkan suara drum roll lebih awal. Tetapi bahkan dengan pengaturan itu, suara drum tidak dimainkan sampai setelah saya login.

Richard Fuhr
sumber
Mengubah ke lightdm dari gdm3 dapat mengatasi ini. Meskipun layar loging akan terlihat seperti 17.04-. untuk menginstal lightdm. dpkg-mengkonfigurasi ulang lightdm
Artyom
Jika kita menginstal dan menggunakan lightdm dan jika itu tidak berhasil, dan jika kita ingin kembali ke gdm3 bagaimana kita melakukannya? Saya curiga (tanpa bukti) bahwa masalah yang kita lihat sekarang dengan drum roll adalah (relatif-minor) bug dengan 17.10
Richard Fuhr
apt purge lightdm, dpkg-reconfigure gdm3
Artyom
lightdm tergantung pada banyak paket yang harus didorong menjauh dari xwayland, mis. xserver-xorg *, unity *, dll. Apa yang dilakukan para gdm?
funicorn
Tolong beri tahu kami jika jawabannya berhasil untuk Anda, Richard, sehingga saya dapat langsung memberikan hadiah ini! ;-)

Jawaban:

11

Berikut adalah cara menggunakan unit pengguna systemd yang berjalan dari direktori home pengguna gdm.

  • Simpan file berikut sebagai /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
    

Unit systemd di atas harus memastikan bahwa pulseaudio telah dimulai dalam konteks pengguna gdm dan menjalankan paplayperintah (saya belum mencoba canberra-gtk-play, tapi saya akan berpikir itu berfungsi juga).

After=systemd-user-sessions.serviceakan membuat layanan dimulai hanya setelah sistem siap untuk login pengguna. (lihat http://manpages.ubuntu.com/manpages/artful/man8/systemd-user-sessions.service.8.html )

  • Kemudian jalankan:

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

Perintah terakhir itu membuat unit memulai secara otomatis ketika sesi systemd dari pengguna gdm dimulai.

  • Mulai ulang untuk menguji.

Untuk memeriksa kesalahan agak rumit, karena systemctl memiliki batasan untuk terhubung ke sesi sistem atau sesi pengguna panggilan . Untuk membuat gdm pengguna panggilan mudah dengan sudo, tetapi beberapa lingkungan perlu diatur untuk memungkinkan untuk terhubung ke sesi pengguna 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)

Saya belum mencoba ini dengan 17.10, tetapi 18.04, tapi saya tidak melihat alasan itu tidak akan berhasil juga pada 17.10.

Sebastian Stark
sumber
Lebih cepat dari saya! +1!
Fabby
Saya juga yakin itu akan berhasil dengan 17.10. Itu sudah usang bulan depan jadi OP akan segera memperbarui ke 18,04. +1.
WinEunuuchs2Unix