{ config, pkgs, lib, ... }:
let
  p = pkgs.writeScriptBin "charge-upto" ''
    echo ''${0:-100} > /sys/class/power_supply/BAT0/charge_control_end_threshold
  '';
  cfg = config.hardware.asus;
in

{
  options.hardware.asus.battery.chargeUpto = lib.mkOption {
    description = "Maximum level of charge for your battery, as a percentage.";
    default = 100;
    type = lib.types.int;
  };
  config = {
    environment.systemPackages = [ p ];
    systemd.tmpfiles.rules = [
      "w /sys/class/power_supply/BAT0/charge_control_end_threshold - - - - ${toString cfg.battery.chargeUpto}"
    ];
  };
}