mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-27 16:15:05 +00:00
c95612a5a2
This module allows root autoLogin, so we would break that for users, but they shouldn't be using it anyways. This gives the impression like auto is some special display manager, when it's just lightdm and special pam rules to allow root autoLogin. It was created for NixOS's testing so I believe this is where it belongs.
45 lines
1.2 KiB
Nix
45 lines
1.2 KiB
Nix
import ./make-test-python.nix ({ pkgs, lib, ... }:
|
|
|
|
with lib;
|
|
|
|
{
|
|
name = "xss-lock";
|
|
meta.maintainers = with pkgs.stdenv.lib.maintainers; [ ma27 ];
|
|
|
|
nodes = {
|
|
simple = {
|
|
imports = [ ./common/x11.nix ./common/user-account.nix ];
|
|
programs.xss-lock.enable = true;
|
|
test-support.displayManager.auto.user = "alice";
|
|
};
|
|
|
|
custom_lockcmd = { pkgs, ... }: {
|
|
imports = [ ./common/x11.nix ./common/user-account.nix ];
|
|
test-support.displayManager.auto.user = "alice";
|
|
|
|
programs.xss-lock = {
|
|
enable = true;
|
|
extraOptions = [ "-n" "${pkgs.libnotify}/bin/notify-send 'About to sleep!'"];
|
|
lockerCommand = "${pkgs.xlockmore}/bin/xlock -mode ant";
|
|
};
|
|
};
|
|
};
|
|
|
|
testScript = ''
|
|
def perform_xsslock_test(machine, lockCmd):
|
|
machine.start()
|
|
machine.wait_for_x()
|
|
machine.wait_for_unit("xss-lock.service", "alice")
|
|
machine.fail(f"pgrep {lockCmd}")
|
|
machine.succeed("su -l alice -c 'xset dpms force standby'")
|
|
machine.wait_until_succeeds(f"pgrep {lockCmd}")
|
|
|
|
|
|
with subtest("simple"):
|
|
perform_xsslock_test(simple, "i3lock")
|
|
|
|
with subtest("custom_cmd"):
|
|
perform_xsslock_test(custom_lockcmd, "xlock")
|
|
'';
|
|
})
|