| 
									
										
										
										
											2024-07-28 21:08:02 +02:00
										 |  |  | { | 
					
						
							|  |  |  |   config, | 
					
						
							|  |  |  |   lib, | 
					
						
							|  |  |  |   pkgs, | 
					
						
							|  |  |  |   ... | 
					
						
							|  |  |  | }: | 
					
						
							| 
									
										
										
										
											2022-11-30 14:54:05 +01:00
										 |  |  | let | 
					
						
							|  |  |  |   cfg = config.my.hardware.sound; | 
					
						
							|  |  |  | in | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |   options.my.hardware.sound = { | 
					
						
							|  |  |  |     enable = lib.mkEnableOption "sound configuration with pipewire"; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   config = lib.mkIf cfg.enable { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # RealtimeKit is recommended | 
					
						
							|  |  |  |     security.rtkit.enable = true; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     services.pipewire = { | 
					
						
							|  |  |  |       enable = true; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       alsa = { | 
					
						
							|  |  |  |         enable = true; | 
					
						
							|  |  |  |         support32Bit = true; | 
					
						
							|  |  |  |       }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       pulse.enable = true; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       jack.enable = true; | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     programs.noisetorch.enable = true; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     environment.systemPackages = with pkgs; [ | 
					
						
							|  |  |  |       noisetorch | 
					
						
							|  |  |  |       pavucontrol | 
					
						
							|  |  |  |       playerctl | 
					
						
							|  |  |  |       pulseaudio # provide pactl to enable keyboard shortcuts | 
					
						
							|  |  |  |     ]; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | } |