{ flake, ... }: let inherit (flake) inputs; in { imports = [ inputs.nixvim.homeManagerModules.nixvim ]; programs.nixvim = { enable = true; imports = [ ./nvim-tree.nix ./lazygit.nix ]; # Theme colorschemes.rose-pine.enable = true; # Settings opts = { expandtab = true; shiftwidth = 2; smartindent = true; tabstop = 2; number = true; clipboard = "unnamedplus"; }; # Keymaps globals = { mapleader = " "; }; plugins = { # UI web-devicons.enable = true; lualine.enable = true; bufferline.enable = true; treesitter.enable = true; which-key = { enable = true; }; noice = { # WARNING: This is considered experimental feature, but provides nice UX enable = true; presets = { bottom_search = true; command_palette = true; long_message_to_split = true; #inc_rename = false; #lsp_doc_border = false; }; }; telescope = { enable = true; keymaps = { "ff" = { options.desc = "file finder"; action = "find_files"; }; "fg" = { options.desc = "find via grep"; action = "live_grep"; }; }; extensions = { file-browser.enable = true; ui-select.enable = true; frecency.enable = true; fzf-native.enable = true; }; }; # Dev lsp = { enable = true; servers = { hls = { enable = true; installGhc = false; }; marksman.enable = true; nil_ls.enable = true; rust_analyzer = { enable = true; installCargo = false; installRustc = false; }; }; }; }; }; }