mirror of
https://github.com/aaddrick/claude-desktop-debian.git
synced 2026-05-17 08:36:35 +03:00
Build node-pty from source using buildNpmPackage so Claude Desktop's terminal features (Claude Code) work on NixOS. The derivation handles three issues with the upstream package: - Strips macOS-only fsevents reference from package-lock.json so npm ci doesn't fail on lock/json mismatch - Runs both tsc (TypeScript to JS) and node-gyp rebuild (native addon) - Copies build/Release/pty.node into output since npmInstallHook doesn't include native addons Also wires node-pty into claude-desktop.nix via --node-pty-dir flag and updates the flake overlay to expose it. Co-Authored-By: Claude <claude@anthropic.com>
42 lines
1.1 KiB
Nix
42 lines
1.1 KiB
Nix
{
|
|
description = "Claude Desktop for Linux";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
|
flake-parts.url = "github:hercules-ci/flake-parts";
|
|
};
|
|
|
|
outputs = inputs:
|
|
inputs.flake-parts.lib.mkFlake { inherit inputs; } {
|
|
systems = [ "x86_64-linux" "aarch64-linux" ];
|
|
|
|
perSystem = { pkgs, ... }: let
|
|
node-pty = pkgs.callPackage ./nix/node-pty.nix { };
|
|
claude-desktop = pkgs.callPackage ./nix/claude-desktop.nix {
|
|
inherit node-pty;
|
|
};
|
|
in {
|
|
packages = {
|
|
inherit claude-desktop;
|
|
claude-desktop-fhs = pkgs.callPackage ./nix/fhs.nix {
|
|
inherit claude-desktop;
|
|
};
|
|
default = claude-desktop;
|
|
};
|
|
};
|
|
|
|
flake = {
|
|
overlays.default = final: prev: let
|
|
node-pty = final.callPackage ./nix/node-pty.nix { };
|
|
in {
|
|
claude-desktop = final.callPackage ./nix/claude-desktop.nix {
|
|
inherit node-pty;
|
|
};
|
|
claude-desktop-fhs = final.callPackage ./nix/fhs.nix {
|
|
claude-desktop = final.claude-desktop;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|