universe/home/programs/terminal/nvf.nix

168 lines
3.7 KiB
Nix
Raw Normal View History

2025-03-02 11:53:58 +00:00
{
pkgs,
config,
lib,
2025-03-02 19:00:36 +00:00
inputs,
2025-03-02 11:53:58 +00:00
...
}: let
inherit (config.lib.stylix) colors;
in {
2025-03-02 19:00:36 +00:00
imports = [
inputs.nvf.homeManagerModules.default
];
2025-03-02 11:53:58 +00:00
programs.nvf = {
enable = true;
settings.vim = {
useSystemClipboard = true;
viAlias = true;
vimAlias = true;
theme = {
enable = true;
name = "base16";
style = "dark";
base16-colors = {
inherit (colors) base00 base01 base02 base03 base04 base05 base06 base07;
inherit (colors) base08 base09 base0A base0B base0C base0D base0E base0F;
};
transparent = true;
};
options = {
tabstop = 2;
expandtab = true;
softtabstop = 2;
shiftwidth = 2;
};
lsp = {
formatOnSave = true;
};
visuals = {
nvim-scrollbar.enable = true;
nvim-web-devicons.enable = true;
nvim-cursorline.enable = true;
fidget-nvim.enable = true;
};
statusline.lualine.enable = true;
autopairs.nvim-autopairs.enable = true;
autocomplete.nvim-cmp.enable = true;
tabline = {
nvimBufferline = {
enable = true;
mappings = {
cycleNext = "<tab>";
};
setupOpts.options = {
numbers = {
_type = "lua-inline";
expr = ''
function(opts)
return string.format('%s', opts.id)
end
'';
};
};
};
};
ui = {
borders.enable = true;
colorizer.enable = true;
};
binds.whichKey.enable = true;
2025-03-09 09:18:19 +00:00
keymaps = [
{
key = "<leader>e";
mode = "n";
silent = true;
action = "<cmd>Neotree filesystem toggle left<CR>";
}
];
2025-03-02 11:53:58 +00:00
treesitter.context.enable = false;
dashboard = {
dashboard-nvim.enable = true;
};
languages = {
enableLSP = true;
enableTreesitter = true;
enableFormat = true;
nix.enable = true;
python = {
enable = true;
# lsp.server = "pyright";
};
go.enable = true;
bash.enable = true;
css.enable = true;
html.enable = true;
lua.enable = true;
2025-03-09 09:18:19 +00:00
ts = {
enable = true;
format.enable = true;
};
};
filetree.neo-tree = {
enable = true;
setupOpts = {
enableCursorhijack = true;
enable_git_status = true;
git_status_async = true;
open_files_in_last_window = true;
};
2025-03-02 11:53:58 +00:00
};
lazy.plugins = {
"vim-tmux-navigator" = {
package = pkgs.vimPlugins.vim-tmux-navigator;
setupModule = "vim-tmux-navigator";
cmd = [
"TmuxNavigateLeft"
"TmuxNavigateDown"
"TmuxNavigateUp"
"TmuxNavigateRight"
"TmuxNavigatePrevious"
"TmuxNavigatorProcessList"
];
keys = [
{
key = "<c-h>";
mode = "n";
action = "<cmd><C-U>TmuxNavigateLeft<cr>";
}
{
key = "<c-j>";
mode = "n";
action = "<cmd><C-U>TmuxNavigateDown<cr>";
}
{
key = "<c-k>";
mode = "n";
action = "<cmd><C-U>TmuxNavigateUp<cr>";
}
{
key = "<c-l>";
mode = "n";
action = "<cmd><C-U>TmuxNavigateRight<cr>";
}
{
key = "<c-\\>";
mode = "n";
action = "<cmd><C-U>TmuxNavigatePrevious<cr>";
}
];
};
};
};
};
}