系统准备好用户登录后如何在Ubuntu 17.10中恢复鼓声


12

在Ubuntu 16.04中,当我打开计算机电源时,会在出现登录界面之前立即播放鼓声。升级到Ubuntu 17.10后,不再播放鼓声。我在网络上进行了一些研究,然后尝试了以下方法,这些方法可以播放鼓声,但前提是我必须先登录。

我启动了启动应用程序首选项,并添加了一个包含以下内容的项目。

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

但这只能使声音在我登录后才能播放。

我也试过

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

但这与其他尝试具有相同的效果。仅在我登录后才播放鼓声。

因此,我要问的是,当向用户显示登录对话框时,是否有人找到了一种在用户登录之前播放鼓声的方法。

我还尝试了--id =“ system-bootup”,它应该可以更早地发出鼓声。但是即使进行了此设置,也要等到我登录后才能播放鼓声。


从gdm3更改为lightdm可以解决此问题。虽然登录屏幕看起来像17.04-。apt安装lightdm。dpkg-reconfigure lightdm
Artyom

如果我们要安装并使用lightdm,但如果它不起作用,并且如果我们想回到gdm3,我们将如何做?我怀疑(没有证据)我们现在看到的鼓卷问题是(相对次要)17.10的错误
Richard Fuhr

apt purge lightdm,dpkg-reconfigure gdm3
Artyom

lightdm取决于一堆应从xwayland推开的软件包,例如xserver-xorg *,unity *等。gdm家伙在做什么?
funicorn

请告诉我们答案是否对您有用,理查德,这样我就可以将这个赏金放在上面!;-)

Answers:


11

这是一种使用从gdm用户的主目录运行的systemd用户单元的方法。

  • 将以下文件另存为/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
    

上面的systemd单元应确保Pulseaudio已在gdm用户上下文中启动并执行paplay命令(我没有尝试过canberra-gtk-play,但我认为它也能正常工作)。

After=systemd-user-sessions.service仅在系统准备好用户登录后才能使服务启动。(请参阅http://manpages.ubuntu.com/manpages/artful/man8/systemd-user-sessions.service.8.html

  • 然后执行:

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

这些最后的命令使gdm用户的systemd会话启动时,设备自动启动。

  • 重新启动进行测试。

检查错误有点棘手,因为systemctl具有连接到系统会话或主叫用户会话的限制。要使gdm成为主叫用户,使用sudo很容易,但是需要设置一些环境以使其能够连接到其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)

我没有在17.10上尝试过,但在18.04上尝试过,但是我看不出它在17.10上无法正常工作的原因。


比我快!+1!
Fabby

我也确信它将与17.10一起使用。下个月已经过时,因此OP很快就会升级到18.04。+1。
WinEunuuchs2Unix
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.