feat(nix): add keys enum to global cfg

This commit is contained in:
2025-07-07 03:22:16 +02:00
parent 4611ad87a8
commit d85ebc0e78
4 changed files with 42 additions and 22 deletions

View File

@@ -10,11 +10,14 @@ let
keys-h-file = builtins.readFile "${src}/include/keys.h";
};
in
builtins.toFile "lidm.conf" (
if builtins.isString cfg then
builtins.readFile "${src}/themes/${cfg}.ini"
else if builtins.isAttrs cfg then
maker.make cfg
else
builtins.throw "invalid cfg type, expected str or attrs"
)
{
inherit maker;
file = builtins.toFile "lidm.conf" (
if builtins.isString cfg then
builtins.readFile "${src}/themes/${cfg}.ini"
else if builtins.isAttrs cfg then
maker.make cfg
else
builtins.throw "invalid cfg type, expected str or attrs"
);
}

View File

@@ -5,7 +5,7 @@
...
}:
let
cfg-file =
get-cfg =
if config.cfg != null then
import ./get-cfg-file.nix {
inherit lib;
@@ -13,6 +13,8 @@ let
}
else
null;
cfg-file = get-cfg.file;
maker = get-cfg.maker;
in
pkgs.stdenv.mkDerivation rec {
pname = "lidm";
@@ -41,4 +43,8 @@ pkgs.stdenv.mkDerivation rec {
fixupPhase = ''
rm -rf $out/etc
'';
passthru = {
keysEnum = maker.keys-enum;
};
}

View File

@@ -30,15 +30,23 @@ let
};
in
{
options.services.lidm.config = lib.mkOption {
type =
with lib.types;
oneOf [
str
attrs
];
default = { };
description = "Config options for lidm | Either attr tree or name of bundled themes";
options = {
lidm.keysEnum = lib.mkOption {
type = with lib.types; attrs;
default = lidm.passthru.keysEnum;
readOnly = true;
description = "Keys enum constants";
};
services.lidm.config = lib.mkOption {
type =
with lib.types;
oneOf [
str
attrs
];
default = { };
description = "Config options for lidm | Either attr tree or name of bundled themes";
};
};
config = {
services.displayManager.defaultSession = "lidm";