nixbook: nixvim

nixbook: add more nixvim plugins
This commit is contained in:
Tristan 2024-07-30 13:29:13 +01:00 committed by tristan
parent 1868511631
commit 55a7e151d4
9 changed files with 470 additions and 193 deletions

View file

@ -4,8 +4,11 @@
user,
userFullname,
...
}: modules: home-modules: let
inherit (inputs) home-manager nixpkgs sops-nix;
}: {
nixos-modules ? [],
home-modules ? [],
}: let
inherit (inputs) home-manager nixpkgs sops-nix nixvim;
in
nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;};
@ -13,9 +16,8 @@ in
inherit system;
modules =
modules
nixos-modules
++ [
../nixos/modules/podman.nix
home-manager.nixosModules.home-manager
sops-nix.nixosModules.sops
{
@ -25,6 +27,7 @@ in
users.${user}.imports =
home-modules
++ [
nixvim.homeManagerModules.nixvim
../home/.
{
options.home.userFullname = nixpkgs.lib.mkOption {default = userFullname;};

106
lib/nixvim.nix Normal file
View file

@ -0,0 +1,106 @@
{
globals = {
mapleader = " ";
};
opts = {
number = true;
relativenumber = true;
tabstop = 2;
shiftwidth = 2;
expandtab = true;
smartindent = true;
scrolloff = 4;
undofile = true;
};
extraConfigLua = ''
vim.o.undodir = vim.fn.expand("$HOME/.local/share/nvim/undo")
'';
keymaps = [
{
key = "<C-c>";
action = ''"+y'';
}
{
key = "gl";
action = "g$";
}
{
key = "gh";
action = "g0";
}
{
key = "<leader>ggs";
action = ":Gitsigns stage_hunk<CR>";
}
{
key = "<leader>ggb";
action = ":Gitsigns blame<CR>";
}
{
key = "<leader>ggg";
action = ":LazyGit<CR>";
}
];
plugins = {
bufferline.enable = true;
surround.enable = true;
comment.enable = true;
markdown-preview.enable = true;
treesitter.enable = true;
telescope = {
enable = true;
keymaps = {
"<leader>fg" = "live_grep";
"<leader>/" = "live_grep";
"<leader>ff" = "find_files";
"<leader>fb" = "buffers";
"<leader>fh" = "help_tags";
"<leader>:" = "commands";
};
};
lsp = {
enable = true;
servers = {
tsserver.enable = true;
nixd.enable = true;
};
keymaps = {
lspBuf = {
"K" = "hover";
"<leader>a" = "code_action";
"gd" = "definition";
};
diagnostic = {
"<leader>e" = "open_float";
};
};
};
cmp = {
enable = true;
autoEnableSources = true;
};
cmp-nvim-lsp.enable = true;
cmp-path.enable = true;
ts-autotag.enable = true;
gitsigns.enable = true;
git-worktree = {
enable = true;
enableTelescope = true;
};
lazygit.enable = true;
which-key.enable = true;
toggleterm = {
enable = true;
settings = {open_mapping = "[[<c-`>]]";};
};
};
}