| 
									
										
										
										
											2014-08-14 02:17:55 +02:00
										 |  |  | { config, lib, pkgs, ... }: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | with lib; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let | 
					
						
							|  |  |  |   cfg = config.services.thermald; | 
					
						
							|  |  |  | in { | 
					
						
							|  |  |  |   ###### interface | 
					
						
							| 
									
										
										
										
											2018-08-18 14:44:49 +10:00
										 |  |  |   options = { | 
					
						
							|  |  |  |     services.thermald = { | 
					
						
							| 
									
										
										
										
											2014-08-14 02:17:55 +02:00
										 |  |  |       enable = mkOption { | 
					
						
							|  |  |  |         default = false; | 
					
						
							|  |  |  |         description = ''
 | 
					
						
							|  |  |  |           Whether to enable thermald, the temperature management daemon. | 
					
						
							| 
									
										
										
										
											2018-08-18 14:44:49 +10:00
										 |  |  |         '';
 | 
					
						
							|  |  |  |       }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       debug = mkOption { | 
					
						
							|  |  |  |         type = types.bool; | 
					
						
							|  |  |  |         default = false; | 
					
						
							|  |  |  |         description = ''
 | 
					
						
							|  |  |  |           Whether to enable debug logging. | 
					
						
							|  |  |  |         '';
 | 
					
						
							|  |  |  |       }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       configFile = mkOption { | 
					
						
							|  |  |  |         type = types.nullOr types.path; | 
					
						
							|  |  |  |         default = null; | 
					
						
							|  |  |  |         description = "the thermald manual configuration file."; | 
					
						
							|  |  |  |       }; | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  |   }; | 
					
						
							| 
									
										
										
										
											2014-08-14 02:17:55 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |   ###### implementation | 
					
						
							|  |  |  |   config = mkIf cfg.enable { | 
					
						
							| 
									
										
										
										
											2014-11-06 15:18:56 +02:00
										 |  |  |     services.dbus.packages = [ pkgs.thermald ]; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-08-14 02:17:55 +02:00
										 |  |  |     systemd.services.thermald = { | 
					
						
							|  |  |  |       description = "Thermal Daemon Service"; | 
					
						
							|  |  |  |       wantedBy = [ "multi-user.target" ]; | 
					
						
							| 
									
										
										
										
											2018-08-18 14:44:49 +10:00
										 |  |  |       serviceConfig = { | 
					
						
							|  |  |  |         ExecStart = ''
 | 
					
						
							|  |  |  |           ${pkgs.thermald}/sbin/thermald \ | 
					
						
							|  |  |  |             --no-daemon \ | 
					
						
							|  |  |  |             ${optionalString cfg.debug "--loglevel=debug"} \ | 
					
						
							|  |  |  |             ${optionalString (cfg.configFile != null) "--config-file ${cfg.configFile}"} \ | 
					
						
							|  |  |  |             --dbus-enable | 
					
						
							|  |  |  |         '';
 | 
					
						
							|  |  |  |       }; | 
					
						
							| 
									
										
										
										
											2014-08-14 02:17:55 +02:00
										 |  |  |     }; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | } |