{ inputs, config, ... }: { imports = [inputs.nvf.homeManagerModules.default]; programs.nvf = { enable = true; settings.vim = { vimAlias = true; viAlias = true; withNodeJs = true; options = { tabstop = 2; shiftwidth = 2; wrap = false; }; keymaps = [ { key = "jk"; mode = ["i"]; action = ""; desc = "Exit insert mode"; } { key = "nh"; mode = ["n"]; action = ":nohl"; desc = "Clear search highlights"; } { key = "ff"; mode = ["n"]; action = "Telescope find_files"; desc = "Search files by name"; } { key = "lg"; mode = ["n"]; action = "Telescope live_grep"; desc = "Search files by contents"; } { key = "fe"; mode = ["n"]; action = "Neotree toggle"; desc = "File browser toggle"; } { key = ""; mode = ["i"]; action = ""; desc = "Move left in insert mode"; } { key = ""; mode = ["i"]; action = ""; desc = "Move down in insert mode"; } { key = ""; mode = ["i"]; action = ""; desc = "Move up in insert mode"; } { key = ""; mode = ["i"]; action = ""; desc = "Move right in insert mode"; } ]; theme = { enable = true; name = "dracula"; style = "dark"; transparent = true; }; telescope.enable = true; spellcheck = { enable = true; }; lsp = { formatOnSave = true; lspkind.enable = false; lightbulb.enable = true; lspsaga.enable = false; trouble.enable = true; lspSignature.enable = true; otter-nvim.enable = false; lsplines.enable = false; nvim-docs-view.enable = false; }; languages = { enableLSP = true; enableFormat = true; enableTreesitter = true; enableExtraDiagnostics = true; nix.enable = true; clang.enable = true; zig.enable = true; python.enable = true; markdown.enable = true; ts.enable = true; html.enable = true; }; visuals = { nvim-web-devicons.enable = true; nvim-cursorline.enable = true; cinnamon-nvim.enable = true; fidget-nvim.enable = true; highlight-undo.enable = true; indent-blankline.enable = true; }; statusline = { lualine = { enable = true; theme = "dracula"; }; }; autopairs.nvim-autopairs.enable = true; autocomplete.nvim-cmp.enable = true; snippets.luasnip.enable = true; tabline = { nvimBufferline.enable = true; }; treesitter.context.enable = true; binds = { whichKey.enable = true; cheatsheet.enable = true; }; git = { enable = true; gitsigns.enable = true; gitsigns.codeActions.enable = false; # throws an annoying debug message }; projects.project-nvim.enable = true; dashboard.dashboard-nvim.enable = true; filetree.neo-tree.enable = true; notify = { nvim-notify.enable = true; nvim-notify.setupOpts.background_colour = "#${config.lib.stylix.colors.base01}"; }; utility = { ccc.enable = false; vim-wakatime.enable = false; icon-picker.enable = true; surround.enable = true; diffview-nvim.enable = true; motion = { hop.enable = true; leap.enable = true; precognition.enable = false; }; images = { image-nvim.enable = false; }; }; ui = { borders.enable = true; noice.enable = true; colorizer.enable = true; illuminate.enable = true; breadcrumbs = { enable = false; navbuddy.enable = false; }; smartcolumn = { enable = false; }; fastaction.enable = true; }; session = { nvim-session-manager.enable = false; }; comments = { comment-nvim.enable = true; }; }; }; }