{ config, pkgs, nixvim, ... }: { home.packages = with pkgs; [ tree-sitter fd ]; programs = { ripgrep.enable = true; nixvim = { globals.mapleader = " "; keymaps = [ { key = ""; action = ":bnext"; } { key = "t"; action = ":Telescope buffers"; } { key = "T"; action = ":terminal"; } { key = "e"; action = ":Neotree"; } { key = "o"; action = ":Obsidian"; } { key = "gg"; action = ":LazyGit"; } { key = "gl"; action = ":LazyGitLog"; } ]; enable = true; defaultEditor = true; # colorschemes.dracula.enable = true; colorschemes.catppuccin.enable = true; extraConfigLuaPost = "vim.opt.conceallevel = 2"; plugins = { airline.enable = true; alpha = { enable = true; theme = "dashboard"; }; blink-cmp.enable = true; bufferline.enable = true; cmp.enable = true; cmp-buffer.enable = true; cmp-nvim-lsp.enable = true; cmp-path.enable = true; cmp-treesitter.enable = true; cmp_luasnip.enable = true; comment.enable = true; friendly-snippets.enable = true; gitsigns.enable = true; indent-blankline.enable = true; lz-n.enable = true; lazygit.enable = true; lsp = { servers = { bashls.enable = true; html.enable = true; lua_ls.enable = true; markdown_oxide.enable = true; nixd.enable = true; perlls.enable = true; pylsp.enable = true; vimls.enable = true; }; }; lualine.enable = true; luasnip.enable = true; neo-tree.enable = true; nix.enable = true; none-ls.enable = true; nvim-autopairs.enable = true; nvim-tree.enable = true; obsidian = { enable = true; settings = { legacy_commands = false; templates = { subdir = "Templates"; }; daily_notes = { date_format = "%Y-%m-%d"; folder = "Daily"; }; workspaces = [ { name = "main"; path = "~/.obsidian/main"; } { name = "journal"; path = "~/.obsidian/journal"; } { name = "food"; path = "~/.obsidian/Food"; } ]; }; }; project-nvim.enable = true; # snacks.enable = true; telescope.enable = true; treesitter = { enable = true; settings = { auto_install = true; ensure_installed = "all"; highlight = { additional_vim_regex_highlighting = true; custom_captures = { }; enable = true; disable = [ "ipgk" ]; }; ignore_install = [ "ipkg" ]; incremental_selection = { enable = true; keymaps = { init_selection = false; node_decremental = "grm"; node_incremental = "grn"; scope_incremental = "grc"; }; }; indent = { enable = true; }; parser_install_dir = { __raw = "vim.fs.joinpath(vim.fn.stdpath('data'), 'treesitter')"; }; sync_install = false; }; }; web-devicons.enable = true; }; }; }; }