diff --git a/src/daemon/meson.build b/src/daemon/meson.build index 2d0154fff..c33e148b5 100644 --- a/src/daemon/meson.build +++ b/src/daemon/meson.build @@ -152,6 +152,8 @@ endif if systemd_dep.found() sd_user_service_conf = configuration_data() sd_user_service_conf.set('PA_BINARY', cdata.get_unquoted('PA_BINARY')) + sd_user_service_conf.set('PACTL_BINARY', join_paths(bindir, 'pactl')) + sd_user_service_conf.set('PA_X11_BINARY', join_paths(bindir, 'start-pulseaudio-x11')) sd_user_service_file = configure_file( input : 'systemd/user/pulseaudio.service.in', @@ -161,6 +163,14 @@ if systemd_dep.found() install_dir : systemduserunitdir, ) + sd_user_x11_service_file = configure_file( + input : 'systemd/user/pulseaudio-x11.service.in', + output : 'pulseaudio-x11.service', + configuration : sd_user_service_conf, + install : true, + install_dir : systemduserunitdir, + ) + install_data('systemd/user/pulseaudio.socket', install_dir: systemduserunitdir, ) diff --git a/src/daemon/pulseaudio.desktop.in b/src/daemon/pulseaudio.desktop.in index 2e85202f7..9af72fe71 100644 --- a/src/daemon/pulseaudio.desktop.in +++ b/src/daemon/pulseaudio.desktop.in @@ -6,4 +6,5 @@ Exec=start-pulseaudio-x11 Terminal=false Type=Application X-GNOME-Autostart-Phase=Initialization +X-GNOME-HiddenUnderSystemd=true X-KDE-autostart-phase=1 diff --git a/src/daemon/systemd/user/pulseaudio-x11.service.in b/src/daemon/systemd/user/pulseaudio-x11.service.in new file mode 100644 index 000000000..d6f3bd426 --- /dev/null +++ b/src/daemon/systemd/user/pulseaudio-x11.service.in @@ -0,0 +1,18 @@ +[Unit] +Description=Sound Service (X11 Plugins) +Requires=pulseaudio.service +After=pulseaudio.service +ConditionUser=!root +PartOf=gnome-session-x11.target + +[Service] +ExecStart=@PA_X11_BINARY@ +ExecStop=@PA_X11_BINARY@ stop +LockPersonality=yes +MemoryDenyWriteExecute=yes +NoNewPrivileges=yes +RestrictNamespaces=yes +SystemCallArchitectures=native +SystemCallFilter=@system-service +Type=simple +UMask=0077