{ inputs, ... }: { flake.nixosModules.nvf = {pkgs, ...}: { environment.systemPackages = [ ]; imports = [ inputs.nvf.nixosModules.default ]; programs.nvf = { enable = true; settings.vim = { statusline.lualine.enable = true; telescope.enable = true; autocomplete.nvim-cmp.enable = true; lsp.enable = true; git.vim-fugitive.enable = true; autopairs.nvim-autopairs.enable = true; spellcheck.enable = true; navigation.harpoon.enable = true; visuals.nvim-web-devicons.enable = true; notes.todo-comments.enable = true; utility = { undotree.enable = true; oil-nvim.enable = true; snacks-nvim.enable = true; }; languages = { enableTreesitter = true; nix.enable = true; go.enable = true; lua.enable = true; typst.enable = true; }; lazy.plugins = { "kanagawa.nvim" = { package = pkgs.vimPlugins.kanagawa-nvim; setupModule = "kanagawa"; setupOpts = { transparent = true; dimInactive = false; }; after = "vim.cmd(\"colorscheme kanagawa\")"; }; }; opts = { tabstop = 4; softtabstop = 4; shiftwidth = 4; expandtab = true; smartindent = true; smartcase = true; ignorecase = true; wrap = false; updatetime = 50; termguicolors = true; mouse = "a"; cursorline = true; pumheight = 16; winborder = "single"; swapfile = false; backup = false; hlsearch = false; incsearch = true; scrolloff = 8; scroll = 6; signcolumn = "yes"; colorcolumn = "80"; }; keymaps = [ { key = "pv"; mode = "n"; silent = true; lua = true; action = "vim.cmd.Ex"; } { key = "u"; mode = "n"; silent = true; lua = true; action = "vim.cmd.UndotreeToggle"; } { key = "y"; mode = "n"; silent = true; action = "\"+y"; } { key = "y"; mode = "v"; silent = true; action = "\"+y"; } { key = "Y"; mode = "n"; silent = true; action = "\"+Y"; } { key = ""; mode = "n"; silent = true; action = "zz"; } { key = ""; mode = "n"; silent = true; action = "zz"; } { key = "n"; mode = "n"; silent = true; action = "nzzzv"; } { key = "N"; mode = "n"; silent = true; action = "Nzzzv"; } { key = "J"; mode = "n"; silent = true; action = "mzJ`z"; } { key = "gs"; mode = "n"; silent = true; lua = true; action = "vim.cmd.Git"; } ]; }; }; }; }