dotfiles/modules/hypridle.nix

45 lines
935 B
Nix
Raw Normal View History

2025-09-09 18:03:42 +02:00
{
pkgs,
lib,
config,
...
}:
let
lock = "${pkgs.systemd}/bin/loginctl lock-session";
brillo = lib.getExe pkgs.brillo;
# timeout after which DPMS kicks in
timeout = 300;
in
{
# screen idle
services.hypridle = {
enable = true;
settings = {
general.lock_cmd = lib.getExe config.programs.hyprlock.package;
listener = [
{
timeout = timeout - 10;
# save the current brightness and dim the screen over a period of
# 500 ms
on-timeout = "${brillo} -O; ${brillo} -u 500000 -S 10";
# brighten the screen over a period of 250ms to the saved value
on-resume = "${brillo} -I -u 250000";
}
{
inherit timeout;
}
{
timeout = timeout + 10;
on-timeout = lock;
}
];
};
};
systemd.user.services.hypridle.Unit.After = lib.mkForce "graphical-session.target";
}