Compare commits

..

3 Commits

4 changed files with 13 additions and 39 deletions

View File

@@ -20,7 +20,6 @@ in {
package = pkgs.nordic; package = pkgs.nordic;
name = "Nordic"; name = "Nordic";
}; };
gtk4.theme = config.gtk.theme;
}; };
home.pointerCursor = { home.pointerCursor = {
enable = true; enable = true;

View File

@@ -6,23 +6,16 @@
}: }:
with lib; let with lib; let
cfg = config.home.dev.ai.claude; cfg = config.home.dev.ai.claude;
jsonFormat = pkgs.formats.json {};
in { in {
options.home.dev.ai.claude = { options.home.dev.ai.claude.enable = mkEnableOption "Enables Claude-related packages";
enable = mkEnableOption "Enables Claude-related packages";
mcpServers = mkOption {
inherit (jsonFormat) type;
default = {};
};
};
config = mkIf cfg.enable { config = mkIf cfg.enable {
home.packages = let home.packages = let
claude-jj = pkgs.writeShellScriptBin "claude-jj" '' claude-jj = pkgs.writeShellScriptBin "claude-jj" ''
${pkgs.claude-code}/bin/claude --append-system-prompt 'CRITICAL: This repository uses Jujutsu (jj), NOT git. Never use git commands. Use jj equivalents.' "$@" ${pkgs.claude-code}/bin/claude --append-system-prompt 'CRITICAL: This repository uses Jujutsu (jj), NOT git. Never use git commands. Use jj equivalents. See CLAUDE.md.' "$@"
''; '';
in [claude-jj pkgs.sox]; in [claude-jj];
programs.claude-code = { programs.claude-code = {
inherit (cfg) enable mcpServers; inherit (cfg) enable;
}; };
}; };
} }

View File

@@ -6,34 +6,18 @@
}: }:
with lib; let with lib; let
cfg = config.home.dev.ai; cfg = config.home.dev.ai;
jsonFormat = pkgs.formats.json {};
in { in {
imports = [ imports = [
./claude.nix ./claude.nix
./ollama.nix ./ollama.nix
]; ];
options.home.dev.ai = { options.home.dev.ai.enable = mkEnableOption "Enables AI features";
enable = mkEnableOption "Enables AI features"; config.home = mkIf cfg.enable {
mcpServers = mkOption { dev.ai = {
inherit (jsonFormat) type; claude.enable = mkDefault cfg.enable;
default = {}; ollama.enable = mkDefault cfg.enable;
};
};
config = {
home = mkIf cfg.enable {
dev.ai = {
claude = {
enable = mkDefault cfg.enable;
mcpServers = mkDefault cfg.mcpServers;
};
ollama.enable = mkDefault cfg.enable;
};
packages = [pkgs.lmstudio];
};
programs.mcp = mkIf (cfg.mcpServers != {}) {
enable = true;
servers = cfg.mcpServers;
}; };
packages = [pkgs.lmstudio];
}; };
} }

View File

@@ -127,11 +127,6 @@ in {
"dist/" "dist/"
]; ];
signing = {
format = if cfg.publicKeyFile != null then "ssh" else "openpgp";
key = cfg.publicKeyFile;
signByDefault = true;
};
settings = { settings = {
user = { user = {
inherit (cfg) name email; inherit (cfg) name email;
@@ -156,6 +151,8 @@ in {
renames = "copy"; renames = "copy";
interHunkContext = 10; interHunkContext = 10;
}; };
commit.gpgsign = cfg.publicKeyFile != null;
gpg.format = "ssh";
gpg.ssh.allowedSignersFile = "${config.home.homeDirectory}/.ssh/allowed_signers"; gpg.ssh.allowedSignersFile = "${config.home.homeDirectory}/.ssh/allowed_signers";
init.defaultBranch = "main"; init.defaultBranch = "main";
pull.rebase = true; pull.rebase = true;
@@ -171,6 +168,7 @@ in {
updateRefs = true; updateRefs = true;
}; };
help.autocorrect = "prompt"; help.autocorrect = "prompt";
user.signingkey = mkIf (cfg.publicKeyFile != null) cfg.publicKeyFile;
web.browser = mkIf (cfg.browser != null) cfg.browser; web.browser = mkIf (cfg.browser != null) cfg.browser;
sendemail = mkIf cfg.sendmail.enable { sendemail = mkIf cfg.sendmail.enable {
smtpserver = cfg.sendmail.server; smtpserver = cfg.sendmail.server;