nix-dotfiles/hm_modules/xidlehook.nix

34 lines
870 B
Nix

{ pkgs, lib, ... }:
with lib;
let
xbacklightCmd = "${pkgs.xorg.xbacklight}/bin/xbacklight";
lightLevel = 10;
package = pkgs.writeScriptBin "xidlehook" ''
${pkgs.xidlehook}/bin/xidlehook --detect-sleep "$@"
'';
saveLightLevel = "${xbacklightCmd} -get > /run/user/$UID/xbacklight_v";
lowerLight = "${xbacklightCmd} -set ${toString lightLevel}";
resetLight = "${xbacklightCmd} -set $(</run/user/$UID/xbacklight_v) || ${xbacklightCmd} -set 100";
in
{
services.xidlehook = {
inherit package;
enable = true;
# not-when-audio = true;
not-when-fullscreen = true;
timers = [
{
command = "${saveLightLevel} && ${lowerLight}";
canceller = resetLight;
delay = 60;
}
{
command = "${pkgs.lockscreen}/bin/lockscreen";
canceller = resetLight;
delay = 120;
}
];
};
}