NixOS-Configs/home/common/nvf.nix
2025-08-17 22:11:09 -05:00

181 lines
4.5 KiB
Nix

{pkgs, ...}: {
home.packages = with pkgs; [tree-sitter fd ripgrep];
programs.nvf = {
enable = true;
enableManpages = true;
settings = {
vim = {
luaConfigPost = ''
vim.o.tabstop = 2
vim.o.shiftwidth = 2
vim.o.expandtab = true
vim.o.cursorline = true
vim.o.scrolloff = 10
vim.o.sidescrolloff = 8
'';
autocomplete.blink-cmp.enable = true;
binds = {
cheatsheet.enable = true;
};
dashboard.alpha = {
enable = true;
theme = "dashboard";
};
filetree.neo-tree = {enable = true;};
comments.comment-nvim.enable = true;
autopairs.nvim-autopairs.enable = true;
snippets.luasnip.enable = true;
visuals = {
fidget-nvim.enable = true;
highlight-undo.enable = true;
indent-blankline.enable = true;
};
terminal = {
toggleterm = {
enable = true;
lazygit = {
enable = true;
};
};
};
treesitter = {
enable = true;
context.enable = true;
fold = true;
autotagHtml.enable = true;
};
syntaxHighlighting = true;
keymaps = [
{
key = "<Tab>";
action = ":bnext<CR>";
mode = ["n"];
}
{
key = "<leader>t";
action = ":Telescope buffers<CR>";
mode = ["n"];
}
{
key = "<leader>T";
action = ":terminal<CR>";
mode = ["n"];
}
{
key = "<leader>e";
action = ":Neotree toggle<CR>";
mode = ["n"];
}
{
key = "<leader>ow";
action = ":ObsidianWorkspace<CR>";
mode = ["n"];
}
{
key = "<leader>od";
action = ":ObsidianDailies<CR>";
mode = ["n"];
}
{
key = "<leader>on";
action = ":ObsidianNew<CR>";
mode = ["n"];
}
{
key = "<leader>oN";
action = ":ObsidianNewFromTemplate<CR>";
mode = ["n"];
}
];
git = {
enable = true;
gitsigns.enable = true;
gitsigns.codeActions.enable = false;
neogit.enable = true;
};
languages = {
enableTreesitter = true;
enableFormat = true;
enableExtraDiagnostics = true;
bash.enable = true;
lua.enable = true;
go.enable = true;
python.enable = true;
markdown = {
enable = true;
extensions.render-markdown-nvim.enable = true;
};
nix.enable = true;
html.enable = true;
};
lsp = {
enable = true;
formatOnSave = true;
lspkind.enable = false;
lightbulb.enable = true;
lspsaga.enable = false;
trouble.enable = true;
};
minimap = {
minimap-vim.enable = false;
codewindow.enable = true;
};
notify = {
nvim-notify.enable = true;
};
options = {conceallevel = 1;};
statusline.lualine = {
enable = true;
theme = "catppuccin";
};
telescope.enable = true;
theme = {
enable = true;
name = "catppuccin";
style = "mocha";
transparent = false;
};
viAlias = true;
vimAlias = true;
notes = {
obsidian = {
enable = true;
setupOpts = {
legacy_commands = true;
ui.enable = false;
completion.nvim-cmp = true;
templates = {subdir = "Templates";};
daily_notes = {
date_format = "%Y-%m-%d";
folder = "Daily";
};
workspaces = [
{
name = "main";
path = "~/.obsidian/main";
}
{
name = "journal";
path = "~/.obsidian/journal";
}
{
name = "food";
path = "~/.obsidian/Food";
}
];
};
};
};
ui = {
breadcrumbs = {
enable = true;
navbuddy.enable = true;
};
};
};
};
};
}