nix: extend hm-module for CLI config options and add extraRuntimeDeps to package (#410)
* nix: make runtimeDeps extendible * nix: add settings for caelestia-cli * nix: fix option description
This commit is contained in:
parent
7c0f5533e1
commit
38b2ef0061
2 changed files with 27 additions and 8 deletions
|
|
@ -31,6 +31,7 @@
|
|||
pipewire,
|
||||
caelestia-cli,
|
||||
withCli ? false,
|
||||
extraRuntimeDeps ? [],
|
||||
}: let
|
||||
runtimeDeps =
|
||||
[
|
||||
|
|
@ -53,6 +54,7 @@
|
|||
findutils
|
||||
file
|
||||
]
|
||||
++ extraRuntimeDeps
|
||||
++ lib.optional withCli caelestia-cli;
|
||||
|
||||
fontconfig = makeFontsConf {
|
||||
|
|
|
|||
|
|
@ -34,6 +34,16 @@ in {
|
|||
default = cli-default;
|
||||
description = "The package of Caelestia CLI"; # Doesn't override the shell's CLI, only change from home.packages
|
||||
};
|
||||
settings = mkOption {
|
||||
type = types.attrs;
|
||||
default = {};
|
||||
description = "Caelestia CLI settings";
|
||||
};
|
||||
extraConfig = mkOption {
|
||||
type = types.str;
|
||||
default = "{}";
|
||||
description = "Caelestia CLI extra configs written to cli.json";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
|
@ -68,14 +78,21 @@ in {
|
|||
};
|
||||
};
|
||||
|
||||
xdg.configFile."caelestia/shell.json".text = let
|
||||
extraConfig =
|
||||
if cfg.extraConfig != ""
|
||||
then cfg.extraConfig
|
||||
else "{}";
|
||||
in
|
||||
builtins.toJSON (lib.recursiveUpdate
|
||||
(cfg.settings or {}) (builtins.fromJSON extraConfig));
|
||||
xdg.configFile = let
|
||||
mkConfig = c:
|
||||
lib.pipe (
|
||||
if c.extraConfig != ""
|
||||
then c.extraConfig
|
||||
else "{}"
|
||||
) [
|
||||
builtins.fromJSON
|
||||
(lib.recursiveUpdate c.settings)
|
||||
builtins.toJSON
|
||||
];
|
||||
in {
|
||||
"caelestia/shell.json".text = mkConfig cfg;
|
||||
"caelestia/cli.json".text = mkConfig cfg.cli;
|
||||
};
|
||||
|
||||
home.packages = [shell] ++ lib.optional cfg.cli.enable cli;
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue