1
0
Fork 0
nixos-config/home-manager/modules/battery.nix

42 lines
1.1 KiB
Nix
Raw Normal View History

2018-05-31 10:34:48 +00:00
{ lib, pkgs, ... }:
with lib;
2018-05-26 20:48:33 +00:00
let
battery-watch = pkgs.writeShellScriptBin "battery-watch" ''
critical_level=20 #percent
while true
do
if [ "$(${pkgs.acpi}/bin/acpi -a | grep -o off)" == "off" ]; then
battery_level=`${pkgs.acpi}/bin/acpi -b | sed 's/.*[dg], //g;s/\%,.*//g'`
if [ $battery_level -le $critical_level ]; then
${pkgs.eventd}/bin/eventc critical battery -d "title='Battery level is low!'" -d "message='Only $battery_level% of the charge remains.'"
else
${pkgs.eventd}/bin/eventc notification battery -d "title='Battery is discharging!'" -d "message='Only $battery_level% of the charge remains.'"
sleep 18m
fi
fi
sleep 2m
done
'';
in {
2018-05-31 10:34:48 +00:00
options.m-0.battery.enable = mkEnableOption "Battery";
config = mkIf config.m-0.battery.enable {
2018-05-26 20:48:33 +00:00
systemd.user = {
services.battery = {
Unit = {
Description = "Watch battery state and warn user";
};
Service = {
ExecStart="/bin/sh ${battery-watch}/bin/battery-watch";
};
Install = {
WantedBy = [ "graphical-session.target" ];
};
};
};
2018-05-31 10:34:48 +00:00
};
2018-05-26 20:48:33 +00:00
}