{ pkgs, ... }:

{
  systemd.services.battery-low = {
    serviceConfig.Type = "simple";
    path = [
      pkgs.acpi
      pkgs.gawk # I was too lazy to find out where awk lives, it's not coreutils, hopefully it works the same
      pkgs.libnotify
    ];
    startAt = "*08:00:00";
    script = ''
      #!/usr/bin/env bash
      if [ `acpi -b | grep "Battery 0" | gawk ' { print ($3)}'`  == "Discharging," ] ; then
          # Discharging
          # Monitor for low battery
          rm /tmp/battery-full
          if [ `acpi -b | grep "Battery 0" | gawk ' { print ($4)-0}'`  -le "15" ] ; then
              notify-send -u critical "Battery Low";
          fi
      else
          # Charging
          if [ `acpi -b | grep "Battery 0" | gawk ' { print ($4)-0}'`  -ge "94" ] ; then
              # Fully charged
              if [[ -f /tmp/battery-full ]]; then
                touch /tmp/battery-full;
                notify-send "Battery Full"
              fi
          fi
      fi
    '';
    serviceConfig = {
      User = "anish";
      Environment = "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus";
    };
  };
  systemd.timers.battery-low = {
    wantedBy = [ "timers.target" ];
    partOf = [ "battery-low.service" ];
    timerConfig.OnCalendar = [ "*:0/5" ];
  };
}
