# Control battery charge limits. Control with `powerlimit` script.
{ pkgs
, lib
, controlFileMax
, controlFileMin
, onMax
, onMin
, offMax
, offMin
, ... }: {
	systemd = {
		services.powerlimit = {
			description = "Limit battery charge.";
			enable      = true;
			wantedBy    = [ "multi-user.target" ];
			serviceConfig = {
				Type = "simple";
				RemainAfterExit = "yes";
				ExecStart = "${lib.getExe pkgs.bash} -c 'echo ${onMin} > ${controlFileMin}; echo ${onMax} > ${controlFileMax};'";
				ExecStop  = "${lib.getExe pkgs.bash} -c 'echo ${offMax} > ${controlFileMax}; echo ${offMin} > ${controlFileMin};'";
			};
		};

		# HACK: Allow user access.
		tmpfiles.rules = [
			"z ${controlFileMax} 0777 - - - -"
			"z ${controlFileMin} 0777 - - - -"
		];
	};
}