35 lines
1 KiB
Nix
35 lines
1 KiB
Nix
|
{ pkgs, ... }:
|
||
|
let
|
||
|
lock-script = pkgs.writeScript "suspend" ''
|
||
|
${pkgs.swaylock}/bin/swaylock -f -c 000000
|
||
|
${pkgs.mpc-cli}/bin/mpc pause
|
||
|
'';
|
||
|
screen-off-script = pkgs.writeScript "screenOff" ''
|
||
|
${pkgs.sway}/bin/swaymsg "output * dpms off"
|
||
|
'';
|
||
|
suspend-script = pkgs.writeScript "suspend" ''
|
||
|
${pkgs.systemctl}/bin/systemctl suspend
|
||
|
'';
|
||
|
resume-script = pkgs.writeScript "resume" ''
|
||
|
${pkgs.sway}/bin/swaymsg "output * dpms on"
|
||
|
'';
|
||
|
unlock-script = pkgs.writeScript "unlock" ''
|
||
|
${pkgs.procps}/bin/pkill swaylock
|
||
|
${pkgs.mpc-cli}/bin/mpc play
|
||
|
'';
|
||
|
in
|
||
|
{
|
||
|
systemd.user.services.swayidle = {
|
||
|
Unit = {
|
||
|
Description = "swayidle";
|
||
|
PartOf = [ "graphical-session.target" ];
|
||
|
};
|
||
|
Install = {
|
||
|
WantedBy = [ "graphical-session.target" ];
|
||
|
};
|
||
|
Service = {
|
||
|
ExecStart = "${pkgs.swayidle}/bin/swayidle -w timeout 300 ${lock-script} timeout 305 ${screen-off-script} timeout 900 ${suspend-script} resume ${resume-script} lock ${lock-script} unlock ${unlock-script}";
|
||
|
};
|
||
|
};
|
||
|
}
|