{ nvf, ... }: { imports = [ nvf.homeManagerModules.default ]; programs.nvf = { enable = true; settings = { vim = { viAlias = true; vimAlias = true; lsp.enable = true; treesitter.enable = true; autocomplete.nvim-cmp.enable = true; languages = { rust.enable = true; go.enable = true; python.enable = true; markdown.enable = true; css.enable = true; scss.enable = true; tsx.enable = true; typescript = { enable = true; lsp.servers = [ "typescript-language-server" "deno" ]; }; }; utility.surround.enable = true; telescope.enable = true; mini.icons.enable = true; notes.obsidian = { enable = true; setupOpts.workspaces = [ { name = "personal"; path = "~/Documents/Obsidian/notes"; } ]; }; terminal.toggleterm = { enable = true; lazygit = { enable = true; mappings.open = "gg"; }; }; filetree.neo-tree.enable = true; binds.whichKey.enable = true; clipboard = { enable = true; registers = "unnamedplus"; providers = { wl-copy.enable = true; xclip.enable = true; }; }; lsp.null-ls = { enable = true; setupOpts = {}; }; lsp.trouble.enable = true; theme = { enable = true; name = "catppuccin"; style = "mocha"; transparent = false; }; dashboard.alpha.enable = true; statusline.lualine.enable = true; keymaps = [ { key = ""; mode = "n"; action = "w"; silent = true; noremap = true; } { key = "o"; mode = "n"; action = "Neotree toggle"; silent = true; noremap = true; } { key = "tf"; mode = "n"; action = "ToggleTerm direction=float"; silent = true; noremap = true; } { key = "th"; mode = "n"; action = "ToggleTerm direction=horizontal"; silent = true; noremap = true; } { key = "tv"; mode = "n"; action = "ToggleTerm direction=vertical"; silent = true; noremap = true; } { key = "n"; mode = "n"; action = ""; desc = "Notes"; silent = true; noremap = true; } { key = "nd"; mode = "n"; action = "Obsidian today"; desc = "Obsidian daily note"; silent = true; noremap = true; } { key = "nf"; mode = "n"; action = "Obsidian quick_switch"; desc = "Obsidian find note"; silent = true; noremap = true; } { key = "ns"; mode = "n"; action = "Obsidian search"; desc = "Obsidian search notes"; silent = true; noremap = true; } { key = "nn"; mode = "n"; action = "Obsidian new"; desc = "Obsidian new note"; silent = true; noremap = true; } { key = "ff"; mode = "n"; action = "Telescope find_files"; silent = true; noremap = true; } { key = "fD"; mode = "n"; action = "lua require('telescope.builtin').find_files({ cwd = vim.fn.input('Dir: ', vim.loop.cwd() .. '/', 'dir') })"; silent = true; noremap = true; } { key = "fg"; mode = "n"; action = "Telescope live_grep"; silent = true; noremap = true; } { key = "/"; mode = "n"; action = "Telescope current_buffer_fuzzy_find"; silent = true; noremap = true; } { key = "gb"; mode = "n"; action = "Telescope git_branches"; silent = true; noremap = true; } { key = "gc"; mode = "n"; action = "Telescope git_commits"; silent = true; noremap = true; } { key = "gl"; mode = "n"; action = "Telescope git_bcommits"; silent = true; noremap = true; } { key = "gr"; mode = "n"; action = "Telescope git_status"; silent = true; noremap = true; } ]; }; }; }; }