push sheeet
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s

This commit is contained in:
Dark Steveneq
2025-10-09 14:15:47 +02:00
commit 646b892680
49168 changed files with 5897842 additions and 0 deletions

View File

@@ -0,0 +1,63 @@
{ lib, ... }:
{
name = "systemd-lock-handler";
meta.maintainers = with lib.maintainers; [ liff ];
enableOCR = true;
nodes.machine =
{
config,
pkgs,
lib,
...
}:
let
touch = "${lib.getBin pkgs.coreutils}/bin/touch";
in
{
imports = [ common/wayland-cage.nix ];
services.systemd-lock-handler.enable = true;
systemd.user.services = {
test-lock = {
partOf = [ "lock.target" ];
onSuccess = [ "unlock.target" ];
before = [ "lock.target" ];
wantedBy = [ "lock.target" ];
serviceConfig.ExecStart = "${touch} /tmp/lock.target.activated";
};
test-unlock = {
partOf = [ "unlock.target" ];
after = [ "unlock.target" ];
wantedBy = [ "unlock.target" ];
serviceConfig.ExecStart = "${touch} /tmp/unlock.target.activated";
};
test-sleep = {
partOf = [ "sleep.target" ];
before = [ "sleep.target" ];
wantedBy = [ "sleep.target" ];
serviceConfig.ExecStart = "${touch} /tmp/sleep.target.activated";
};
};
};
testScript = ''
machine.wait_for_unit('graphical.target')
machine.wait_for_text('alice@machine')
machine.send_chars('loginctl lock-session\n')
machine.wait_for_file('/tmp/lock.target.activated')
machine.wait_for_file('/tmp/unlock.target.activated')
machine.send_chars('systemctl suspend\n')
# wait_for_file wont complete before the machine is asleep,
# so well watch the log instead.
machine.wait_for_console_text('Started test-sleep.service.')
# The VM is asleep, regular shutdown wont work.
machine.crash()
'';
}