57 lines
1.3 KiB
Nix
57 lines
1.3 KiB
Nix
{
|
|
pkgs,
|
|
lib,
|
|
...
|
|
}:
|
|
{
|
|
services.swayidle =
|
|
let
|
|
swaylockWithArgs = pkgs.writeScriptBin "swaylockWithArgs" ''
|
|
${pkgs.swaylock-effects}/bin/swaylock \
|
|
--daemonize \
|
|
--screenshots \
|
|
--clock \
|
|
--indicator \
|
|
--indicator-radius 100 \
|
|
--indicator-thickness 7 \
|
|
--effect-blur 7x5 \
|
|
--effect-vignette 0.5:0.5 \
|
|
--ring-color bb00cc \
|
|
--key-hl-color 880033 \
|
|
--line-color 00000000 \
|
|
--inside-color 00000088 \
|
|
--separator-color 00000000 \
|
|
--fade-in 0.2
|
|
'';
|
|
swaylockCommand = "${swaylockWithArgs}/bin/swaylockWithArgs";
|
|
in
|
|
{
|
|
enable = true;
|
|
events = [
|
|
{
|
|
event = "before-sleep";
|
|
command = swaylockCommand;
|
|
}
|
|
{
|
|
event = "lock";
|
|
command = swaylockCommand;
|
|
}
|
|
];
|
|
timeouts = [
|
|
{
|
|
timeout = 600;
|
|
command = swaylockCommand;
|
|
}
|
|
{
|
|
timeout = 720;
|
|
command = "${pkgs.systemd}/bin/systemctl suspend";
|
|
}
|
|
];
|
|
};
|
|
|
|
# Otherwise it will start only after Sway and will not work with Hyprland
|
|
systemd.user.services.swayidle = {
|
|
Unit.PartOf = lib.mkForce [ ];
|
|
Install.WantedBy = lib.mkForce [ "graphical-session-pre.target" ];
|
|
};
|
|
}
|