{inputs, ...}: { flake.modules.homeManager.coyote = {pkgs, ...}: { imports = [inputs.nvf.homeManagerModules.default]; home.packages = with pkgs.unstable; [ lazygit tree-sitter ]; programs.nvf = { enable = true; defaultEditor = true; enableManpages = true; settings.vim = { viAlias = true; vimAlias = true; syntaxHighlighting = true; lineNumberMode = "relNumber"; searchCase = "smart"; hideSearchHighlight = false; clipboard = { enable = true; registers = "unnamedplus"; providers.wl-copy.enable = true; }; options = { encoding = "utf-8"; backspace = "indent,eol,start"; history = 1000; mouse = "a"; updatetime = 300; ruler = true; cursorline = true; showcmd = true; showmode = true; laststatus = 1; wildmenu = true; wildmode = ["longest" "list" "full"]; ttyfast = true; lazyredraw = true; signcolumn = "no"; autoindent = true; expandtab = true; smarttab = true; tabstop = 4; shiftwidth = 4; softtabstop = 4; hlsearch = true; incsearch = true; termguicolors = true; background = "dark"; showmatch = true; }; theme = { enable = true; name = "gruvbox"; style = "dark"; }; globals.terminal_ansi_colors = [ "#282828" "#cc241d" "#98971a" "#d79921" "#458588" "#b16286" "#689d6a" "#a89984" "#928374" "#fb4934" "#b8bb26" "#fabd2f" "#83a598" "#d3869b" "#8ec07c" "#ebdbb2" ]; keymaps = [ { mode = "i"; key = ""; action = "λ"; desc = "inserts lambda"; } ]; languages.nix = { enable = true; treesitter.enable = true; lsp.enable = true; format.enable = false; extraDiagnostics.enable = false; }; utility.undotree.enable = true; augroups = [ { name = "my_filetype_settings"; clear = true; } ]; autocmds = [ { event = ["FileType"]; pattern = [ "javascript" "javascriptreact" "typescript" "typescriptreact" "html" "css" "scss" "json" "jsonc" "vue" "svelte" "yaml" "toml" "markdown" "nix" "vim" "ruby" "eruby" "dart" "haskell" "elm" ]; group = "my_filetype_settings"; desc = "2-space indent"; command = "setlocal expandtab tabstop=2 shiftwidth=2 softtabstop=2"; } { event = ["FileType"]; pattern = [ "python" "rust" "java" "lua" "c" "cpp" "cs" "php" "kotlin" "swift" "scala" "perl" ]; group = "my_filetype_settings"; desc = "4-space indent"; command = "setlocal expandtab tabstop=4 shiftwidth=4 softtabstop=4"; } { event = ["FileType"]; pattern = ["go" "gomod" "make"]; group = "my_filetype_settings"; desc = "hard tabs"; command = "setlocal noexpandtab tabstop=4 shiftwidth=4 softtabstop=0"; } { event = ["FileType"]; pattern = ["lisp" "scheme" "clojure" "racket" "fennel"]; group = "my_filetype_settings"; desc = "Lisp-style indent"; command = "setlocal expandtab tabstop=2 shiftwidth=2 softtabstop=2 lisp autoindent"; } ]; luaConfigRC.my_lispwords = '' vim.opt.lispwords:append({ "defun", "defmacro", "defvar", "defparameter", "defmethod", "define-syntax", "lambda", "let", "let*", "letrec", "flet", "labels", "progn", "when", "unless", "if", "cond", }) ''; }; }; }; }