feat: ngl, lazyvim was better.

This commit is contained in:
Teesh 2026-02-06 18:15:49 +02:00
parent c5d3865f47
commit e5918cc142
3 changed files with 87 additions and 154 deletions

View file

@ -1,53 +1,46 @@
{inputs, ...}: {
flake.modules.nixos.base = {
imports = [inputs.nvf.nixosModules.default];
flake.modules.nixos.base = {pkgs, ...}: {
environment.systemPackages = [pkgs.neovim pkgs.statix];
programs.nvf.enable = true;
nix.nixPath = ["nixpkgs=${inputs.nixpkgs}"];
programs.nvf.settings = {
vim.viAlias = true;
vim.vimAlias = true;
programs.neovim.enable = true;
programs.neovim.defaultEditor = true;
};
vim.autocomplete.blink-cmp.enable = true;
vim.telescope.enable = true;
vim.utility.sleuth.enable = true;
vim.binds.whichKey.enable = true;
vim.ui.noice.enable = true;
vim.statusline.lualine.enable = true;
vim.clipboard.enable = true;
vim.clipboard.registers = "unnamedplus";
vim.presence.neocord.enable = true;
vim.filetree.neo-tree.enable = true;
flake.modules.homeManager.base = {
imports = [inputs.lazyvim.homeManagerModules.default];
vim.git.neogit.enable = true;
vim.keymaps = [
{
key = "<leader>gg";
mode = "n";
silent = true;
action = "<cmd>Neogit<cr>";
}
{
key = "<leader>fe";
mode = "n";
silent = true;
action = "<cmd>Neotree toggle<cr>";
}
];
programs.neovim.enable = true;
programs.neovim.defaultEditor = true;
vim.dashboard.alpha.enable = true;
programs.lazyvim = {
enable = true;
pluginSource = "nixpkgs";
plugins.catppuccin = ''
return { "LazyVim/LazyVim", opts = { colorscheme = "catppuccin" } }
'';
plugins.neogit = ''
return { "NeogitOrg/neogit", opts = {}, keys = { { "<leader>gg", "<cmd>Neogit<cr>" } } }
'';
extras = {
lang.nix = {
enable = true;
installDependencies = true;
};
vim.lsp.enable = true;
vim.lsp.formatOnSave = true;
vim.languages = {
nix.enable = true;
nix.lsp.servers = ["nixd"];
rust.enable = true;
ts.enable = true;
yaml.enable = true;
lang.python = {
enable = true;
installDependencies = true;
};
enableTreesitter = true;
enableFormat = true;
# only reason we don't add `pkgs.claude-code` to base is because base is meant to be things for servers,
# we do need neovim on the server but we don't need a clanker on there too!
#
# plus, it can fail gracefully - if cc is not installed, it simply does nothing
ai.claudecode = {
enable = true;
installDependencies = true;
installRuntimeDependencies = true;
};
};
};
};