- add my.username / my.gaming.enable / my.ai.local.enable options and gate optional app modules on them instead of per-host import lists - move vendor-neutral hardware.graphics into modules/graphical, leaving only NVIDIA-specific drivers and env vars in modules/hardware/nvidia - derive the primary user everywhere from my.username (users, getty, home-manager, tmpfiles) - de-duplicate Hyprland autostart down to a single system loginShellInit using the start-hyprland wrapper - consolidate all nixpkgs overlays into modules/core/nix.nix and use final.stdenv.hostPlatform.system - make the zsh rebuild helper target $(hostname) instead of hardcoded hades - add nixpkgs follows for nixos-hardware, pi and comfy-ui (single nixpkgs) - add .gitignore and a nixfmt flake formatter; format all nix files - remove empty browser.nix/display-configuration.nix and rename local_ai.nix -> local-ai.nix - document the my.* toggles in the README
84 lines
1.6 KiB
Nix
84 lines
1.6 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
lib,
|
|
...
|
|
}:
|
|
|
|
let
|
|
treesitterParsers = pkgs.symlinkJoin {
|
|
name = "treesitter-parsers";
|
|
paths = builtins.attrValues pkgs.vimPlugins.nvim-treesitter.passthru.grammarPlugins;
|
|
};
|
|
in
|
|
{
|
|
programs.neovim = {
|
|
enable = true;
|
|
defaultEditor = true;
|
|
viAlias = true;
|
|
vimAlias = true;
|
|
withNodeJs = true;
|
|
withPython3 = true;
|
|
|
|
extraPackages = with pkgs; [
|
|
# Native compilation tools & Treesitter CLI
|
|
gcc
|
|
clang
|
|
gnumake
|
|
cmake
|
|
tree-sitter
|
|
|
|
# Search & Fuzzy Finding
|
|
ripgrep
|
|
fd
|
|
fzf
|
|
|
|
# Archive and Network Utilities
|
|
git
|
|
curl
|
|
unzip
|
|
gnutar
|
|
gzip
|
|
|
|
# Language Servers, Linters & Formatters (Declarative, no Mason needed)
|
|
# Nix
|
|
nil
|
|
nixfmt
|
|
statix
|
|
# Lua
|
|
lua-language-server
|
|
stylua
|
|
# C / C++
|
|
llvmPackages_latest.clang-tools
|
|
llvmPackages_latest.lldb
|
|
# Rust
|
|
rust-analyzer
|
|
# Python
|
|
pyright
|
|
ruff
|
|
# Web / TypeScript / JavaScript / HTML / CSS / JSON
|
|
vtsls
|
|
vscode-langservers-extracted
|
|
prettier
|
|
# Shell
|
|
shfmt
|
|
shellcheck
|
|
];
|
|
|
|
extraWrapperArgs = [
|
|
"--set"
|
|
"NVIM_TREESITTER_PARSERS"
|
|
"${treesitterParsers}"
|
|
];
|
|
};
|
|
|
|
# Symlink LazyVim configuration to ~/.config/nvim recursively
|
|
xdg.configFile."nvim" = {
|
|
source = ./config;
|
|
recursive = true;
|
|
};
|
|
|
|
# Symlink precompiled Treesitter parsers directly into ~/.config/nvim/parser
|
|
xdg.configFile."nvim/parser".source = "${treesitterParsers}/parser";
|
|
}
|