{ pkgs, inputs, ... }: { colorschemes.tokyonight.enable = true; opts = { number = true; relativenumber = true; # Show whitespace list = true; listchars.__raw = "{ tab = '» ', trail = '·', nbsp = '␣', lead = '·'}"; # Start scrolling when the cursor is X lines away from edge scrolloff = 10; ignorecase = true; smartcase = true; cindent = true; signcolumn = "yes"; }; clipboard.providers.wl-copy.enable = true; clipboard.providers.xclip.enable = true; plugins = { dashboard = { enable = true; settings = { theme = "hyper"; config = { header = [ "███╗ ██╗██╗██╗ ██╗██╗ ██╗██╗███╗ ███╗" "████╗ ██║██║╚██╗██╔╝██║ ██║██║████╗ ████║" "██╔██╗ ██║██║ ╚███╔╝ ██║ ██║██║██╔████╔██║" "██║╚██╗██║██║ ██╔██╗ ╚██╗ ██╔╝██║██║╚██╔╝██║" "██║ ╚████║██║██╔╝ ██╗ ╚████╔╝ ██║██║ ╚═╝ ██║" "╚═╝ ╚═══╝╚═╝╚═╝ ╚═╝ ╚═══╝ ╚═╝╚═╝ ╚═╝" "" ]; }; }; }; telescope = { enable = true; keymaps = { "" = "live_grep"; "" = "git_files"; "" = "find_files"; }; extensions = { fzf-native = { enable = true; settings = { fuzzy = true; override_file_sorter = true; override_generic_sorter = true; }; }; }; }; # Needed for telescope web-devicons.enable = true; lualine = { enable = true; settings = { options = { component_separators = "|"; section_separators = ""; globalstatus = true; }; }; }; neo-tree = { enable = true; closeIfLastWindow = true; filesystem = { filteredItems = { visible = true; hideDotfiles = false; hideGitignored = false; }; }; }; neogit.enable = true; tiny-inline-diagnostic = { enable = true; settings = { options = { show_source.enabled = true; settings.auto_start = true; }; }; }; coq-nvim = { enable = true; installArtifacts = true; settings.auto_start = "shut-up"; luaConfig.post = '' vim.g.coq_settings = { keymap = { jump_to_mark = "" }, } ''; }; nvim-autopairs.enable = true; comment.enable = true; sleuth.enable = true; rustaceanvim.enable = true; mkdnflow = { enable = true; mappings = { MkdnEnter = { key = ""; modes = [ "n" "v" "i" ]; }; }; }; lsp = { enable = true; keymaps.diagnostic = { "j" = "goto_next"; "k" = "goto_prev"; }; servers = { typos_lsp.enable = true; markdown_oxide.enable = true; ltex.enable = true; }; }; }; extraPlugins = [ (pkgs.vimUtils.buildVimPlugin { name = "hml"; src = inputs.hml; }) (pkgs.vimUtils.buildVimPlugin { name = "typst-preview"; src = inputs.typst-preview; }) ]; extraConfigLua = '' require("hml").setup() require("typst-preview").setup() ''; extraPackages = with pkgs; [ # Telescope ripgrep # typst-preview typst poppler-utils # (pdfinfo) ]; keymaps = [ { action = "Dashboard"; key = "d"; } { action = "Neotree toggle right"; key = "f"; } { action = "spwincmd jterm15-i"; key = "t"; } { # Exit terminal mode action = ""; key = ""; mode = [ "t" ]; } { action = "vsplit"; key = "v"; } { action = "split"; key = "h"; } { action = "tabnew"; key = "n"; } { action = "tabn"; key = ""; } { action = "tabp"; key = ""; } { action = "lua require(\"typst-preview\").start()"; key = "s"; } { action = "lua require(\"typst-preview\").stop()"; key = "q"; } { action = "lua require(\"typst-preview\").prev_page()"; key = "k"; } { action = "lua require(\"typst-preview\").next_page()"; key = "j"; } ] ++ ( builtins.concatMap (k: [ { action = "wincmd ${k}"; key = ""; } { action = "wincmd ${k} "; key = ""; mode = [ "t" ]; } ]) ["h" "j" "k" "l"] ); }