Make config more configurable

This commit is contained in:
Martin Pander
2026-02-07 14:23:51 +01:00
parent a81bae3a85
commit 84ad11d543
10 changed files with 180 additions and 129 deletions

View File

@@ -1,13 +1,52 @@
{ config, pkgs, ... }:
{ config, pkgs, lib, ... }:
let
cfg = config.dot.llm;
in
{
programs.direnv = {
enable = true;
enableZshIntegration = true;
nix-direnv.enable = true;
options.dot.llm = {
enable = lib.mkEnableOption "LLM tools";
claude-code.enable = lib.mkOption {
type = lib.types.bool;
default = false;
description = "Enable claude-code";
};
opencode.enable = lib.mkOption {
type = lib.types.bool;
default = false;
description = "Enable opencode";
};
gemini-cli.enable = lib.mkOption {
type = lib.types.bool;
default = false;
description = "Enable gemini-cli";
};
bubblewrap.enable = lib.mkOption {
type = lib.types.bool;
default = pkgs.stdenv.isLinux;
description = "Enable bubblewrap (Linux only)";
};
};
home.packages = with pkgs; [
visidata
config = lib.mkMerge [
{
programs.direnv = {
enable = true;
enableZshIntegration = true;
nix-direnv.enable = true;
};
home.packages = with pkgs; [
visidata
];
}
(lib.mkIf cfg.enable {
home.packages =
(lib.optional cfg.claude-code.enable pkgs.claude-code) ++
(lib.optional cfg.opencode.enable pkgs.opencode) ++
(lib.optional cfg.gemini-cli.enable pkgs.gemini-cli) ++
(lib.optional (cfg.bubblewrap.enable && pkgs.stdenv.isLinux) pkgs.bubblewrap);
})
];
}
}