+145
-1
flake.lock
+145
-1
flake.lock
···
87
87
"url": "https://git.lix.systems/lix-project/flake-compat/archive/main.tar.gz"
88
88
}
89
89
},
90
+
"flake-parts": {
91
+
"inputs": {
92
+
"nixpkgs-lib": [
93
+
"nixvim",
94
+
"nixpkgs"
95
+
]
96
+
},
97
+
"locked": {
98
+
"lastModified": 1763759067,
99
+
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
100
+
"owner": "hercules-ci",
101
+
"repo": "flake-parts",
102
+
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
103
+
"type": "github"
104
+
},
105
+
"original": {
106
+
"owner": "hercules-ci",
107
+
"repo": "flake-parts",
108
+
"type": "github"
109
+
}
110
+
},
90
111
"flake-utils": {
91
112
"inputs": {
92
113
"systems": "systems"
93
114
},
94
115
"locked": {
116
+
"lastModified": 1731533236,
117
+
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
118
+
"owner": "numtide",
119
+
"repo": "flake-utils",
120
+
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
121
+
"type": "github"
122
+
},
123
+
"original": {
124
+
"owner": "numtide",
125
+
"repo": "flake-utils",
126
+
"type": "github"
127
+
}
128
+
},
129
+
"flake-utils_2": {
130
+
"inputs": {
131
+
"systems": "systems_3"
132
+
},
133
+
"locked": {
95
134
"lastModified": 1694529238,
96
135
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
97
136
"owner": "numtide",
···
107
146
},
108
147
"gomod2nix": {
109
148
"inputs": {
110
-
"flake-utils": "flake-utils",
149
+
"flake-utils": "flake-utils_2",
111
150
"nixpkgs": [
112
151
"tangled",
113
152
"nixpkgs"
···
214
253
"url": "https://github.com/rsms/inter/releases/download/v4.1/Inter-4.1.zip"
215
254
}
216
255
},
256
+
"ixx": {
257
+
"inputs": {
258
+
"flake-utils": [
259
+
"nixvim",
260
+
"nuschtosSearch",
261
+
"flake-utils"
262
+
],
263
+
"nixpkgs": [
264
+
"nixvim",
265
+
"nuschtosSearch",
266
+
"nixpkgs"
267
+
]
268
+
},
269
+
"locked": {
270
+
"lastModified": 1754860581,
271
+
"narHash": "sha256-EM0IE63OHxXCOpDHXaTyHIOk2cNvMCGPqLt/IdtVxgk=",
272
+
"owner": "NuschtOS",
273
+
"repo": "ixx",
274
+
"rev": "babfe85a876162c4acc9ab6fb4483df88fa1f281",
275
+
"type": "github"
276
+
},
277
+
"original": {
278
+
"owner": "NuschtOS",
279
+
"ref": "v0.1.1",
280
+
"repo": "ixx",
281
+
"type": "github"
282
+
}
283
+
},
217
284
"lucide-src": {
218
285
"flake": false,
219
286
"locked": {
···
355
422
"type": "github"
356
423
}
357
424
},
425
+
"nixvim": {
426
+
"inputs": {
427
+
"flake-parts": "flake-parts",
428
+
"nixpkgs": [
429
+
"nixpkgs"
430
+
],
431
+
"nuschtosSearch": "nuschtosSearch",
432
+
"systems": "systems_2"
433
+
},
434
+
"locked": {
435
+
"lastModified": 1764148348,
436
+
"narHash": "sha256-C9UobzCvMaLwNtRaFrt26TA/SkQtcDhJFmlVQ6DPHyA=",
437
+
"owner": "nix-community",
438
+
"repo": "nixvim",
439
+
"rev": "7fe6951bf8c2719f437f74224adf3a2e875d6781",
440
+
"type": "github"
441
+
},
442
+
"original": {
443
+
"owner": "nix-community",
444
+
"repo": "nixvim",
445
+
"type": "github"
446
+
}
447
+
},
448
+
"nuschtosSearch": {
449
+
"inputs": {
450
+
"flake-utils": "flake-utils",
451
+
"ixx": "ixx",
452
+
"nixpkgs": [
453
+
"nixvim",
454
+
"nixpkgs"
455
+
]
456
+
},
457
+
"locked": {
458
+
"lastModified": 1761730856,
459
+
"narHash": "sha256-t1i5p/vSWwueZSC0Z2BImxx3BjoUDNKyC2mk24krcMY=",
460
+
"owner": "NuschtOS",
461
+
"repo": "search",
462
+
"rev": "e29de6db0cb3182e9aee75a3b1fd1919d995d85b",
463
+
"type": "github"
464
+
},
465
+
"original": {
466
+
"owner": "NuschtOS",
467
+
"repo": "search",
468
+
"type": "github"
469
+
}
470
+
},
358
471
"root": {
359
472
"inputs": {
360
473
"disko": "disko",
···
363
476
"niri": "niri",
364
477
"nixos-apple-silicon": "nixos-apple-silicon",
365
478
"nixpkgs": "nixpkgs",
479
+
"nixvim": "nixvim",
366
480
"sops-nix": "sops-nix",
367
481
"tangled": "tangled"
368
482
}
···
401
515
}
402
516
},
403
517
"systems": {
518
+
"locked": {
519
+
"lastModified": 1681028828,
520
+
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
521
+
"owner": "nix-systems",
522
+
"repo": "default",
523
+
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
524
+
"type": "github"
525
+
},
526
+
"original": {
527
+
"owner": "nix-systems",
528
+
"repo": "default",
529
+
"type": "github"
530
+
}
531
+
},
532
+
"systems_2": {
533
+
"locked": {
534
+
"lastModified": 1681028828,
535
+
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
536
+
"owner": "nix-systems",
537
+
"repo": "default",
538
+
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
539
+
"type": "github"
540
+
},
541
+
"original": {
542
+
"owner": "nix-systems",
543
+
"repo": "default",
544
+
"type": "github"
545
+
}
546
+
},
547
+
"systems_3": {
404
548
"locked": {
405
549
"lastModified": 1681028828,
406
550
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+10
-5
flake.nix
+10
-5
flake.nix
···
6
6
url = "github:nix-community/disko/latest";
7
7
inputs.nixpkgs.follows = "nixpkgs";
8
8
};
9
+
finge = {
10
+
url = "github:monke0192/nixos-06cb-009a-fingerprint-sensor?ref=unstable";
11
+
inputs.nixpkgs.follows = "nixpkgs";
12
+
};
9
13
home-manager = {
10
14
url = "github:nix-community/home-manager/master";
11
15
inputs.nixpkgs.follows = "nixpkgs";
···
19
23
inputs.nixpkgs.follows = "nixpkgs";
20
24
};
21
25
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable-small";
22
-
sops-nix = {
23
-
url = "github:Mic92/sops-nix";
26
+
nixvim = {
27
+
url = "github:nix-community/nixvim";
24
28
inputs.nixpkgs.follows = "nixpkgs";
25
29
};
26
-
finge = {
27
-
url = "github:monke0192/nixos-06cb-009a-fingerprint-sensor?ref=unstable";
30
+
sops-nix = {
31
+
url = "github:Mic92/sops-nix";
28
32
inputs.nixpkgs.follows = "nixpkgs";
29
33
};
30
34
tangled.url = "git+https://tangled.org/@tangled.org/core?ref=refs/tags/v1.11.0-alpha";
···
79
83
specialArgs = { inherit inputs; };
80
84
modules = [
81
85
./${hostname}
82
-
inputs.home-manager.nixosModules.home-manager
83
86
inputs.disko.nixosModules.disko
87
+
inputs.home-manager.nixosModules.home-manager
84
88
inputs.sops-nix.nixosModules.sops
85
89
{
86
90
home-manager = {
···
90
94
users."monke" = import ./${hostname}/home.nix;
91
95
sharedModules = [
92
96
inputs.sops-nix.homeManagerModules.sops
97
+
inputs.nixvim.homeModules.nixvim
93
98
];
94
99
};
95
100
}
+3
-2
modules/core/misc.nix
+3
-2
modules/core/misc.nix
+236
modules/core/nixvim.nix
+236
modules/core/nixvim.nix
···
1
+
{ pkgs, ... }:
2
+
{
3
+
programs.nixvim = {
4
+
enable = true;
5
+
6
+
opts = {
7
+
guifont = "Victor Mono:h12";
8
+
ignorecase = true;
9
+
number = true;
10
+
relativenumber = true;
11
+
shiftwidth = 2;
12
+
smartcase = true;
13
+
smarttab = true;
14
+
softtabstop = 2;
15
+
tabstop = 2;
16
+
termguicolors = true;
17
+
};
18
+
19
+
plugins = {
20
+
barbecue.enable = true;
21
+
colorizer.enable = true;
22
+
gitsigns.enable = true;
23
+
noice.enable = true;
24
+
nvim-surround.enable = true;
25
+
parinfer-rust.enable = true;
26
+
todo-comments.enable = true;
27
+
trouble.enable = true;
28
+
typst-vim.enable = true;
29
+
web-devicons.enable = true;
30
+
bufferline.enable = true;
31
+
lspconfig.enable = true;
32
+
lualine.enable = true;
33
+
luasnip.enable = true;
34
+
nvim-autopairs.enable = true;
35
+
oil.enable = true;
36
+
cmp = {
37
+
enable = true;
38
+
autoEnableSources = true;
39
+
settings = {
40
+
mapping = {
41
+
"<S-Space>" = "cmp.mapping.complete()";
42
+
"<C-d>" = "cmp.mapping.scroll_docs(-4)";
43
+
"<C-e>" = "cmp.mapping.close()";
44
+
"<C-f>" = "cmp.mapping.scroll_docs(4)";
45
+
"<CR>" = "cmp.mapping.confirm({ select = true })";
46
+
};
47
+
sources = [
48
+
{ name = "nvim_lsp"; }
49
+
{ name = "luasnip"; }
50
+
{ name = "path"; }
51
+
{ name = "buffer"; }
52
+
];
53
+
};
54
+
};
55
+
indent-blankline = {
56
+
enable = true;
57
+
settings.indent.char = "│";
58
+
};
59
+
lspkind = {
60
+
enable = true;
61
+
cmp.enable = true;
62
+
};
63
+
telescope = {
64
+
enable = true;
65
+
keymaps = {
66
+
"<Leader>fb" = "buffers";
67
+
"<Leader>ff" = "find_files";
68
+
"<Leader>fg" = "live_grep";
69
+
"<Leader>fh" = "help_tags";
70
+
};
71
+
};
72
+
treesitter = {
73
+
enable = true;
74
+
folding = true;
75
+
76
+
grammarPackages = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [
77
+
bash
78
+
c
79
+
cmake
80
+
comment
81
+
cpp
82
+
css
83
+
csv
84
+
diff
85
+
dockerfile
86
+
gitcommit
87
+
git_config
88
+
git_rebase
89
+
gitattributes
90
+
go
91
+
gomod
92
+
gosum
93
+
gotmpl
94
+
html
95
+
lua
96
+
make
97
+
nix
98
+
markdown
99
+
meson
100
+
python
101
+
regex
102
+
scss
103
+
typst
104
+
];
105
+
106
+
settings = {
107
+
highlight.enable = true;
108
+
indent.enable = true;
109
+
};
110
+
};
111
+
};
112
+
113
+
lsp.servers = {
114
+
gopls = {
115
+
enable = true;
116
+
config = {
117
+
analyses = {
118
+
composites = false;
119
+
};
120
+
};
121
+
};
122
+
clangd.enable = true;
123
+
tinymist = {
124
+
enable = true;
125
+
config = {
126
+
single_file_support = true;
127
+
settings = {
128
+
exportPdf = "onType";
129
+
};
130
+
};
131
+
};
132
+
nil_ls.enable = true;
133
+
};
134
+
135
+
keymaps = [
136
+
{
137
+
# navigation
138
+
action = "h";
139
+
key = "m";
140
+
mode = [
141
+
"n"
142
+
"v"
143
+
];
144
+
}
145
+
{
146
+
action = "j";
147
+
key = "n";
148
+
mode = [
149
+
"n"
150
+
"v"
151
+
];
152
+
}
153
+
{
154
+
action = "k";
155
+
key = "e";
156
+
mode = [
157
+
"n"
158
+
"v"
159
+
];
160
+
}
161
+
{
162
+
action = "l";
163
+
key = "i";
164
+
mode = [
165
+
"n"
166
+
"v"
167
+
];
168
+
}
169
+
{
170
+
action = "n";
171
+
key = "k";
172
+
mode = [ "n" ];
173
+
}
174
+
{
175
+
action = "N";
176
+
key = "K";
177
+
mode = [ "n" ];
178
+
}
179
+
{
180
+
# editing
181
+
action = "i";
182
+
key = "t";
183
+
mode = [ "n" ];
184
+
}
185
+
{
186
+
action = "I";
187
+
key = "T";
188
+
mode = [ "n" ];
189
+
}
190
+
{
191
+
# window splitting
192
+
action = "<C-w>h";
193
+
key = "<C-w>m";
194
+
mode = [ "n" ];
195
+
}
196
+
{
197
+
action = "<C-w>j";
198
+
key = "<C-w>n";
199
+
mode = [ "n" ];
200
+
}
201
+
{
202
+
action = "<C-w>k";
203
+
key = "<C-w>e";
204
+
mode = [ "n" ];
205
+
}
206
+
{
207
+
action = "<C-w>l";
208
+
key = "<C-w>i";
209
+
mode = [ "n" ];
210
+
}
211
+
{
212
+
# plugins
213
+
action = "<cmd>Oil<CR>";
214
+
key = "<Leader>n";
215
+
mode = [ "n" ];
216
+
}
217
+
{
218
+
# misc
219
+
action = "<Leader>";
220
+
key = "<Space>";
221
+
mode = [ "n" ];
222
+
options.remap = true;
223
+
}
224
+
{
225
+
action = "<cmd>noh<CR>";
226
+
key = "<Leader>/";
227
+
mode = [ "n" ];
228
+
}
229
+
{
230
+
action = "<cmd>bufdo bd<CR>";
231
+
key = "ZC";
232
+
mode = [ "n" ];
233
+
}
234
+
];
235
+
};
236
+
}
+3
-3
modules/email.nix
+3
-3
modules/email.nix
···
39
39
enable = true;
40
40
externalEditor = "neovide -- -c 'set ft=mail' '+set fileencoding=utf-8' '+set ff=unix' '+set enc=utf-8' '+set fo+=w' %1";
41
41
pollScript = ''
42
-
mbsync monke
43
-
notmuch new
44
-
'';
42
+
mbsync monke
43
+
notmuch new
44
+
'';
45
45
};
46
46
programs.mbsync.enable = true;
47
47
programs.msmtp.enable = true;