diff options
Diffstat (limited to 'nixos/modules')
-rw-r--r-- | nixos/modules/config/pulseaudio.nix | 28 | ||||
-rw-r--r-- | nixos/modules/services/backup/crashplan.nix | 2 | ||||
-rw-r--r-- | nixos/modules/services/system/dbus.nix | 24 |
3 files changed, 51 insertions, 3 deletions
diff --git a/nixos/modules/config/pulseaudio.nix b/nixos/modules/config/pulseaudio.nix index 179e826ba059..8b4ad796d0d5 100644 --- a/nixos/modules/config/pulseaudio.nix +++ b/nixos/modules/config/pulseaudio.nix @@ -150,6 +150,29 @@ in { target = "pulse/default.pa"; source = cfg.configFile; }; + + systemd.user = { + services.pulseaudio = { + description = "PulseAudio Server"; + # NixOS doesn't support "Also" so we bring it in manually + wantedBy = [ "default.target" ]; + serviceConfig = { + Type = "notify"; + ExecStart = "${cfg.package}/bin/pulseaudio --daemonize=no"; + Restart = "on-failure"; + }; + }; + + sockets.pulseaudio = { + description = "PulseAudio Socket"; + wantedBy = [ "sockets.target" ]; + socketConfig = { + Priority = 6; + Backlog = 5; + ListenStream = "%t/pulse/native"; + }; + }; + }; }) (mkIf systemWide { @@ -171,8 +194,9 @@ in { before = [ "sound.target" ]; environment.PULSE_RUNTIME_PATH = stateDir; serviceConfig = { - ExecStart = "${cfg.package}/bin/pulseaudio -D --log-level=${cfg.daemon.logLevel} --system --use-pid-file -n --file=${cfg.configFile}"; - PIDFile = "${stateDir}/pid"; + Type = "notify"; + ExecStart = "${cfg.package}/bin/pulseaudio --daemonize=no --log-level=${cfg.daemon.logLevel} --system -n --file=${cfg.configFile}"; + Restart = "on-failure"; }; }; }) diff --git a/nixos/modules/services/backup/crashplan.nix b/nixos/modules/services/backup/crashplan.nix index 46d4c5192d9e..94aa3b17b663 100644 --- a/nixos/modules/services/backup/crashplan.nix +++ b/nixos/modules/services/backup/crashplan.nix @@ -50,7 +50,7 @@ with lib; ensureDir ${crashplan.vardir}/log 777 cp -avn ${crashplan}/conf.template/* ${crashplan.vardir}/conf for x in app.asar bin EULA.txt install.vars lang lib libjniwrap64.so libjniwrap.so libjtux64.so libjtux.so libmd564.so libmd5.so share skin upgrade; do - if [ -e $x ]; then + if [ -e ${crashplan.vardir}/$x ]; then true; else ln -s ${crashplan}/$x ${crashplan.vardir}/$x; diff --git a/nixos/modules/services/system/dbus.nix b/nixos/modules/services/system/dbus.nix index 77427ce9606e..ba34eb25169c 100644 --- a/nixos/modules/services/system/dbus.nix +++ b/nixos/modules/services/system/dbus.nix @@ -139,6 +139,30 @@ in systemd.services.dbus.restartTriggers = [ configDir ]; + systemd.user = { + services.dbus = { + description = "D-Bus User Message Bus"; + requires = [ "dbus.socket" ]; + # NixOS doesn't support "Also" so we pull it in manually + # As the .service is supposed to come up at the same time as + # the .socket, we use basic.target instead of default.target + wantedBy = [ "basic.target" ]; + serviceConfig = { + ExecStart = "${pkgs.dbus_daemon}/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation"; + ExecReload = "${pkgs.dbus_daemon}/bin/dbus-send --print-reply --session --type=method_call --dest=org.freedesktop.DBus / org.freedesktop.DBus.ReloadConfig"; + }; + }; + + sockets.dbus = { + description = "D-Bus User Message Bus Socket"; + socketConfig = { + ListenStream = "%t/bus"; + ExecStartPost = "-${config.systemd.package}/bin/systemctl --user set-environment DBUS_SESSION_BUS_ADDRESS=unix:path=%t/bus"; + }; + wantedBy = [ "sockets.target" ]; + }; + }; + environment.pathsToLink = [ "/etc/dbus-1" "/share/dbus-1" ]; }; |