Files
nixos-conf/modules/programs/neovim/neovim.nix
T
2026-07-31 01:20:08 +02:00

169 lines
3.6 KiB
Nix

{
nixvim,
pkgs,
...
}:
{
imports = [
nixvim.nixosModules.nixvim
./plugins
./keymaps.nix
./lsp.nix
];
programs.nixvim = {
enable = false;
defaultEditor = true;
clipboard.register = "unnamedplus";
opts = {
number = true;
relativenumber = true;
expandtab = true;
shiftwidth = 2;
smartindent = true;
tabstop = 2;
softtabstop = 2;
fillchars.eob = " ";
ignorecase = true;
smartcase = true;
mouse = "a";
};
# colorschemes.nightfox = {
# enable = true;
# settings = {
# # style = "moon";
# flavor = "carbonfox";
# options.transparent = true;
# styles = {
# sidebars = "transparent";
# floats = "transparent";
# };
# };
# };
colorschemes.base16 = {
enable = true;
settings = {
base00 = "11121d";
base01 = "282934";
base02 = "353747"; # slightly lighter than base01 (or reuse 282934)
base03 = "565b6b"; # comment color; you'll probably want to tweak this
base04 = "abb2bf";
base05 = "abb2bf";
base06 = "b2b9c6";
base07 = "ffffff";
base08 = "ee6d85";
base09 = "f3627a";
base0A = "dfae67";
base0B = "95c561";
base0C = "a485dd"; # no cyan in your palette, so purple works
base0D = "7199ee";
base0E = "a485dd";
base0F = "f3627a";
};
};
extraPlugins = [ pkgs.vimPlugins.boole-nvim ];
extraConfigLua = ''
require('boole').setup({
mappings = {
-- increment = '<C-a>',
decrement = '<C-x>'
},
allow_caps_additions = {
{'enable', 'disable'},
{'true', 'false'}
}
})
'';
plugins = {
lualine.enable = true;
bufferline = {
enable = true;
settings = {
options = {
show_buffer_close_icons = false;
show_close_icon = false;
};
};
};
yazi.enable = true;
cord = {
enable = true;
settings.display.theme = "atom";
};
neoscroll.enable = true;
telescope = {
enable = true;
enabledExtensions = [ "persisted" ];
};
which-key.enable = true;
flash.enable = true;
lsp.enable = true;
fugitive.enable = true;
treesitter = {
enable = true;
highlight.enable = true;
indent.enable = true;
settings.ensure_installed = "all";
};
gitsigns.enable = true;
nvim-autopairs = {
enable = true;
};
cmp = {
autoEnableSources = true;
settings.sources = [
{ name = "nvim_lsp"; }
{ name = "path"; }
{ name = "buffer"; }
];
};
persisted.enable = true;
render-markdown.enable = true;
transparent = {
enable = true;
autoLoad = true;
settings = {
groups = [
"Normal"
"NormalNC"
"Comment"
"Constant"
"Special"
"Identifier"
"Statement"
"PreProc"
"Type"
"Underlined"
"Todo"
"String"
"Function"
"Conditional"
"Repeat"
"Operator"
"Structure"
"LineNr"
"NonText"
"SignColumn"
"CursorLine"
"CursorLineNr"
"StatusLine"
"StatusLineNC"
"EndOfBuffer"
];
};
};
};
};
}