Files
nixos-config/modules/home/nvf.nix

258 lines
5.4 KiB
Nix
Raw Normal View History

2025-09-13 02:38:36 -04:00
{
inputs,
pkgs,
host,
...
}:
{
imports = [
inputs.nvf.homeManagerModules.default
];
programs.nvf = {
enable = true;
settings = {
vim = {
viAlias = false;
vimAlias = true;
options = {
wrap = false;
};
clipboard = {
enable = true;
providers.wl-copy.enable = true;
registers = "unnamedplus";
};
comments.comment-nvim = {
enable = true;
};
2025-09-13 02:38:36 -04:00
lsp = {
enable = true;
formatOnSave = true;
inlayHints.enable = true;
};
treesitter = {
enable = true;
indent.enable = true;
};
statusline.lualine.enable = true;
telescope.enable = true;
autocomplete.blink-cmp.enable = true;
# Auto-close (, ", `, etc.
mini.pairs = {
enable = true;
};
# File explorer
filetree.neo-tree = {
enable = true;
setupOpts = {
git_status_async = true;
};
2025-09-13 02:38:36 -04:00
};
# Formatting files
formatter.conform-nvim = {
enable = true;
setupOpts = {
};
};
binds = {
whichKey.enable = true;
};
keymaps = [
{
key = "<A-e>";
mode = [ "n" ];
silent = true;
2025-10-07 09:13:19 -04:00
action = "<cmd>Neotree focus<CR>";
}
{
key = "<C-e>";
mode = [ "n" ];
silent = true;
action = "<cmd>Neotree close<CR>";
}
{
key = "<C-s>";
desc = "Save";
mode = [
"n"
"i"
"v"
];
action = "<cmd>w<CR>";
}
{
key = "<C-z>";
desc = "Undo";
mode = [
"n"
"i"
"v"
];
action = "<cmd>u<CR>";
}
# Window Navigation
{
key = "<C-w>LEFT";
mode = "";
action = "<C-w>h";
}
{
key = "<C-w>DOWN";
mode = "";
action = "<C-w>j";
}
{
key = "<C-w>UP";
mode = "";
action = "<C-w>k";
}
{
key = "<C-w>RIGHT";
mode = "";
action = "<C-w>l";
2025-09-13 02:38:36 -04:00
}
];
theme = {
enable = true;
name = "catppuccin";
style = "mocha";
};
languages = {
enableTreesitter = true;
enableFormat = true;
2025-10-07 09:13:19 -04:00
clang = {
enable = true;
cHeader = true;
dap.enable = true;
lsp = {
enable = true;
server = "clangd";
};
treesitter.enable = true;
};
css = {
enable = true;
format = {
enable = true;
type = "prettier";
};
lsp.enable = true;
treesitter.enable = true;
};
html = {
enable = true;
treesitter = {
enable = true;
autotagHtml = true;
};
};
markdown = {
enable = true;
extensions = {
markview-nvim.enable = true;
};
format = {
enable = true;
};
lsp = {
enable = true;
};
treesitter = {
enable = true;
};
};
2025-09-13 02:38:36 -04:00
nix = {
enable = true;
format = {
enable = true;
package = pkgs.nixfmt;
type = "nixfmt";
};
lsp = {
enable = true;
package = pkgs.nixd;
server = "nixd";
options = {
nixos = {
expr = "(builtins.getFlake (builtins.toString ./.)).nixosConfigurations.${host}.options";
};
home-manager = {
expr = "(builtins.getFlake (builtins.toString ./.)).nixosConfigurations.${host}.options.home-manager.users.type.getSubOptions []";
};
};
};
treesitter.enable = true;
};
python = {
enable = true;
dap = {
enable = true;
debugger = "debugpy";
};
format = {
enable = true;
type = "black-and-isort";
};
lsp = {
enable = true;
};
treesitter.enable = true;
};
2025-10-07 09:13:19 -04:00
tailwind = {
enable = true;
2025-10-07 09:13:19 -04:00
lsp.enable = true;
};
2025-10-07 09:13:19 -04:00
ts = {
enable = true;
2025-10-07 09:13:19 -04:00
extensions = {
ts-error-translator.enable = true;
};
extraDiagnostics.enable = true;
format = {
enable = true;
2025-10-07 09:13:19 -04:00
type = "prettier";
};
2025-10-07 09:13:19 -04:00
lsp.enable = true;
treesitter.enable = true;
};
2025-09-13 02:38:36 -04:00
};
utility = {
sleuth.enable = true;
multicursors.enable = true;
preview = {
markdownPreview = {
enable = true;
autoClose = true;
};
};
2025-09-13 02:38:36 -04:00
};
};
};
};
}