mirror of
https://github.com/dwinkler1/np.git
synced 2026-02-19 22:40:57 -05:00
140 lines
4.1 KiB
Nix
140 lines
4.1 KiB
Nix
{
|
|
description = "Project Template";
|
|
inputs = {
|
|
rixpkgs.url = "https://github.com/rstats-on-nix/nixpkgs/archive/2025-05-19.tar.gz";
|
|
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
|
nCats.url = "github:dwinkler1/nixCatsConfig";
|
|
nCats.inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
outputs = {
|
|
self,
|
|
nixpkgs,
|
|
nCats,
|
|
...
|
|
} @ inputs: let
|
|
forSystems = nixpkgs.lib.genAttrs nixpkgs.lib.platforms.all;
|
|
in {
|
|
packages = forSystems (
|
|
system: let
|
|
inherit (nCats) utils;
|
|
finalPackage = nCats.packages.${system}.default.override (prev: {
|
|
dependencyOverlays =
|
|
prev.dependencyOverlays
|
|
++ [
|
|
(utils.standardPluginOverlay inputs)
|
|
(final: prev: {
|
|
rpkgs = inputs.rixpkgs.legacyPackages.${system};
|
|
})
|
|
(import (builtins.path {
|
|
path = ./rpkgs.nix;
|
|
name = "my-rpackages";
|
|
}))
|
|
(import (builtins.path {
|
|
path = ./pypkgs.nix;
|
|
name = "my-pypackages";
|
|
}))
|
|
];
|
|
categoryDefinitions = utils.mergeCatDefs prev.categoryDefinitions (
|
|
{
|
|
pkgs,
|
|
settings,
|
|
categories,
|
|
name,
|
|
extra,
|
|
mkPlugin,
|
|
...
|
|
} @ packageDef: {
|
|
lspsAndRuntimeDeps = {
|
|
meta = with pkgs; [
|
|
just
|
|
wget
|
|
gh
|
|
];
|
|
rdev = with pkgs; [
|
|
rWrapper
|
|
];
|
|
pydev = with pkgs; [
|
|
py
|
|
uv
|
|
pyright
|
|
nodejs
|
|
];
|
|
jldev = with pkgs; [
|
|
julia-bin
|
|
];
|
|
quarto = with pkgs; [
|
|
quarto
|
|
];
|
|
};
|
|
|
|
environmentVariables = {
|
|
rdev = {
|
|
R_LIBS_USER = "./.Rlibs";
|
|
};
|
|
pydev = {
|
|
# Prevent uv from managing Python downloads
|
|
UV_PYTHON_DOWNLOADS = "never";
|
|
# Force uv to use nixpkgs Python interpreter
|
|
UV_PYTHON = pkgs.py.interpreter;
|
|
};
|
|
};
|
|
extraWrapperArgs = {
|
|
pydev = [
|
|
"--unset PYTHONPATH"
|
|
];
|
|
};
|
|
bashBeforeWrapper = {
|
|
pydev = [
|
|
"export UV_PYTHON=${pkgs.py.interpreter}"
|
|
"export UV_PYTHON_DOWNLOADS=\"never\""
|
|
"${pkgs.uv}/bin/uv sync"
|
|
];
|
|
};
|
|
}
|
|
);
|
|
|
|
packageDefinitions =
|
|
prev.packageDefinitions
|
|
// {
|
|
nixCats = utils.mergeCatDefs prev.packageDefinitions.nixCats (
|
|
{pkgs, name, ...}: {
|
|
settings = {
|
|
suffix-path = false;
|
|
suffix-LD = false;
|
|
hosts = {
|
|
python3.enable = true;
|
|
marimo = {
|
|
enable = true;
|
|
path = {
|
|
value = "${pkgs.uv}/bin/uv";
|
|
args = ["--add-flags" "run marimo edit"];
|
|
};
|
|
};
|
|
neovide = {
|
|
enable = true;
|
|
path = {
|
|
value = "${pkgs.neovide}/bin/neovide";
|
|
args = [
|
|
"--add-flags"
|
|
"--neovim-bin ${name}"
|
|
];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
categories = {
|
|
meta = true;
|
|
rdev = true;
|
|
pydev = true;
|
|
jldev = true;
|
|
quarto = true;
|
|
};
|
|
}
|
|
);
|
|
};
|
|
});
|
|
in
|
|
utils.mkAllWithDefault finalPackage
|
|
);
|
|
};
|
|
}
|