working NixVim!

This commit is contained in:
Charlie Root 2024-05-22 14:04:58 +02:00
commit 6513d61fa3
42 changed files with 774 additions and 454 deletions

62
flake.lock generated
View file

@ -261,11 +261,11 @@
"nixpkgs-stable": "nixpkgs-stable" "nixpkgs-stable": "nixpkgs-stable"
}, },
"locked": { "locked": {
"lastModified": 1716311169, "lastModified": 1716368878,
"narHash": "sha256-hCt9zCXnuvra2X0+fQiejAfpr6nNdR1hSfl63UxmVbM=", "narHash": "sha256-lo7AHe+F4+VJshf4AZWtXpnHUvJsrMJxnqCfeIBn/54=",
"owner": "nix-community", "owner": "nix-community",
"repo": "emacs-overlay", "repo": "emacs-overlay",
"rev": "04c759ffb7af09dbce3c9068c4da7f2f0343da89", "rev": "35e5b442c1602ed30b588addb66d3289f33dfb76",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -282,11 +282,11 @@
"rust-analyzer-src": "rust-analyzer-src" "rust-analyzer-src": "rust-analyzer-src"
}, },
"locked": { "locked": {
"lastModified": 1716272846, "lastModified": 1716359173,
"narHash": "sha256-MtL0YhG20cngHsS6PIdpA3bkLnSx6XJBd2V8R9RaEc4=", "narHash": "sha256-pYcjP6Gy7i6jPWrjiWAVV0BCQp+DdmGaI/k65lBb/kM=",
"owner": "nix-community", "owner": "nix-community",
"repo": "fenix", "repo": "fenix",
"rev": "063d7e5fac454edd35b7e2cedb6ca9fb1410c79b", "rev": "b6fc5035b28e36a98370d0eac44f4ef3fd323df6",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -920,11 +920,11 @@
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1716316196, "lastModified": 1716365376,
"narHash": "sha256-ynu+Ii1PTtnz4YdjP2CJbnxaie9aETNAds9lwDzeQus=", "narHash": "sha256-941FKboG8Wc/hb1wvrEEKnC4DwDlSLgrjRL+whgWwUU=",
"ref": "refs/heads/main", "ref": "refs/heads/main",
"rev": "e419ef1873de01b0762f7f1a411994170a4d8cab", "rev": "93fea890433ec11d7a915f5e0466b2e8b513e895",
"revCount": 4723, "revCount": 4724,
"submodules": true, "submodules": true,
"type": "git", "type": "git",
"url": "https://github.com/hyprwm/Hyprland" "url": "https://github.com/hyprwm/Hyprland"
@ -1276,11 +1276,11 @@
"nixpkgs": "nixpkgs_7" "nixpkgs": "nixpkgs_7"
}, },
"locked": { "locked": {
"lastModified": 1716315695, "lastModified": 1716366111,
"narHash": "sha256-F6mniYkD9gZTo8ufpjtKf16+63+xnnpbcfdB0rTGbfM=", "narHash": "sha256-1i1YJjeGBiIzBjZir1pQBwueHjRkpcPEsSrNbiyqMg4=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixpkgs-wayland", "repo": "nixpkgs-wayland",
"rev": "2b6362ef6935cf4b1514a4d4b1f29a7dd8a14b36", "rev": "088d7d9e7278f38cd9d01a4099e47fad5b1da66d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1307,11 +1307,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1716137900, "lastModified": 1716293225,
"narHash": "sha256-sowPU+tLQv8GlqtVtsXioTKeaQvlMz/pefcdwg8MvfM=", "narHash": "sha256-pU9ViBVE3XYb70xZx+jK6SEVphvt7xMTbm6yDIF4xPs=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "6c0b7a92c30122196a761b440ac0d46d3d9954f1", "rev": "3eaeaeb6b1e08a016380c279f8846e0bd8808916",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1355,11 +1355,11 @@
}, },
"nixpkgs_5": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1716137900, "lastModified": 1716293225,
"narHash": "sha256-sowPU+tLQv8GlqtVtsXioTKeaQvlMz/pefcdwg8MvfM=", "narHash": "sha256-pU9ViBVE3XYb70xZx+jK6SEVphvt7xMTbm6yDIF4xPs=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "6c0b7a92c30122196a761b440ac0d46d3d9954f1", "rev": "3eaeaeb6b1e08a016380c279f8846e0bd8808916",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1387,11 +1387,11 @@
}, },
"nixpkgs_7": { "nixpkgs_7": {
"locked": { "locked": {
"lastModified": 1716137900, "lastModified": 1716293225,
"narHash": "sha256-sowPU+tLQv8GlqtVtsXioTKeaQvlMz/pefcdwg8MvfM=", "narHash": "sha256-pU9ViBVE3XYb70xZx+jK6SEVphvt7xMTbm6yDIF4xPs=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "6c0b7a92c30122196a761b440ac0d46d3d9954f1", "rev": "3eaeaeb6b1e08a016380c279f8846e0bd8808916",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1448,11 +1448,11 @@
"treefmt-nix": "treefmt-nix_2" "treefmt-nix": "treefmt-nix_2"
}, },
"locked": { "locked": {
"lastModified": 1716294469, "lastModified": 1716326274,
"narHash": "sha256-1RdJkVa+axdzLhbeoWJoC3BPODxfx+/Rv7HE+e4CK/Y=", "narHash": "sha256-1LyTvpjb8Cmlg3TRnP56rvqK1WSNa518pD6F0tjgM+U=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "1c9f2a23a6cb9406c35980f4af1a4356f56771e9", "rev": "5d2e01495944dcf7cf7ee53a7074c4010165d756",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1463,11 +1463,11 @@
}, },
"nur": { "nur": {
"locked": { "locked": {
"lastModified": 1716316781, "lastModified": 1716375775,
"narHash": "sha256-ybuEOdUtk7/X9GjZp72npoSk5GHT+9jpL7aPoXaTu7A=", "narHash": "sha256-2X4zwYV6Xudaqo3IhlwsMAQT+bZHs2nBD8Gv3ENHqTg=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "83bfd9ae2490c05fac7381100a13211cd27c3109", "rev": "0ed3297ed7a3d5308db5a57ccd067beaf196e4a7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1832,11 +1832,11 @@
"nixpkgs": "nixpkgs_10" "nixpkgs": "nixpkgs_10"
}, },
"locked": { "locked": {
"lastModified": 1716025334, "lastModified": 1716362227,
"narHash": "sha256-ND9F+BJeyKaGZFu94SWIj6HtyZTzWf5qVyp3cI3a7Is=", "narHash": "sha256-o+OVh6c6CW6NNidCbRfdp+9JpERyzrAB/2Eaza0Q6r4=",
"owner": "Alexays", "owner": "Alexays",
"repo": "Waybar", "repo": "Waybar",
"rev": "8ad7c75d79f76c27a9c6b87460b79d1787c8855b", "rev": "35a9ca476dc2595c28fd1d3a34cc26be4f14077a",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -0,0 +1,18 @@
_: {
base01 = "#2c2e3e";
base00 = "#20202A";
base02 = "#3D4059";
base03 = "#313449";
base04 = "#63718b";
base05 = "#ced4df";
base06 = "#414560";
base07 = "#63718b";
base08 = "#ebb9b9";
base09 = "#e8cca7";
base0A = "#e6dfb8";
base0B = "#b1dba4";
base0C = "#b8dceb";
base0D = "#a3b8ef";
base0E = "#f6bbe7";
base0F = "#eAc1c1";
}

View file

@ -0,0 +1,18 @@
_: {
base00 = "#171B20";
base01 = "#21262e";
base02 = "#2b323b";
base03 = "#3c4453";
base04 = "#485263";
base05 = "#b6beca";
base06 = "#dee1e6";
base07 = "#dee1e6";
base08 = "#70A5EB";
base09 = "#e9a180";
base0A = "#f1cf8a";
base0B = "#78DBA9";
base0C = "#e26c7c";
base0D = "#86aaec";
base0E = "#c68aee";
base0F = "#9cd1ff";
}

View file

@ -0,0 +1,18 @@
_: {
base00 = "#101618";
base01 = "#232a2d";
base02 = "#2d3437";
base03 = "#404749";
base04 = "#4f5658";
base05 = "#cacaca";
base06 = "#d2d2d2";
base07 = "#dadada";
base08 = "#e57474";
base09 = "#e19d5c";
base0A = "#e5c76b";
base0B = "#8ccf7e";
base0C = "#71baf2";
base0D = "#67cbe7";
base0E = "#c47fd5";
base0F = "#ef7d7d";
}

View file

@ -0,0 +1,18 @@
_: {
base00 = "#2b3339";
base01 = "#323c41";
base02 = "#3a4248";
base03 = "#868d80";
base04 = "#d3c6aa";
base05 = "#d3c6aa";
base06 = "#e9e8d2";
base07 = "#fff9e8";
base08 = "#7fbbb3";
base09 = "#d699b6";
base0A = "#83c092";
base0B = "#dbbc7f";
base0C = "#e69875";
base0D = "#a7c080";
base0E = "#e67e80";
base0F = "#d699b6";
}

View file

@ -0,0 +1,18 @@
_: {
base00 = "#1e2122";
base01 = "#2c2f30";
base02 = "#36393a";
base03 = "#404344";
base04 = "#d4be98";
base05 = "#c0b196";
base06 = "#c3b499";
base07 = "#c7b89d";
base08 = "#ec6b64";
base09 = "#e78a4e";
base0A = "#e0c080";
base0B = "#a9b665";
base0C = "#86b17f";
base0D = "#7daea3";
base0E = "#d3869b";
base0F = "#d65d0e";
}

View file

@ -0,0 +1,18 @@
_: {
base00 = "#151515";
base01 = "#1c1c1c";
base02 = "#404040";
base03 = "#888888";
base04 = "#ddddbf";
base05 = "#e8e8d3";
base06 = "#eeeede";
base07 = "#f1f1e5";
base08 = "#cf6a4c";
base09 = "#d8ad4c";
base0A = "#d8ad4c";
base0B = "#99ad6a";
base0C = "#71b9f8";
base0D = "#597bc5";
base0E = "#c6b6ee";
base0F = "#d8ad4c";
}

View file

@ -0,0 +1,18 @@
_: {
base00 = "#0f0f0f";
base01 = "#151515";
base02 = "#191919";
base03 = "#323232";
base04 = "#535353";
base05 = "#f0f0f0";
base06 = "#d8d8d8";
base07 = "#414141";
base08 = "#ac8a8c";
base09 = "#d3d0ad";
base0A = "#ACA98A";
base0B = "#8aac8b";
base0C = "#9EC3C4";
base0D = "#8fb4b5";
base0E = "#C49EC4";
base0F = "#9d9a7b";
}

View file

@ -0,0 +1,18 @@
_: {
base00 = "#151515";
base01 = "#1F1F1F";
base02 = "#2E2E2E";
base03 = "#424242";
base04 = "#BBB6B6";
base05 = "#E8E3E3";
base06 = "#E8E3E3";
base07 = "#E8E3E3";
base08 = "#B66467";
base09 = "#D9BC8C";
base0A = "#D9BC8C";
base0B = "#8C977D";
base0C = "#8AA6A2";
base0D = "#8DA3B9";
base0E = "#A988B0";
base0F = "#BBB6B6";
}

View file

@ -0,0 +1,18 @@
_: {
base00 = "#1A1B26";
base01 = "#3b4261";
base02 = "#3b4261";
base03 = "#545c7e";
base04 = "#565c64";
base05 = "#a9b1d6";
base06 = "#bbc5f0";
base07 = "#c0caf5";
base08 = "#f7768e";
base09 = "#ff9e64";
base0A = "#e0af68";
base0B = "#9ece6a";
base0C = "#2ac3de";
base0D = "#7aa2f7";
base0E = "#9d7cd8";
base0F = "#9abdf5";
}

View file

@ -1,3 +1,3 @@
_:{ _: {
imports = [./nixvim.nix ]; imports = [./nixvim.nix];
} }

View file

@ -0,0 +1,121 @@
{
config,
lib,
...
}: let
colors = import ./colors/${config.theme}.nix {};
in {
config = lib.mkIf config.colorschemes.base16.enable {
highlight = {
CursorLine = {
fg = "none";
bg = "none";
};
CursorLineNr = {
fg = "none";
bg = "none";
};
AlphaHeader = {
fg = colors.base0E;
bg = "none";
};
StatusNormal = {
bg = "none";
fg = "none";
};
TelescopePromptBorder = {
fg = colors.base01;
bg = colors.base01;
};
TelescopePromptNormal = {
fg = "none";
bg = colors.base01;
};
TelescopePromptPrefix = {
fg = colors.base08;
bg = colors.base01;
};
TelescopeSelection = {
fg = "none";
bg = colors.base01;
};
Pmenu = {
fg = "none";
bg = colors.base01;
};
PmenuSbar = {
fg = "none";
bg = colors.base01;
};
PmenuThumb = {
fg = "none";
bg = colors.base01;
};
PmenuSel = {
fg = "none";
bg = colors.base02;
};
CmpItemAbbrMatch = {
fg = colors.base05;
bg = "none";
};
CmpItemAbbrMatchFuzzy = {
fg = colors.base05;
bg = "none";
};
CmpItemAbbr = {
fg = colors.base03;
bg = "none";
};
CmpItemKind = {
fg = colors.base0E;
bg = "none";
};
CmpItemMenu = {
fg = colors.base0E;
bg = "none";
};
CmpItemKindSnippet = {
fg = colors.base0E;
bg = "none";
};
VertSplit = {
fg = colors.base01;
bg = "none";
};
FloatBorder = {
fg = colors.base01;
bg = colors.base01;
};
NormalFloat = {
fg = "none";
bg = colors.base01;
};
LineNr = {
fg = colors.base03;
bg = "none";
};
NoiceCmdlinePopup = {
fg = colors.base04;
bg = colors.base01;
};
NoiceCmdlinePopupBorder = {
fg = colors.base01;
bg = colors.base01;
};
NoiceCmdlinePopupBorderSearch = {
fg = colors.base01;
bg = colors.base01;
};
};
};
}

View file

@ -1,408 +1,408 @@
{ {
programs.nixvim = { programs.nixvim = {
globals.mapleader = " "; globals.mapleader = " ";
keymaps = [ keymaps = [
{ {
mode = "n"; mode = "n";
key = "<leader>f"; key = "<leader>f";
action = "+find/file"; action = "+find/file";
desc = "Find a file"; options.desc = "Find a file";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>s"; key = "<leader>s";
action = "+search"; action = "+search";
desc = "Search in your file"; options.desc = "Search in your file";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>q"; key = "<leader>q";
action = "+quit/session"; action = "+quit/session";
desc = "Quit the current session"; options.desc = "Quit the current session";
} }
{ {
mode = ["n" "v"]; mode = ["n" "v"];
key = "<leader>g"; key = "<leader>g";
action = "+git"; action = "+git";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>u"; key = "<leader>u";
action = "+ui"; action = "+ui";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>w"; key = "<leader>w";
action = "+windows"; action = "+windows";
} }
{ {
mode = "n"; mode = "n";
key = "<leader><Tab>"; key = "<leader><Tab>";
action = "+tab"; action = "+tab";
} }
{ {
mode = ["n" "v"]; mode = ["n" "v"];
key = "<leader>d"; key = "<leader>d";
action = "+debug"; action = "+debug";
} }
{ {
mode = ["n" "v"]; mode = ["n" "v"];
key = "<leader>c"; key = "<leader>c";
action = "+code"; action = "+code";
} }
{ {
mode = ["n" "v"]; mode = ["n" "v"];
key = "<leader>t"; key = "<leader>t";
action = "+test"; action = "+test";
} }
# Tabs # Tabs
{ {
mode = "n"; mode = "n";
key = "<leader><tab><tab>"; key = "<leader><tab><tab>";
action = "<cmd>tabnew<cr>"; action = "<cmd>tabnew<cr>";
options = { options = {
silent = true; silent = true;
desc = "New Tab"; desc = "New Tab";
}; };
} }
{ {
mode = "n"; mode = "n";
key = "<leader><tab>d"; key = "<leader><tab>d";
action = "<cmd>tabclose<cr>"; action = "<cmd>tabclose<cr>";
options = { options = {
silent = true; silent = true;
desc = "Close tab"; desc = "Close tab";
}; };
} }
# Windows # Windows
{ {
mode = "n"; mode = "n";
key = "<leader>ww"; key = "<leader>ww";
action = "<C-W>p"; action = "<C-W>p";
options = { options = {
silent = true; silent = true;
desc = "Other window"; desc = "Other window";
}; };
} }
{ {
mode = "n"; mode = "n";
key = "<leader>wd"; key = "<leader>wd";
action = "<C-W>c"; action = "<C-W>c";
options = { options = {
silent = true; silent = true;
desc = "Delete window"; desc = "Delete window";
}; };
} }
{ {
mode = "n"; mode = "n";
key = "<leader>w-"; key = "<leader>w-";
action = "<C-W>s"; action = "<C-W>s";
options = { options = {
silent = true; silent = true;
desc = "Split window below"; desc = "Split window below";
}; };
} }
{ {
mode = "n"; mode = "n";
key = "<leader>w|"; key = "<leader>w|";
action = "<C-W>v"; action = "<C-W>v";
options = { options = {
silent = true; silent = true;
desc = "Split window right"; desc = "Split window right";
}; };
} }
{ {
mode = "n"; mode = "n";
key = "<C-h>"; key = "<C-h>";
action = "<C-W>h"; action = "<C-W>h";
options = { options = {
silent = true; silent = true;
desc = "Move to window left"; desc = "Move to window left";
}; };
} }
{ {
mode = "n"; mode = "n";
key = "<C-l>"; key = "<C-l>";
action = "<C-W>l"; action = "<C-W>l";
options = { options = {
silent = true; silent = true;
desc = "Move to window right"; desc = "Move to window right";
}; };
} }
{ {
mode = "n"; mode = "n";
key = "<C-k>"; key = "<C-k>";
action = "<C-W>k"; action = "<C-W>k";
options = { options = {
silent = true; silent = true;
desc = "Move to window over"; desc = "Move to window over";
}; };
} }
{ {
mode = "n"; mode = "n";
key = "<C-j>"; key = "<C-j>";
action = "<C-W>j"; action = "<C-W>j";
options = { options = {
silent = true; silent = true;
desc = "Move to window bellow"; desc = "Move to window bellow";
}; };
} }
{ {
mode = "n"; mode = "n";
key = "<C-s>"; key = "<C-s>";
action = "<cmd>w<cr><esc>"; action = "<cmd>w<cr><esc>";
options = { options = {
silent = true; silent = true;
desc = "Save file"; desc = "Save file";
}; };
} }
# Quit/Session # Quit/Session
{ {
mode = "n"; mode = "n";
key = "<leader>qq"; key = "<leader>qq";
action = "<cmd>quitall<cr><esc>"; action = "<cmd>quitall<cr><esc>";
options = { options = {
silent = true; silent = true;
desc = "Quit all"; desc = "Quit all";
}; };
} }
{ {
mode = "n"; mode = "n";
key = "<leader>ul"; key = "<leader>ul";
action = ":lua ToggleLineNumber()<cr>"; action = ":lua ToggleLineNumber()<cr>";
options = { options = {
silent = true; silent = true;
desc = "Toggle Line Numbers"; desc = "Toggle Line Numbers";
}; };
} }
{ {
mode = "n"; mode = "n";
key = "<leader>uL"; key = "<leader>uL";
action = ":lua ToggleRelativeLineNumber()<cr>"; action = ":lua ToggleRelativeLineNumber()<cr>";
options = { options = {
silent = true; silent = true;
desc = "Toggle Relative Line Numbers"; desc = "Toggle Relative Line Numbers";
}; };
} }
{ {
mode = "n"; mode = "n";
key = "<leader>uw"; key = "<leader>uw";
action = ":lua ToggleWrap()<cr>"; action = ":lua ToggleWrap()<cr>";
options = { options = {
silent = true; silent = true;
desc = "Toggle Line Wrap"; desc = "Toggle Line Wrap";
}; };
} }
{ {
mode = "v"; mode = "v";
key = "J"; key = "J";
action = ":m '>+1<CR>gv=gv"; action = ":m '>+1<CR>gv=gv";
options = {desc = "Use move command when line is highlighted ";}; options = {desc = "Use move command when line is highlighted ";};
} }
{ {
mode = "v"; mode = "v";
key = "K"; key = "K";
action = ":m '>-2<CR>gv=gv"; action = ":m '>-2<CR>gv=gv";
options = {desc = "Use move command when line is highlighted ";}; options = {desc = "Use move command when line is highlighted ";};
} }
{ {
mode = "n"; mode = "n";
key = "J"; key = "J";
action = "mzJ`z"; action = "mzJ`z";
options = { options = {
desc = "Allow cursor to stay in the same place after appending to current line "; desc = "Allow cursor to stay in the same place after appending to current line ";
}; };
} }
{ {
mode = "n"; mode = "n";
key = "<C-d>"; key = "<C-d>";
action = "<C-d>zz"; action = "<C-d>zz";
options = { options = {
desc = "Allow C-d and C-u to keep the cursor in the middle"; desc = "Allow C-d and C-u to keep the cursor in the middle";
}; };
} }
{ {
mode = "n"; mode = "n";
key = "<C-u>"; key = "<C-u>";
action = "<C-u>zz"; action = "<C-u>zz";
options = { options = {
desc = "Allow C-d and C-u to keep the cursor in the middle"; desc = "Allow C-d and C-u to keep the cursor in the middle";
}; };
} }
{ {
mode = "n"; mode = "n";
key = "n"; key = "n";
action = "nzzzv"; action = "nzzzv";
options = {desc = "Allow search terms to stay in the middle ";}; options = {desc = "Allow search terms to stay in the middle ";};
} }
{ {
mode = "n"; mode = "n";
key = "N"; key = "N";
action = "Nzzzv"; action = "Nzzzv";
options = {desc = "Allow search terms to stay in the middle ";}; options = {desc = "Allow search terms to stay in the middle ";};
} }
# Paste stuff without saving the deleted word into the buffer # Paste stuff without saving the deleted word into the buffer
{ {
mode = "x"; mode = "x";
key = "<leader>p"; key = "<leader>p";
action = ''"_dP''; action = ''"_dP'';
options = {desc = "Deletes to void register and paste over";}; options = {desc = "Deletes to void register and paste over";};
} }
# Copy stuff to system clipboard with <leader> + y or just y to have it just in vim # Copy stuff to system clipboard with <leader> + y or just y to have it just in vim
{ {
mode = ["n" "v"]; mode = ["n" "v"];
key = "<leader>y"; key = "<leader>y";
action = ''"+y''; action = ''"+y'';
options = {desc = "Copy to system clipboard";}; options = {desc = "Copy to system clipboard";};
} }
{ {
mode = ["n" "v"]; mode = ["n" "v"];
key = "<leader>Y"; key = "<leader>Y";
action = ''"+Y''; action = ''"+Y'';
options = {desc = "Copy to system clipboard";}; options = {desc = "Copy to system clipboard";};
} }
# Delete to void register # Delete to void register
{ {
mode = ["n" "v"]; mode = ["n" "v"];
key = "<leader>D"; key = "<leader>D";
action = ''"_d''; action = ''"_d'';
options = {desc = "Delete to void register";}; options = {desc = "Delete to void register";};
} }
# <C-c> instead of pressing esc just because # <C-c> instead of pressing esc just because
{ {
mode = "i"; mode = "i";
key = "<C-c>"; key = "<C-c>";
action = "<Esc>"; action = "<Esc>";
} }
{ {
mode = "n"; mode = "n";
key = "<leader>zz"; key = "<leader>zz";
action = "<CMD> ZenMode | Pencil<CR>"; action = "<CMD> ZenMode | Pencil<CR>";
options = {desc = "Toggle writting mode";}; options = {desc = "Toggle writting mode";};
} }
{ {
mode = "n"; mode = "n";
key = "<leader>m"; key = "<leader>m";
action = "<CMD> Grapple toggle <CR>"; action = "<CMD> Grapple toggle <CR>";
options = {desc = "Grapple Toggle tag";}; options = {desc = "Grapple Toggle tag";};
} }
{ {
mode = "n"; mode = "n";
key = "<leader>k"; key = "<leader>k";
action = "<CMD> Grapple toggle_tags <CR>"; action = "<CMD> Grapple toggle_tags <CR>";
options = {desc = "Grapple Toggle tag";}; options = {desc = "Grapple Toggle tag";};
} }
{ {
mode = "n"; mode = "n";
key = "<leader>K"; key = "<leader>K";
action = "<CMD> Grapple toggle_scopes <CR>"; action = "<CMD> Grapple toggle_scopes <CR>";
options = {desc = "Grapple Toggle scopes";}; options = {desc = "Grapple Toggle scopes";};
} }
{ {
mode = "n"; mode = "n";
key = "<leader>j"; key = "<leader>j";
action = "<CMD> Grapple cycle forward <CR>"; action = "<CMD> Grapple cycle forward <CR>";
options = {desc = "Grapple Cycle forward";}; options = {desc = "Grapple Cycle forward";};
} }
{ {
mode = "n"; mode = "n";
key = "<leader>J"; key = "<leader>J";
action = "<CMD> Grapple cycle backward <CR>"; action = "<CMD> Grapple cycle backward <CR>";
options = {desc = "Grapple Cycle backward";}; options = {desc = "Grapple Cycle backward";};
} }
{ {
mode = "n"; mode = "n";
key = "<leader>1"; key = "<leader>1";
action = "<CMD> Grapple select index=1<CR>"; action = "<CMD> Grapple select index=1<CR>";
options = {desc = "Grapple Select 1";}; options = {desc = "Grapple Select 1";};
} }
{ {
mode = "n"; mode = "n";
key = "<leader>2"; key = "<leader>2";
action = "<CMD> Grapple select index=2<CR>"; action = "<CMD> Grapple select index=2<CR>";
options = {desc = "Grapple Select 2";}; options = {desc = "Grapple Select 2";};
} }
{ {
mode = "n"; mode = "n";
key = "<leader>3"; key = "<leader>3";
action = "<CMD> Grapple select index=3<CR>"; action = "<CMD> Grapple select index=3<CR>";
options = {desc = "Grapple Select 3";}; options = {desc = "Grapple Select 3";};
} }
{ {
mode = "n"; mode = "n";
key = "<leader>4"; key = "<leader>4";
action = "<CMD> Grapple select index=4<CR>"; action = "<CMD> Grapple select index=4<CR>";
options = {desc = "Grapple Select 4";}; options = {desc = "Grapple Select 4";};
} }
]; ];
extraConfigLua = '' extraConfigLua = ''
function ToggleLineNumber() function ToggleLineNumber()
if vim.wo.number then if vim.wo.number then
vim.wo.number = false vim.wo.number = false
else else
vim.wo.number = true vim.wo.number = true
vim.wo.relativenumber = false
end
end
function ToggleRelativeLineNumber()
if vim.wo.relativenumber then
vim.wo.relativenumber = false vim.wo.relativenumber = false
else end
vim.wo.relativenumber = true end
vim.wo.number = false
end
end
function ToggleWrap() function ToggleRelativeLineNumber()
vim.wo.wrap = not vim.wo.wrap if vim.wo.relativenumber then
end vim.wo.relativenumber = false
''; else
}; vim.wo.relativenumber = true
vim.wo.number = false
end
end
function ToggleWrap()
vim.wo.wrap = not vim.wo.wrap
end
'';
};
} }

View file

@ -1,9 +1,13 @@
{ config, lib, ... }: {
let cfg = config.modules.editors.nixvim; config,
lib,
...
}: let
cfg = config.modules.editors.nixvim;
in { in {
options.modules.editors.nixvim.enable = lib.mkEnableOption "nixvim"; options.modules.editors.nixvim.enable = lib.mkEnableOption "nixvim";
imports = [ imports = [
#./keys.nix ./keys.nix
./settings.nix ./settings.nix
./plug/completion/cmp.nix ./plug/completion/cmp.nix
#./plug/completion/copilot-cmp.nix #./plug/completion/copilot-cmp.nix
@ -30,7 +34,7 @@ in {
./plug/treesitter/treesitter-textobjects.nix ./plug/treesitter/treesitter-textobjects.nix
./plug/treesitter/treesitter.nix ./plug/treesitter/treesitter.nix
#./plug/ui/alpha.nix ./plug/ui/alpha.nix
./plug/ui/btw.nix ./plug/ui/btw.nix
./plug/ui/bufferline.nix ./plug/ui/bufferline.nix
./plug/ui/noice.nix ./plug/ui/noice.nix
@ -38,7 +42,7 @@ in {
./plug/ui/telescope.nix ./plug/ui/telescope.nix
./plug/utils/comment.nix ./plug/utils/comment.nix
./plug/utils/copilot.nix #./plug/utils/copilot.nix
./plug/utils/flash.nix ./plug/utils/flash.nix
./plug/utils/hardtime.nix ./plug/utils/hardtime.nix
#./plug/utils/harpoon.nix #./plug/utils/harpoon.nix
@ -49,15 +53,18 @@ in {
./plug/utils/undotree.nix ./plug/utils/undotree.nix
./plug/utils/ufo.nix ./plug/utils/ufo.nix
./plug/utils/whichkey.nix ./plug/utils/whichkey.nix
]; ];
config = lib.mkIf cfg.enable { options = {
programs.nixvim = { theme = lib.mkOption {
enable = true; default = "gruvbox";
colorschemes.gruvbox = { type = lib.types.enum ["paradise" "decay" "mountain" "tokyonight" "everforest" "everblush" "jellybeans" "aquarium" "gruvbox"];
enable = true;
settings.transparent_mode = true;
};
}; };
}; };
config = lib.mkIf cfg.enable {
programs.nixvim.enable = true;
theme = "gruvbox";
programs.nixvim.extraConfigLua = ''
_G.theme = "${config.theme}"
'';
};
} }

View file

@ -1,5 +1,6 @@
{ {
programs.nixvim.plugins = { programs.nixvim = {
plugins = {
cmp-emoji = {enable = true;}; cmp-emoji = {enable = true;};
cmp = { cmp = {
enable = true; enable = true;
@ -117,4 +118,5 @@
-- end -- end
-- } -- }
}) ''; }) '';
};
} }

View file

@ -1,5 +1,6 @@
{ {
programs.nixvim.plugins.gitsigns = { programs.nixvim = {
plugins.gitsigns = {
enable = true; enable = true;
settings = { settings = {
trouble = true; trouble = true;
@ -73,4 +74,5 @@
}; };
} }
]; ];
};
} }

View file

@ -1,4 +1,5 @@
{ {
programs.nixvim = {
plugins.none-ls = { plugins.none-ls = {
enable = true; enable = true;
enableLspFormat = true; enableLspFormat = true;
@ -47,4 +48,5 @@
}; };
} }
]; ];
};
} }

View file

@ -1,5 +1,5 @@
{ {
plugins.trouble = { programs.nixvim.plugins.trouble = {
enable = true; enable = true;
}; };
} }

View file

@ -1,5 +1,5 @@
{pkgs, ...}: { {pkgs, ...}: {
plugins.luasnip = { programs.nixvim.plugins.luasnip = {
enable = true; enable = true;
extraConfig = { extraConfig = {
enable_autosnippets = true; enable_autosnippets = true;

View file

@ -1,30 +1,30 @@
{ {
plugins.lualine = { programs.nixvim.plugins.lualine = {
enable = true; enable = true;
globalstatus = true; globalstatus = true;
disabledFiletypes = { disabledFiletypes = {
statusline = ["dashboard" "alpha" "starter"]; statusline = ["dashboard" "alpha" "starter"];
}; };
theme = { # theme = {
normal = { # normal = {
a = { # a = {
bg = "#b4befe"; # bg = "#b4befe";
fg = "#1c1d21"; # fg = "#1c1d21";
}; # };
b = { # b = {
bg = "nil"; # bg = "nil";
}; # };
c = { # c = {
bg = "nil"; # bg = "nil";
}; # };
z = { # z = {
bg = "nil"; # bg = "nil";
}; # };
y = { # y = {
bg = "nil"; # bg = "nil";
}; # };
}; # };
}; # };
sections = { sections = {
lualine_a = [ lualine_a = [
{ {

View file

@ -1,5 +1,5 @@
{ {
plugins.treesitter-context = { programs.nixvim.plugins.treesitter-context = {
enable = true; enable = true;
}; };
} }

View file

@ -1,5 +1,5 @@
{ {
plugins.treesitter-textobjects = { programs.nixvim.plugins.treesitter-textobjects = {
enable = false; enable = false;
select = { select = {
enable = true; enable = true;

View file

@ -10,6 +10,7 @@
}; };
}; };
in { in {
programs.nixvim = {
filetype.extension.liq = "liquidsoap"; filetype.extension.liq = "liquidsoap";
filetype.extension.nu = "nu"; filetype.extension.nu = "nu";
@ -41,4 +42,5 @@ in {
filetype = "nu", filetype = "nu",
} }
''; '';
};
} }

View file

@ -1,19 +1,22 @@
{ {
programs.nixvim = {
plugins.alpha = let plugins.alpha = let
nixFlake = [ nixFlake = [
" " ""
" " ""
" " ""
" " ""
" " ""
" " ""
" " ""
" " ""
" " ""
" " ""
" " ""
" " ""
" git@github.com:elythh " ""
""
""
]; ];
in { in {
enable = true; enable = true;
@ -86,4 +89,5 @@
} }
]; ];
}; };
};
} }

View file

@ -1,4 +1,5 @@
{pkgs, ...}: { {pkgs, ...}: {
programs.nixvim = {
extraPlugins = with pkgs.vimUtils; [ extraPlugins = with pkgs.vimUtils; [
(buildVimPlugin { (buildVimPlugin {
pname = "btw.nvim"; pname = "btw.nvim";
@ -17,4 +18,5 @@
text = "I use Neovim (and NixOS, BTW)", text = "I use Neovim (and NixOS, BTW)",
}) })
''; '';
};
} }

View file

@ -5,11 +5,12 @@
}: let }: let
colors = import ../../colors/${config.theme}.nix {}; colors = import ../../colors/${config.theme}.nix {};
in { in {
programs.nixvim = {
plugins = { plugins = {
bufferline = { bufferline = {
enable = true; enable = true;
separatorStyle = "thick"; # “slant”, “padded_slant”, “slope”, “padded_slope”, “thick”, “thin” separatorStyle = "thick"; # “slant”, “padded_slant”, “slope”, “padded_slope”, “thick”, “thin”
highlights = lib.mkIf config.colorschemes.base16.enable { highlights = {
fill = { fill = {
fg = colors.base00; fg = colors.base00;
bg = colors.base00; bg = colors.base00;
@ -172,4 +173,5 @@ in {
}; };
} }
]; ];
};
} }

View file

@ -1,5 +1,5 @@
{ {
plugins.noice = { programs.nixvim.plugins.noice = {
enable = true; enable = true;
notify = { notify = {
enabled = false; enabled = false;

View file

@ -1,4 +1,5 @@
{ {
programs.nixvim = {
plugins.notify = { plugins.notify = {
enable = true; enable = true;
backgroundColour = "#000000"; backgroundColour = "#000000";
@ -42,4 +43,5 @@
return notify(message, level, merged_opts) return notify(message, level, merged_opts)
end end
''; '';
};
} }

View file

@ -1,4 +1,5 @@
{ {
programs.nixvim = {
plugins.telescope = { plugins.telescope = {
enable = true; enable = true;
extensions = { extensions = {
@ -207,4 +208,5 @@
} }
} }
''; '';
};
} }

View file

@ -1,5 +1,5 @@
{ {
plugins.comment = { programs.nixvim.plugins.comment = {
enable = true; enable = true;
}; };
} }

View file

@ -10,6 +10,7 @@
hash = "sha256-Q+g81BQVQTY5J2c2ZWB7bjJLuNSdI0PAan+75YJ7mI0="; hash = "sha256-Q+g81BQVQTY5J2c2ZWB7bjJLuNSdI0PAan+75YJ7mI0=";
}; };
in { in {
programs.nixvim = {
extraPlugins = with pkgs.vimUtils; [ extraPlugins = with pkgs.vimUtils; [
(buildVimPlugin { (buildVimPlugin {
pname = "copilotchat"; pname = "copilotchat";
@ -53,4 +54,5 @@ in {
action = "<cmd>CopilotChatCommit<cr>"; action = "<cmd>CopilotChatCommit<cr>";
} }
]; ];
};
} }

View file

@ -1,4 +1,5 @@
{ {
programs.nixvim = {
plugins.flash = { plugins.flash = {
enable = true; enable = true;
labels = "asdfghjklqwertyuiopzxcvbnm"; labels = "asdfghjklqwertyuiopzxcvbnm";
@ -53,4 +54,5 @@
}; };
} }
]; ];
};
} }

View file

@ -1,4 +1,5 @@
{pkgs, ...}: { {pkgs, ...}: {
programs.nixvim = {
extraPlugins = with pkgs.vimUtils; [ extraPlugins = with pkgs.vimUtils; [
(buildVimPlugin { (buildVimPlugin {
pname = "grapple.nvim"; pname = "grapple.nvim";
@ -17,4 +18,5 @@
scope = "git_branch", scope = "git_branch",
}) })
''; '';
};
} }

View file

@ -1,5 +1,5 @@
{ {
plugins.hardtime = { programs.nixvim.plugins.hardtime = {
enable = true; enable = true;
enabled = true; enabled = true;
disableMouse = true; disableMouse = true;

View file

@ -1,5 +1,5 @@
{ {
plugins.harpoon = { programs.nixvim.plugins.harpoon = {
enable = true; enable = true;
enableTelescope = true; enableTelescope = true;
keymapsSilent = true; keymapsSilent = true;

View file

@ -1,5 +1,5 @@
{ {
plugins.illuminate = { programs.nixvim.plugins.illuminate = {
enable = true; enable = true;
underCursor = false; underCursor = false;
filetypesDenylist = [ filetypesDenylist = [

View file

@ -1,5 +1,5 @@
{ {
plugins.nvim-autopairs = { programs.nixvim.plugins.nvim-autopairs = {
enable = true; enable = true;
}; };
} }

View file

@ -1,4 +1,5 @@
{ {
programs.nixvim = {
plugins.oil = { plugins.oil = {
enable = true; enable = true;
settings = { settings = {
@ -47,4 +48,5 @@
}; };
} }
]; ];
};
} }

View file

@ -1,5 +1,5 @@
{ {
plugins.nvim-ufo = { programs.nixvim.plugins.nvim-ufo = {
enable = true; enable = true;
}; };
} }

View file

@ -1,4 +1,5 @@
{ {
programs.nixvim = {
plugins.undotree = { plugins.undotree = {
enable = true; enable = true;
settings = { settings = {
@ -17,4 +18,5 @@
}; };
} }
]; ];
};
} }

View file

@ -1,5 +1,5 @@
{ {
plugins.which-key = { programs.nixvim.plugins.which-key = {
enable = true; enable = true;
}; };
} }

View file

@ -36,7 +36,7 @@ in {
applications = 0.9; applications = 0.9;
popups = 0.9; popups = 0.9;
desktop = 0.9; desktop = 0.9;
terminal = 0.9; terminal = 0.85;
}; };
cursor = { cursor = {
package = pkgs.bibata-cursors; package = pkgs.bibata-cursors;