272 lines
7.1 KiB
Nix
272 lines
7.1 KiB
Nix
{ user, home }:
|
|
{ inputs, ... }:
|
|
{
|
|
environment.persistence = {
|
|
"/persist/state"."${home}/.local/share/nvf" = { };
|
|
"/persist/cache"."${home}/.cache/nvf" = { };
|
|
};
|
|
|
|
home-manager.users.${user} = {
|
|
imports = [ inputs.nvf.homeManagerModules.default ];
|
|
|
|
programs = {
|
|
nvf = {
|
|
enable = true;
|
|
defaultEditor = true;
|
|
|
|
settings = {
|
|
vim = {
|
|
enableLuaLoader = true;
|
|
|
|
viAlias = true;
|
|
vimAlias = true;
|
|
|
|
# autocomplete = {
|
|
# blink-cmp.enable = true;
|
|
# enableSharedCmpSources = true;
|
|
# };
|
|
|
|
binds = {
|
|
hardtime-nvim.enable = true;
|
|
whichKey.enable = true;
|
|
};
|
|
|
|
clipboard = {
|
|
enable = true;
|
|
providers.wl-copy.enable = true;
|
|
registers = "unnamedplus";
|
|
};
|
|
|
|
comments = {
|
|
comment-nvim.enable = true;
|
|
};
|
|
|
|
# dashboard = {
|
|
# alpha.enable = true;
|
|
# };
|
|
|
|
filetree = {
|
|
neo-tree = {
|
|
enable = true;
|
|
setupOpts = {
|
|
git_status_async = true;
|
|
|
|
filesystem = {
|
|
position = "current";
|
|
hijack_netrw_behavior = "open_current";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
# formatter = {
|
|
# conform-nvim.enable = true;
|
|
# };
|
|
|
|
git = {
|
|
enable = true;
|
|
# git-conflict.enable = true;
|
|
gitsigns.enable = true;
|
|
# neogit.enable = true;
|
|
};
|
|
|
|
languages = {
|
|
enableDAP = true;
|
|
enableFormat = true;
|
|
enableTreesitter = true;
|
|
enableExtraDiagnostics = true;
|
|
|
|
assembly.enable = true;
|
|
bash.enable = true;
|
|
clang.enable = true;
|
|
csharp.enable = true;
|
|
css.enable = true;
|
|
go.enable = true;
|
|
html.enable = true;
|
|
java.enable = true;
|
|
lua.enable = true;
|
|
markdown.enable = true;
|
|
nix = {
|
|
enable = true;
|
|
format.type = "nixfmt";
|
|
};
|
|
php.enable = true;
|
|
python.enable = true;
|
|
rust.enable = true;
|
|
sql.enable = true;
|
|
svelte.enable = true;
|
|
ts.enable = true;
|
|
yaml.enable = true;
|
|
};
|
|
|
|
lsp = {
|
|
enable = true;
|
|
formatOnSave = true;
|
|
# nvim-docs-view.enable = true;
|
|
# otter-nvim.enable = true;
|
|
# trouble.enable = true;
|
|
};
|
|
|
|
# minimap = {
|
|
# codewindow.enable = true;
|
|
# };
|
|
|
|
notify = {
|
|
nvim-notify.enable = true;
|
|
};
|
|
|
|
options = {
|
|
tabstop = 2;
|
|
shiftwidth = 2;
|
|
expandtab = true;
|
|
smartindent = true;
|
|
};
|
|
|
|
# projects = {
|
|
# project-nvim.enable = true;
|
|
# };
|
|
|
|
searchCase = "smart";
|
|
|
|
# snippets = {
|
|
# luasnip.enable = true;
|
|
# };
|
|
|
|
tabline = {
|
|
nvimBufferline = {
|
|
enable = true;
|
|
setupOpts.options = {
|
|
show_close_icon = false;
|
|
show_buffer_close_icons = false;
|
|
};
|
|
};
|
|
};
|
|
|
|
telescope = {
|
|
enable = true;
|
|
};
|
|
|
|
terminal = {
|
|
toggleterm = {
|
|
enable = true;
|
|
setupOpts.winbar.enabled = false;
|
|
};
|
|
};
|
|
|
|
treesitter = {
|
|
enable = true;
|
|
context.enable = true;
|
|
fold = true;
|
|
textobjects.enable = true;
|
|
};
|
|
|
|
ui = {
|
|
# breadcrumbs = {
|
|
# enable = true;
|
|
# navbuddy.enable = true;
|
|
# };
|
|
colorizer.enable = true;
|
|
# fastaction.enable = true;
|
|
# illuminate.enable = true;
|
|
};
|
|
|
|
undoFile.enable = true;
|
|
|
|
utility = {
|
|
# diffview-nvim.enable = true;
|
|
# icon-picker.enable = true;
|
|
# images = {
|
|
# img-clip.enable = true;
|
|
# };
|
|
# mkdir.enable = true;
|
|
motion = {
|
|
precognition.enable = true;
|
|
};
|
|
# multicursors.enable = true;
|
|
# nvim-biscuits.enable = true;
|
|
# smart-splits.enable = true;
|
|
# surround.enable = true;
|
|
# undotree.enable = true;
|
|
# yazi-nvim.enable = true;
|
|
};
|
|
|
|
visuals = {
|
|
# cinnamon-nvim.enable = true;
|
|
# fidget-nvim.enable = true;
|
|
# highlight-undo.enable = true;
|
|
indent-blankline.enable = true;
|
|
nvim-cursorline.enable = true;
|
|
# nvim-scrollbar.enable = true;
|
|
nvim-web-devicons.enable = true;
|
|
};
|
|
keymaps = [
|
|
{
|
|
mode = [ "n" ];
|
|
key = "<C-b>";
|
|
action = "<C-b>zz";
|
|
silent = true;
|
|
noremap = true;
|
|
desc = "Page up and center";
|
|
}
|
|
{
|
|
mode = [ "n" ];
|
|
key = "<C-u>";
|
|
action = "<C-u>zz";
|
|
silent = true;
|
|
noremap = true;
|
|
desc = "Half-page up and center";
|
|
}
|
|
{
|
|
mode = [ "n" ];
|
|
key = "<C-d>";
|
|
action = "<C-d>zz";
|
|
silent = true;
|
|
noremap = true;
|
|
desc = "Half-page down and center";
|
|
}
|
|
{
|
|
mode = [ "n" ];
|
|
key = "<C-f>";
|
|
action = "<C-f>zz";
|
|
silent = true;
|
|
noremap = true;
|
|
desc = "Page down and center";
|
|
}
|
|
{
|
|
mode = [ "n" ];
|
|
key = "<leader>ww";
|
|
action = "<cmd>w<CR>";
|
|
silent = true;
|
|
desc = "Save";
|
|
}
|
|
{
|
|
mode = [ "n" ];
|
|
key = "<leader>wq";
|
|
action = "<cmd>wq<CR>";
|
|
silent = true;
|
|
desc = "Save & Quit";
|
|
}
|
|
{
|
|
mode = [ "n" ];
|
|
key = "<leader>ee";
|
|
action = "<cmd>Neotree toggle<CR>";
|
|
silent = true;
|
|
desc = "Toggle Neo-tree";
|
|
}
|
|
{
|
|
mode = [ "n" ];
|
|
key = "<leader>ef";
|
|
action = "<cmd>Neotree reveal<CR>";
|
|
silent = true;
|
|
desc = "Reveal file in Neo-tree";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
};
|
|
|
|
zsh.p10k.extraRightPromptElements = [ "vim_shell" ];
|
|
};
|
|
};
|
|
}
|