pipewire (nixos): add support for socket activation

Changed files
+18 -4
nixos
modules
services
desktops
+18 -4
nixos/modules/services/desktops/pipewire.nix
···
with lib;
-
{
+
let
+
cfg = config.services.pipewire;
+
packages = with pkgs; [ pipewire ];
+
+
in {
###### interface
options = {
services.pipewire = {
enable = mkEnableOption "pipewire service";
+
+
socketActivation = mkOption {
+
default = true;
+
type = types.bool;
+
description = ''
+
Automatically run pipewire when connections are made to the pipewire socket.
+
'';
+
};
};
};
###### implementation
-
config = mkIf config.services.pipewire.enable {
-
environment.systemPackages = [ pkgs.pipewire ];
+
config = mkIf cfg.enable {
+
environment.systemPackages = packages;
+
+
systemd.packages = packages;
-
systemd.packages = [ pkgs.pipewire ];
+
systemd.user.sockets.pipewire.wantedBy = lib.mkIf cfg.socketActivation [ "sockets.target" ];
};
meta.maintainers = with lib.maintainers; [ jtojnar ];