| 
									
										
										
										
											2018-01-30 18:58:56 +01:00
										 |  |  | # pipewire service. | 
					
						
							|  |  |  | { config, lib, pkgs, ... }: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | with lib; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-06 12:00:10 +08:00
										 |  |  | let | 
					
						
							|  |  |  |   cfg = config.services.pipewire; | 
					
						
							|  |  |  |   packages = with pkgs; [ pipewire ]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | in { | 
					
						
							| 
									
										
										
										
											2020-04-01 20:16:24 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |   meta = { | 
					
						
							|  |  |  |     maintainers = teams.freedesktop.members; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-30 18:58:56 +01:00
										 |  |  |   ###### interface | 
					
						
							|  |  |  |   options = { | 
					
						
							|  |  |  |     services.pipewire = { | 
					
						
							|  |  |  |       enable = mkEnableOption "pipewire service"; | 
					
						
							| 
									
										
										
										
											2018-07-06 12:00:10 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |       socketActivation = mkOption { | 
					
						
							|  |  |  |         default = true; | 
					
						
							|  |  |  |         type = types.bool; | 
					
						
							|  |  |  |         description = ''
 | 
					
						
							|  |  |  |           Automatically run pipewire when connections are made to the pipewire socket. | 
					
						
							|  |  |  |         '';
 | 
					
						
							|  |  |  |       }; | 
					
						
							| 
									
										
										
										
											2018-01-30 18:58:56 +01:00
										 |  |  |     }; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   ###### implementation | 
					
						
							| 
									
										
										
										
											2018-07-06 12:00:10 +08:00
										 |  |  |   config = mkIf cfg.enable { | 
					
						
							|  |  |  |     environment.systemPackages = packages; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     systemd.packages = packages; | 
					
						
							| 
									
										
										
										
											2018-01-30 18:58:56 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-06 12:00:10 +08:00
										 |  |  |     systemd.user.sockets.pipewire.wantedBy = lib.mkIf cfg.socketActivation [ "sockets.target" ]; | 
					
						
							| 
									
										
										
										
											2018-01-30 18:58:56 +01:00
										 |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |