screen-locker: Make xautolock optional, reorganize options (#2343)
* screen-locker: Make xautolock optional, reorganize options xautolock isn't really needed to trigger xss-lock on the basis of time since the built-in screensaver functionality of X serves as one of the event sources for xss-lock. Keeping it around and defaulting to "enabled" to avoid unexpected breakage. Also shuffled around the options to submodules for xss-lock and xautolock to get rid of prefixes in option names and to make enableDetectSleep a bit clearer. * screen-locker: update maintainership * tests/screen-locker: Stub i3lock and xss-lock * screen-locker: add package options for xss-lock and xautolock
This commit is contained in:
parent
88f9b33384
commit
e4df31dcea
9 changed files with 221 additions and 55 deletions
30
tests/modules/services/screen-locker/basic-configuration.nix
Normal file
30
tests/modules/services/screen-locker/basic-configuration.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
config = {
|
||||
services.screen-locker = {
|
||||
enable = true;
|
||||
inactiveInterval = 5;
|
||||
lockCmd = "${pkgs.i3lock}/bin/i3lock -n -c AA0000";
|
||||
xss-lock = { extraOptions = [ "-test" ]; };
|
||||
xautolock = {
|
||||
enable = true;
|
||||
detectSleep = true;
|
||||
extraOptions = [ "-test" ];
|
||||
};
|
||||
};
|
||||
|
||||
test.stubs.i3lock = { };
|
||||
test.stubs.xss-lock = { };
|
||||
|
||||
nmt.script = ''
|
||||
xssService=home-files/.config/systemd/user/xss-lock.service
|
||||
xautolockService=home-files/.config/systemd/user/xautolock-session.service
|
||||
|
||||
assertFileExists $xssService
|
||||
assertFileRegex $xssService 'ExecStart=.*/bin/xss-lock.*-test.*i3lock -n -c AA0000'
|
||||
assertFileExists $xautolockService
|
||||
assertFileRegex $xautolockService 'ExecStart=.*/bin/xautolock.*-time 5.*-detectsleep.*-test.*'
|
||||
'';
|
||||
};
|
||||
}
|
||||
5
tests/modules/services/screen-locker/default.nix
Normal file
5
tests/modules/services/screen-locker/default.nix
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
screen-locker-basic-configuration = ./basic-configuration.nix;
|
||||
screen-locker-no-xautolock = ./no-xautolock.nix;
|
||||
screen-locker-moved-options = ./moved-options.nix;
|
||||
}
|
||||
36
tests/modules/services/screen-locker/moved-options.nix
Normal file
36
tests/modules/services/screen-locker/moved-options.nix
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
{ config, pkgs, options, lib, ... }:
|
||||
|
||||
{
|
||||
config = {
|
||||
services.screen-locker = {
|
||||
enable = true;
|
||||
inactiveInterval = 5;
|
||||
lockCmd = "${pkgs.i3lock}/bin/i3lock -n -c AA0000";
|
||||
xssLockExtraOptions = [ "-test" ];
|
||||
xautolockExtraOptions = [ "-test" ];
|
||||
enableDetectSleep = true;
|
||||
};
|
||||
|
||||
test.stubs.i3lock = { };
|
||||
test.stubs.xss-lock = { };
|
||||
|
||||
# Use the same verification script as the basic configuration. The result
|
||||
# with the old options should be identical.
|
||||
nmt.script = (import ./basic-configuration.nix {
|
||||
inherit config pkgs;
|
||||
}).config.nmt.script;
|
||||
|
||||
test.asserts.warnings.expected = with lib;
|
||||
let
|
||||
renamed = {
|
||||
xssLockExtraOptions = "xss-lock.extraOptions";
|
||||
xautolockExtraOptions = "xautolock.extraOptions";
|
||||
enableDetectSleep = "xautolock.detectSleep";
|
||||
};
|
||||
in mapAttrsToList (old: new:
|
||||
builtins.replaceStrings [ "\n" ] [ " " ] ''
|
||||
The option `services.screen-locker.${old}' defined in
|
||||
${showFiles options.services.screen-locker.${old}.files}
|
||||
has been renamed to `services.screen-locker.${new}'.'') renamed;
|
||||
};
|
||||
}
|
||||
24
tests/modules/services/screen-locker/no-xautolock.nix
Normal file
24
tests/modules/services/screen-locker/no-xautolock.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
config = {
|
||||
services.screen-locker = {
|
||||
enable = true;
|
||||
inactiveInterval = 5;
|
||||
lockCmd = "${pkgs.i3lock}/bin/i3lock -n -c AA0000";
|
||||
xss-lock = { extraOptions = [ "-test" ]; };
|
||||
xautolock = { enable = false; };
|
||||
};
|
||||
|
||||
test.stubs.i3lock = { };
|
||||
test.stubs.xss-lock = { };
|
||||
|
||||
nmt.script = ''
|
||||
xssService=home-files/.config/systemd/user/xss-lock.service
|
||||
|
||||
assertFileExists $xssService
|
||||
assertFileRegex $xssService 'ExecStart=.*/bin/xss-lock.*-test.*i3lock -n -c AA0000'
|
||||
assertFileRegex $xssService 'ExecStartPre=.*/xset s 300'
|
||||
'';
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue