mirror of
https://github.com/nix-community/home-manager
synced 2024-11-01 16:59:43 +01:00
60 lines
1.6 KiB
Nix
60 lines
1.6 KiB
Nix
{ config, pkgs, lib, ... }:
|
|
|
|
{
|
|
services.swayidle = {
|
|
enable = true;
|
|
package = config.lib.test.mkStubPackage { outPath = "@swayidle@"; };
|
|
timeouts = [
|
|
{
|
|
timeout = 50;
|
|
command = ''notify-send -t 10000 -- "Screen lock in 10 seconds"'';
|
|
}
|
|
{
|
|
timeout = 60;
|
|
command = "swaylock -fF";
|
|
}
|
|
{
|
|
timeout = 300;
|
|
command = ''swaymsg "output * dpms off"'';
|
|
resumeCommand = ''swaymsg "output * dpms on"'';
|
|
}
|
|
];
|
|
events = [
|
|
{
|
|
event = "before-sleep";
|
|
command = "swaylock -fF";
|
|
}
|
|
{
|
|
event = "lock";
|
|
command = "swaylock -fF";
|
|
}
|
|
];
|
|
};
|
|
|
|
nmt.script = ''
|
|
serviceFile=home-files/.config/systemd/user/swayidle.service
|
|
|
|
assertFileExists "$serviceFile"
|
|
|
|
serviceFileNormalized="$(normalizeStorePaths "$serviceFile")"
|
|
|
|
assertFileContent "$serviceFileNormalized" ${
|
|
builtins.toFile "expected.service" ''
|
|
[Install]
|
|
WantedBy=graphical-session.target
|
|
|
|
[Service]
|
|
Environment=PATH=/nix/store/00000000000000000000000000000000-bash/bin
|
|
ExecStart=@swayidle@/bin/dummy -w timeout 50 'notify-send -t 10000 -- "Screen lock in 10 seconds"' timeout 60 'swaylock -fF' timeout 300 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' before-sleep 'swaylock -fF' lock 'swaylock -fF'
|
|
Restart=always
|
|
Type=simple
|
|
|
|
[Unit]
|
|
ConditionEnvironment=WAYLAND_DISPLAY
|
|
Description=Idle manager for Wayland
|
|
Documentation=man:swayidle(1)
|
|
PartOf=graphical-session.target
|
|
''
|
|
}
|
|
'';
|
|
}
|