Hi, I’m trying to use nixCats to convert my own neovim config, however when I do nix build
which as far as I know should build the flake in the current directory, errors with the following error:
warning: Git tree '/home/nico/.dotfiles/neovim-update' is dirty
error:
… while evaluating a branch condition
at /nix/store/y3wcwikr0fl9jysgn2fmg9kwf7sp3s6d-source/pkgs/stdenv/booter.nix:99:7:
98| thisStage =
99| if args.__raw or false
| ^
100| then args'
… in the right operand of the update (//) operator
at /nix/store/y3wcwikr0fl9jysgn2fmg9kwf7sp3s6d-source/pkgs/stdenv/booter.nix:84:7:
83| { allowCustomOverrides = index == 1; }
84| // (stageFun prevStage))
| ^
85| (lib.lists.reverseList stageFuns);
(stack trace truncated; use '--show-trace' to show the full trace)
error: getting status of '/nix/store/1gaayqx0zsc2j60nacyf970v4a9dmb39-source/overlays': No such file or directory
Here is the flake in the same directory (with all commented lines removed):
{
description = "A Lua-natic's neovim flake, with extra cats! nixCats!";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
flake-utils.url = "github:numtide/flake-utils";
nixCats.url = "github:BirdeeHub/nixCats-nvim/8a59925";
};
outputs = { self, nixpkgs, flake-utils, nixCats, ... }@inputs: let
utils = nixCats.utils;
luaPath = "${./.}";
forEachSystem = flake-utils.lib.eachSystem flake-utils.lib.allSystems;
extra_pkg_config = {
allowUnfree = true;
};
system_resolved = forEachSystem (system: let
standardPluginOverlay = utils.standardPluginOverlay;
dependencyOverlays = [ (utils.mergeOverlayLists nixCats.dependencyOverlays.${system}
((import ./overlays inputs) ++ [
(utils.standardPluginOverlay inputs)
])) ];
in { inherit dependencyOverlays; });
inherit (system_resolved) dependencyOverlays;
categoryDefinitions = { pkgs, settings, categories, name, ... }@packageDef: {
propagatedBuildInputs = {
generalBuildInputs = with pkgs; [
];
};
lspsAndRuntimeDeps = {
general = with pkgs; [
universal-ctags
ripgrep
fd
gcc
nix-doc
nil
lua-language-server
nixd
stylua
prettierd
lazygit
checkstyle
languagetool-rust
nodePackages.typescript-language-server
emmet-ls
clang-tools
zls
eslint_d
marksman
nodePackages.pyright
];
};
startupPlugins = {
lazy = with pkgs.vimPlugins; [
lazy-nvim
];
general = {
gitPlugins = with pkgs.neovimPlugins; [
hlargs
];
vimPlugins = with pkgs.vimPlugins; [
neodev-nvim
autoclose-nvim
comment
luasnip
nvim-cmp
friendly-snippets
cmp-nvim-lsp
cmp_luasnip
cmp-nvim-lua
cmp-nvim-lsp-signature-help
cmp-path
cmp-buffer
conform-nvim
nvim-dap
nvim-treesitter-textobjects
nvim-treesitter.withAllGrammars
gitsigns-nvim
lazygit-nvim
fidget-nvim
nvim-lspconfig
neodev-nvim
rustaceanvim
lualine-nvim
nvim-web-devicons
neo-tree-nvim
none-ls-nvim
vim-sleuth
plenary-nvim
telescope-nvim
telescope-undo-nvim
telescope-ui-select-nvim
telescope-fzf-native-nvim
vimtex
todo-comments-nvim
trouble-nvim
undotree
];
};
themer = with pkgs.vimPlugins;
(builtins.getAttr packageDef.categories.colorscheme {
"onedark" = onedark-nvim;
"catppuccin" = catppuccin-nvim;
"tokyonight" = tokyonight-nvim;
}
);
};
optionalPlugins = {
custom = with pkgs.nixCatsBuilds; [ ];
gitPlugins = with pkgs.neovimPlugins; [ ];
general = with pkgs.vimPlugins; [ ];
};
environmentVariables = {
test = {
subtest1 = {
CATTESTVAR = "It worked!";
};
subtest2 = {
CATTESTVAR3 = "It didn't work!";
};
};
};
extraWrapperArgs = {
test = [
'' --set CATTESTVAR2 "It worked again!"''
];
};
extraPythonPackages = {
test = (_:[]);
};
extraPython3Packages = {
test = (_:[]);
};
extraLuaPackages = {
test = [ (_:[]) ];
};
};
packageDefinitions = {
nixCats = { pkgs, ... }@misc: {
settings = {
wrapRc = true;
configDirName = "testerstart-nvim";
aliases = [ "vi" "vim" ];
};
categories = {
lazy = true;
generalBuildInputs = true;
general = true;
lspDebugMode = false;
themer = true;
colorscheme = "catppuccin";
theBestCat = "says meow!!";
theWorstCat = {
thing'1 = [ "MEOW" "HISSS" ];
thing2 = [
"I LOVE KEYBOARDS"
{
thing3 = [ "give" "treat" ];
}
];
};
};
};
};
defaultPackageName = "nixCats";
in
forEachSystem (system: let
inherit (utils) baseBuilder;
customPackager = baseBuilder luaPath {
inherit nixpkgs system dependencyOverlays extra_pkg_config;
} categoryDefinitions;
nixCatsBuilder = customPackager packageDefinitions;
pkgs = import nixpkgs { inherit system; };
in {
packages = utils.mkPackages nixCatsBuilder packageDefinitions defaultPackageName;
overlays = utils.mkOverlays nixCatsBuilder packageDefinitions defaultPackageName;
devShell = pkgs.mkShell {
name = defaultPackageName;
packages = [ (nixCatsBuilder defaultPackageName) ];
inputsFrom = [ ];
shellHook = ''
'';
};
inherit customPackager;
}) // {
nixosModules.default = utils.mkNixosModules {
inherit defaultPackageName dependencyOverlays luaPath
categoryDefinitions packageDefinitions nixpkgs;
};
homeModule = utils.mkHomeModules {
inherit defaultPackageName dependencyOverlays luaPath
categoryDefinitions packageDefinitions nixpkgs;
};
inherit utils categoryDefinitions packageDefinitions dependencyOverlays;
inherit (utils) templates baseBuilder;
keepLuaBuilder = utils.baseBuilder luaPath;
};
}
I’m very much a noob at nix and might have made an obvious mistake, regardless thank you in advance!