-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathflake.nix
121 lines (120 loc) · 3.79 KB
/
flake.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
{
description = "Andy's Neovim Config";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nvf.url = "github:notashelf/nvf";
};
outputs =
{
self,
nvf,
nixpkgs,
...
}:
let
supportedSystems = [
"x86_64-linux"
"x86_64-darwin"
];
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
packages = forAllSystems (
system:
let
pkgs = nixpkgs.legacyPackages.${system};
in
{
configuredNvim =
(nvf.lib.neovimConfiguration {
inherit pkgs;
modules = [
{
vim = {
theme = {
enable = true;
name = "rose-pine";
style = "main";
};
languages = {
enableLSP = true;
enableTreesitter = true;
go.enable = true;
ts.enable = true;
nix.enable = true;
rust.enable = true;
clang.enable = true;
python.enable = true;
markdown.enable = true;
};
ui = {
borders.enable = true;
illuminate.enable = true;
};
comments = {
comment-nvim.enable = true;
};
statusline.lualine.enable = true;
autocomplete.nvim-cmp.enable = true;
telescope.enable = true;
options.conceallevel = 2;
startPlugins = with pkgs.vimPlugins; [
nvim-cmp
plenary-nvim
];
lazy.plugins = {
"harpoon2" = {
package = pkgs.vimPlugins.harpoon2;
setupModule = "harpoon";
};
"obsidian.nvim" = {
package = pkgs.vimPlugins.obsidian-nvim;
setupModule = "obsidian";
setupOpts = {
workspaces = [
{
name = "docs";
path = "~/vaults/docs/";
}
{
name = "work";
path = "~/vaults/work";
}
];
notes_subdir = "notes";
};
};
"no-neck-pain.nvim" = {
package = pkgs.vimPlugins.no-neck-pain-nvim;
setupModule = "no-neck-pain";
setupOpts = {
buffers = {
wo = {
fillchars = "eob: ";
};
};
};
};
};
keymaps = [
{
key = "<leader>nn";
mode = "n";
action = "<cmd>NoNeckPain<CR>";
}
{
key = "<leader>td";
mode = "n";
action = "<cmd>ObsidianToday<CR>";
}
];
};
}
];
}).neovim;
default = self.packages.${system}.configuredNvim;
}
);
in
{
packages = packages;
};
}