home: wm: screen-lock: use actual assertion

Instead of hijacking the type verification, use an assertion.
This commit is contained in:
Bruno BELANYI 2021-06-15 17:45:17 +02:00
parent e4d3d8a949
commit 48859859eb
2 changed files with 17 additions and 7 deletions

View file

@ -65,13 +65,7 @@ in
enable = my.mkDisableOption "Notify when about to lock the screen";
delay = mkOption {
type = with types;
addCheck int (x:
let
cfg = config.my.home.wm.screen-lock.notify;
cornerCfg = config.my.home.wm.screen-lock.cornerLock;
in
(cfg.enable && cornerCfg.enable) -> cornerCfg.delay >= x);
type = types.int;
default = 5;
example = 15;
description = ''

View file

@ -12,6 +12,22 @@ let
in
{
config = lib.mkIf cfg.enable {
assertions = [
{
assertion =
let
inherit (cfg) cornerLock notify;
bothEnabled = cornerLock.enable && notify.enable;
cornerLockHigherThanNotify = cornerLock.delay >= notify.delay;
in
bothEnabled -> cornerLockHigherThanNotify;
message = ''
`config.my.home.wm.notify.delay` cannot have a value higher than
`config.my.home.wm.cornerLock.delay`.
'';
}
];
services.screen-locker = {
enable = true;