From d096c3a3746a0de7fed436a9dfbdeeacd24b9a95 Mon Sep 17 00:00:00 2001 From: 0xrsydn Date: Thu, 2 Oct 2025 11:09:54 +0700 Subject: [PATCH] feat: claude code custom packaging --- flake.nix | 7 +++- modules/home/rsydn/devtools/ai-tools.nix | 2 +- .../home/rsydn/programs/aerospace/default.nix | 4 +- .../home/rsydn/programs/aerospace/modes.nix | 3 +- .../programs/aerospace/user-settings.nix | 3 +- .../rsydn/programs/aerospace/workspaces.nix | 4 +- pkgs/claude-code/default.nix | 37 +++++++++++++++++++ 7 files changed, 48 insertions(+), 12 deletions(-) create mode 100644 pkgs/claude-code/default.nix diff --git a/flake.nix b/flake.nix index e33b253..94da73d 100644 --- a/flake.nix +++ b/flake.nix @@ -35,7 +35,12 @@ forEachSystem = f: genAttrs systems (system: f system); - overlaysList = [ ghostty.overlays.default ]; + overlaysList = [ + ghostty.overlays.default + (final: prev: { + claude-code-v2 = prev.callPackage ./pkgs/claude-code { }; + }) + ]; zigOverlay = if builtins.hasAttr "zig-overlay" inputs then inputs."zig-overlay" diff --git a/modules/home/rsydn/devtools/ai-tools.nix b/modules/home/rsydn/devtools/ai-tools.nix index 31e87f6..665bebd 100644 --- a/modules/home/rsydn/devtools/ai-tools.nix +++ b/modules/home/rsydn/devtools/ai-tools.nix @@ -12,7 +12,7 @@ let opencodeDefault = getPkgsPackage "opencode"; - claudeDefault = getPkgsPackage "claude-code"; + claudeDefault = getPkgsPackage "claude-code-v2"; toolOption = { name, description, defaultPackage, extraOptions ? { } , extraDefaults ? { } }: diff --git a/modules/home/rsydn/programs/aerospace/default.nix b/modules/home/rsydn/programs/aerospace/default.nix index 7cb1196..16be554 100644 --- a/modules/home/rsydn/programs/aerospace/default.nix +++ b/modules/home/rsydn/programs/aerospace/default.nix @@ -6,9 +6,7 @@ let inherit (workspaceHelpers) workspaceFocusBindings workspaceSendBindings; }; - userSettings = import ./user-settings.nix { - modes = modes; - }; + userSettings = import ./user-settings.nix { modes = modes; }; in { programs.aerospace = { enable = true; diff --git a/modules/home/rsydn/programs/aerospace/modes.nix b/modules/home/rsydn/programs/aerospace/modes.nix index 7174533..92134d0 100644 --- a/modules/home/rsydn/programs/aerospace/modes.nix +++ b/modules/home/rsydn/programs/aerospace/modes.nix @@ -1,5 +1,4 @@ -{ workspaceFocusBindings, workspaceSendBindings }: -{ +{ workspaceFocusBindings, workspaceSendBindings }: { main.binding = { "alt-h" = "focus left"; "alt-j" = "focus down"; diff --git a/modules/home/rsydn/programs/aerospace/user-settings.nix b/modules/home/rsydn/programs/aerospace/user-settings.nix index f68fd8a..d9d1ce0 100644 --- a/modules/home/rsydn/programs/aerospace/user-settings.nix +++ b/modules/home/rsydn/programs/aerospace/user-settings.nix @@ -1,5 +1,4 @@ -{ modes }: -{ +{ modes }: { enable-normalization-flatten-containers = true; enable-normalization-opposite-orientation-for-nested-containers = true; default-root-container-layout = "tiles"; diff --git a/modules/home/rsydn/programs/aerospace/workspaces.nix b/modules/home/rsydn/programs/aerospace/workspaces.nix index 678b139..e3e6dd3 100644 --- a/modules/home/rsydn/programs/aerospace/workspaces.nix +++ b/modules/home/rsydn/programs/aerospace/workspaces.nix @@ -13,6 +13,4 @@ let name = "alt-shift-${ws}"; value = "move-node-to-workspace ${ws}"; }) workspaceNumbers); -in { - inherit workspaceNumbers workspaceFocusBindings workspaceSendBindings; -} +in { inherit workspaceNumbers workspaceFocusBindings workspaceSendBindings; } diff --git a/pkgs/claude-code/default.nix b/pkgs/claude-code/default.nix new file mode 100644 index 0000000..cdcd476 --- /dev/null +++ b/pkgs/claude-code/default.nix @@ -0,0 +1,37 @@ +{ lib, stdenv, fetchurl, nodejs }: + +stdenv.mkDerivation rec { + pname = "claude-code"; + version = "2.0.0"; + + src = fetchurl { + url = + "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-${version}.tgz"; + hash = + "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; # Update with actual hash + }; + + nativeBuildInputs = [ nodejs ]; + + unpackPhase = '' + tar -xzf $src + ''; + + installPhase = '' + mkdir -p $out/lib/node_modules/@anthropic-ai/claude-code + cp -r package/* $out/lib/node_modules/@anthropic-ai/claude-code/ + + mkdir -p $out/bin + ln -s $out/lib/node_modules/@anthropic-ai/claude-code/cli.js $out/bin/claude-code + chmod +x $out/bin/claude-code + ''; + + meta = with lib; { + description = "Anthropic Claude Code CLI v2.0.0"; + homepage = "https://claude.ai/code"; + license = licenses.unfree; + maintainers = [ ]; + platforms = platforms.all; + mainProgram = "claude-code"; + }; +}