nixfleet/hmModules/swayidle/default.nix
2023-12-11 22:01:51 +01:00

62 lines
1.6 KiB
Nix

{
pkgs,
lib,
...
}: {
services.swayidle = let
# Downgraded due to
# https://github.com/mortie/swaylock-effects/issues/95
# swaylock-effects = pkgs.swaylock-effects.overrideAttrs (_: {
# version = "jirutka-master";
# src = pkgs.fetchFromGitHub {
# owner = "jirutka";
# repo = "swaylock-effects";
# rev = "7c5681ce96587ce3090c6698501faeccdfdc157d";
# sha256 = "sha256-09Kq90wIIF9lPjiY2anf9MSgi/EqeXKXW1mFmhxA/aM";
# };
# });
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 \
--grace 2 \
--fade-in 0.2
'';
swaylockCommand = "${swaylockWithArgs}/bin/swaylockWithArgs";
in {
enable = true;
events = [
{
event = "before-sleep";
command = swaylockCommand;
}
{
event = "lock";
command = "lock";
}
];
timeouts = [
{
timeout = 600;
command = swaylockCommand;
}
];
};
# 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 ["hyprland-session.target"];
};
}