Better xidlehook + screen shutdown

This commit is contained in:
Filippo Berto 2022-09-07 10:58:54 +02:00
parent 2b062ee946
commit f28e934cd0
No known key found for this signature in database
GPG key ID: FE98AE5EC52B1056

View file

@ -4,32 +4,46 @@ with lib;
let let
xbacklightCmd = "${pkgs.xorg.xbacklight}/bin/xbacklight"; xbacklightCmd = "${pkgs.xorg.xbacklight}/bin/xbacklight";
package = pkgs.writeScriptBin "xidlehook" '' xsetCmd = "${pkgs.xorg.xset}/bin/xset";
${pkgs.xidlehook}/bin/xidlehook --detect-sleep "$@"
'';
lightLevel = 10; lightLevel = 10;
saveLightLevel = "${xbacklightCmd} -get > /run/user/$UID/xbacklight_v";
lowerLight = "${xbacklightCmd} -set ${toString lightLevel}"; saveLightLevel = pkgs.writeShellScript "saveLightLevel" ''
resetLight = ${xbacklightCmd} -get > /run/user/$UID/xbacklight_v
"${xbacklightCmd} -set $(</run/user/$UID/xbacklight_v) || ${xbacklightCmd} -set 100"; '';
lowerLight = pkgs.writeShellScript "lower_light" ''
${xbacklightCmd} -set ${toString lightLevel}
'';
resetLight = pkgs.writeShellScript "reset_light" ''
${xbacklightCmd} -set $(</run/user/$UID/xbacklight_v) || ${xbacklightCmd} -set 100
'';
shutDownScreens = pkgs.writeShellScript "shutdown_screens" ''
${xsetCmd} dpms force off
'';
in in
{ {
services.xidlehook = { services.xidlehook = {
inherit package;
enable = true; enable = true;
package = pkgs.writeScriptBin "xidlehook" ''
${pkgs.xidlehook}/bin/xidlehook --detect-sleep "$@"
'';
# not-when-audio = true; # not-when-audio = true;
not-when-fullscreen = true; not-when-fullscreen = true;
timers = [ timers = [
{ {
command = "${saveLightLevel} && ${lowerLight}"; command = "${saveLightLevel} && ${lowerLight}";
canceller = resetLight; canceller = "${resetLight}";
delay = 60; delay = 60;
} }
{ {
command = "${pkgs.lockscreen}/bin/lockscreen"; command = "${pkgs.lockscreen}/bin/lockscreen";
canceller = resetLight; canceller = "${resetLight}";
delay = 120; delay = 120;
} }
{
command = "${shutDownScreens}";
canceller = "${resetLight}";
delay = 300;
}
]; ];
}; };
} }