{pkgs, ...}: { xdg.desktopEntries = { "nvim".name = "Neovim wrapper"; "nvim".exec = "nvim %F"; "nvim".noDisplay = true; }; programs.nixvim = { enable = true; viAlias = true; vimAlias = true; clipboard.providers.wl-copy.enable = true; colorscheme = "dracula"; extraPlugins = with pkgs.vimPlugins; [ dracula-nvim ]; options = { autowrite = true; background = "dark"; clipboard = "unnamedplus"; expandtab = true; laststatus = 2; showmode = false; swapfile = false; number = true; relativenumber = true; shiftwidth = 2; signcolumn = "yes"; smartindent = true; tabstop = 2; termguicolors = true; updatetime = 100; wrap = true; splitright = true; splitbelow = true; }; maps = { normal = { "" = { silent = true; action = "bp"; }; "" = { silent = true; action = "bn"; }; "" = { silent = true; action = "noh"; }; "w" = { action = "bdeletebnext"; }; "1" = { action = ":Neotree toggle"; }; }; }; plugins = { bufferline = { enable = true; diagnostics = "nvim_lsp"; offsets = [ { filetype = "neo-tree"; text = "File Explorer"; separator = true; } ]; separatorStyle = "slant"; }; neo-tree = { enable = true; addBlankLineAtTop = true; enableDiagnostics = true; enableGitStatus = true; closeIfLastWindow = true; buffers = { followCurrentFile = true; }; filesystem = { followCurrentFile = true; useLibuvFileWatcher = true; }; }; }; }; }