summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nix/default.nix2
-rw-r--r--nix/hm-module.nix33
2 files changed, 27 insertions, 8 deletions
diff --git a/nix/default.nix b/nix/default.nix
index 8012721..4c2f7df 100644
--- a/nix/default.nix
+++ b/nix/default.nix
@@ -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 {
diff --git a/nix/hm-module.nix b/nix/hm-module.nix
index 631ee4a..9876826 100644
--- a/nix/hm-module.nix
+++ b/nix/hm-module.nix
@@ -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;
};