From f440300ceacd0ff60ac896723ea6c0792fa193b8 Mon Sep 17 00:00:00 2001 From: Armel van Ravels Date: Thu, 5 Feb 2026 21:56:39 +0100 Subject: [PATCH] Add nvim --- home.nix | 1 + programs/nvim.nix | 67 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 programs/nvim.nix diff --git a/home.nix b/home.nix index 3079096..8018ba0 100644 --- a/home.nix +++ b/home.nix @@ -17,6 +17,7 @@ ./programs/tmux.nix ./programs/git.nix ./programs/libreoffice.nix + ./programs/nvim.nix ./wm/rofi.nix ./wm/cursor.nix ./wm/dconf.nix diff --git a/programs/nvim.nix b/programs/nvim.nix new file mode 100644 index 0000000..ef995a0 --- /dev/null +++ b/programs/nvim.nix @@ -0,0 +1,67 @@ +{ pkgs, ... }: + +{ + programs.neovim = { + enable = true; + + plugins = with pkgs.vimPlugins; [ + catppuccin-nvim + tokyonight-nvim + nvim-lspconfig + nvim-cmp + cmp-nvim-lsp + cmp-buffer + cmp-path + plenary-nvim + telescope-nvim + (nvim-treesitter.withAllGrammars) + vim-nix + ]; + + extraLuaConfig = '' + vim.cmd("colorscheme catppuccin-mocha") + -- Basic settings + vim.o.number = true + vim.o.relativenumber = true + + -- ========================= + -- LSP (Neovim 0.11+ way) + -- ========================= + + -- Add cmp capabilities + local capabilities = require("cmp_nvim_lsp").default_capabilities() + + vim.lsp.config("nil_ls", { + capabilities = capabilities, + }) + + vim.lsp.enable("nil_ls") + + -- ========================= + -- nvim-cmp + -- ========================= + + local cmp = require("cmp") + + cmp.setup({ + mapping = cmp.mapping.preset.insert({ + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.confirm({ select = true }), + }), + sources = { + { name = "nvim_lsp" }, + { name = "buffer" }, + { name = "path" }, + } + }) + + -- ========================= + -- Telescope + -- ========================= + + local builtin = require("telescope.builtin") + vim.keymap.set("n", "ff", builtin.find_files, {}) + vim.keymap.set("n", "fg", builtin.live_grep, {}) + ''; + }; +}