190 lines
4.5 KiB
Nix
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",
|
|
})
|
|
'';
|
|
};
|
|
};
|
|
};
|
|
}
|