From da978ff35ac851daf060d36b82920f09f5fcccfe Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Wed, 2 Mar 2022 22:02:30 +0100 Subject: machines/sternenseemann: use upower over low-battery MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I had some weird issues with the low-battery udev rule, mainly it not triggering when it should. Usually, the event would only get processed when the battery changed state, e.g. from Discharging to Charging. Consequently, the laptop would hibernate when you'd save it from running out of battery by plugging it in, but, if you forgot, it'd be content to run out of battery. I'll try upower instead now which is the “normal” solution used by the major desktop environments. It's has some extra complexity, as it also provides a d-bus API for other applications to use, but we'll see how it goes. --- modules/hardware/low-battery.nix | 45 ---------------------------------------- 1 file changed, 45 deletions(-) delete mode 100644 modules/hardware/low-battery.nix (limited to 'modules/hardware') diff --git a/modules/hardware/low-battery.nix b/modules/hardware/low-battery.nix deleted file mode 100644 index 40c21178..00000000 --- a/modules/hardware/low-battery.nix +++ /dev/null @@ -1,45 +0,0 @@ -# based on https://code.tvl.fyi/tree/users/glittershark/system/system/modules/reusable/battery.nix -{ config, lib, pkgs, ... }: - -let - - inherit (pkgs.vuizvui.profpatsch) - getBins - ; - - cfg = config.vuizvui.hardware.low-battery; - - bins = getBins pkgs.systemd [ "systemctl" ]; - -in { - options = { - vuizvui.hardware.low-battery = { - enable = lib.mkEnableOption "suspend on low battery"; - - treshold = lib.mkOption { - description = "Percentage treshold on which to suspend"; - type = lib.types.int; - default = 5; - }; - - action = lib.mkOption { - description = "Type of suspend action to perform when treshold is reached"; - type = lib.types.enum [ - "hibernate" - "suspend" - "suspend-then-hibernate" - ]; - default = "suspend"; - }; - }; - }; - - config = lib.mkIf cfg.enable { - services.udev.extraRules = lib.concatStrings [ - ''SUBSYSTEM=="power_supply", '' - ''ATTR{status}=="Discharging", '' - ''ATTR{capacity}=="[0-${toString cfg.treshold}]", '' - ''RUN+="${bins.systemctl} ${cfg.action}"'' - ]; - }; -} -- cgit 1.4.1