Watch
1
0
Fork
You've already forked chitin
0
chitin/modules/users/coyote/programs/nvf.nix
2026-10-26 20:35:43 +07:00

190 lines
4.5 KiB
Nix

{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 = "<C-l>";
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",
})
'';
};
};
};
}