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 xautolockmain
parent
88f9b33384
commit
e4df31dcea
@ -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.*' |
||||||
|
''; |
||||||
|
}; |
||||||
|
} |
@ -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; |
||||||
|
} |
@ -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; |
||||||
|
}; |
||||||
|
} |
@ -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…
Reference in new issue