tangled
alpha
login
or
join now
bwc9876.dev
/
nixos-config
1
fork
atom
Flake for my NixOS devices
1
fork
atom
overview
issues
pulls
pipelines
Better handling of Git commit/rebase in toggleterm
bwc9876.dev
8 months ago
53b0f819
d0032410
verified
This commit was signed with the committer's
known signature
.
bwc9876.dev
SSH Key Fingerprint:
SHA256:DanMEP/RNlSC7pAVbnXO6wzQV00rqyKj053tz4uH5gQ=
+124
-118
1 changed file
expand all
collapse all
unified
split
nixosModules
dev
nvim.nix
+124
-118
nixosModules/dev/nvim.nix
···
4
config,
5
lib,
6
...
7
-
}: {
0
8
environment.systemPackages = with pkgs; [
9
ripgrep
10
fd
11
];
12
13
home-manager.users.bean = {
14
-
imports = [inputs.nixvim.homeManagerModules.nixvim];
15
16
programs.nixvim = {
17
enable = true;
···
62
background = true;
63
};
64
virtual_text = {
65
-
errors = ["italic"];
66
-
hints = ["italic"];
67
-
information = ["italic"];
68
-
warnings = ["italic"];
69
-
ok = ["italic"];
70
};
71
underlines = {
72
-
errors = ["underline"];
73
-
hints = ["underline"];
74
-
information = ["underline"];
75
-
warnings = ["underline"];
76
};
77
};
78
};
···
93
'';
94
95
autoGroups = {
96
-
restore_cursor = {};
97
-
open_neotree = {};
98
};
99
100
opts = {
···
114
autoCmd = [
115
{
116
group = "restore_cursor";
117
-
event = ["BufReadPost"];
118
pattern = "*";
119
callback.__raw = ''
120
function()
···
131
}
132
{
133
group = "open_neotree";
134
-
event = ["BufRead"];
135
pattern = "*";
136
once = true;
137
callback.__raw = ''
···
228
];
229
230
extraPlugins = with pkgs.vimPlugins; [
231
-
{plugin = pkgs.nvim-mdx;}
232
-
{plugin = pkgs.nvim-flatten;}
233
-
{plugin = tiny-devicons-auto-colors-nvim;}
234
-
{plugin = nvim-biscuits;}
235
];
236
237
plugins = {
···
304
opts = {
305
position = "center";
306
};
307
-
layout = let
308
-
o = {
309
-
position = "center";
310
-
};
311
-
txt = s: {
312
-
type = "text";
313
-
val = s;
314
-
opts =
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
315
{
316
-
hl = "Keyword";
317
-
}
318
-
// o;
319
-
};
320
-
grp = g: {
321
-
type = "group";
322
-
val = g;
323
-
opts.spacing = 1;
324
-
};
325
-
btn = {
326
-
val,
327
-
onClick,
328
-
...
329
-
}: {
330
-
type = "button";
331
-
inherit val;
332
-
opts = o;
333
-
on_press.__raw = "function() vim.cmd[[${onClick}]] end";
334
-
};
335
-
cmd = {
336
-
command,
337
-
width,
338
-
height,
339
-
}: {
340
-
type = "terminal";
341
-
inherit command width height;
342
-
opts = o;
343
-
};
344
-
pad = {
345
-
type = "padding";
346
-
val = 2;
347
-
};
348
-
in
349
[
350
pad
351
pad
···
355
(
356
let
357
banner =
358
-
pkgs.runCommand "nvim-banner" {}
359
-
''${pkgs.toilet}/bin/toilet " NIXVIM " -f mono12 -F border > $out'';
360
# bannerText = builtins.readFile banner;
361
in
362
-
cmd {
363
-
command = ''open ${banner} | ${pkgs.lolcat}/bin/lolcat -f -S (random int 1..360)'';
364
-
# Hardcoding to prevent IFD
365
-
width = 83; # (builtins.stringLength (lib.trim (builtins.elemAt (lib.splitString "\n" bannerText) 1))) - 3;
366
-
height = 12; # (builtins.length (lib.splitString "\n" bannerText)) - 1;
367
-
}
368
)
369
(grp [
370
(btn {
···
385
])
386
(txt "::<シ>")
387
])
388
-
++ [pad];
389
};
390
391
trouble = {
···
417
vim.api.nvim_set_current_win(opts.winnr)
418
end
419
420
-
if ft == "gitcommit" or ft == "gitrebase" then
421
vim.api.nvim_create_autocmd("BufWritePost", {
422
buffer = opts.bufnr,
423
once = true,
424
callback = vim.schedule_wrap(function()
425
-
vim.api.nvim_buf_delete(opts.bufnr, {})
426
end),
427
})
428
end
···
517
hover = {
518
enabled = true;
519
delay = 150;
520
-
reveal = ["close"];
521
};
522
sort_by = "insert_at_end";
523
diagnostics = "nvim_lsp";
···
532
533
statuscol = {
534
enable = true;
535
-
settings.segments = let
536
-
dispCond = {
537
-
__raw = ''
538
-
function(ln)
539
-
return vim.bo.filetype ~= "neo-tree"
540
-
end
541
-
'';
542
-
};
543
-
in [
544
-
{
545
-
click = "v:lua.ScSa";
546
-
condition = [
547
-
dispCond
548
-
];
549
-
text = [
550
-
"%s"
551
-
];
552
-
}
553
-
{
554
-
click = "v:lua.ScLa";
555
-
condition = [dispCond];
556
-
text = [
557
-
{
558
-
__raw = "require('statuscol.builtin').lnumfunc";
559
-
}
560
-
];
561
-
}
562
-
{
563
-
click = "v:lua.ScFa";
564
-
condition = [
565
-
dispCond
566
-
{
567
-
__raw = "require('statuscol.builtin').not_empty";
568
-
}
569
-
];
570
-
text = [
571
-
{
572
-
__raw = "require('statuscol.builtin').foldfunc";
573
-
}
574
-
" "
575
-
];
576
-
}
577
-
];
0
0
578
};
579
580
dropbar = {
···
600
601
options = {
602
theme = "catppuccin";
603
-
disabled_filetypes = ["neo-tree"];
604
-
ignore_focus = ["neo-tree"];
605
};
606
};
607
};
···
689
cmp = {
690
enable = true;
691
settings = {
692
-
sources = map (name: {inherit name;}) [
693
"nvim_lsp"
694
"nvim_lsp_signature_help"
695
"path"
···
4
config,
5
lib,
6
...
7
+
}:
8
+
{
9
environment.systemPackages = with pkgs; [
10
ripgrep
11
fd
12
];
13
14
home-manager.users.bean = {
15
+
imports = [ inputs.nixvim.homeManagerModules.nixvim ];
16
17
programs.nixvim = {
18
enable = true;
···
63
background = true;
64
};
65
virtual_text = {
66
+
errors = [ "italic" ];
67
+
hints = [ "italic" ];
68
+
information = [ "italic" ];
69
+
warnings = [ "italic" ];
70
+
ok = [ "italic" ];
71
};
72
underlines = {
73
+
errors = [ "underline" ];
74
+
hints = [ "underline" ];
75
+
information = [ "underline" ];
76
+
warnings = [ "underline" ];
77
};
78
};
79
};
···
94
'';
95
96
autoGroups = {
97
+
restore_cursor = { };
98
+
open_neotree = { };
99
};
100
101
opts = {
···
115
autoCmd = [
116
{
117
group = "restore_cursor";
118
+
event = [ "BufReadPost" ];
119
pattern = "*";
120
callback.__raw = ''
121
function()
···
132
}
133
{
134
group = "open_neotree";
135
+
event = [ "BufRead" ];
136
pattern = "*";
137
once = true;
138
callback.__raw = ''
···
229
];
230
231
extraPlugins = with pkgs.vimPlugins; [
232
+
{ plugin = pkgs.nvim-mdx; }
233
+
{ plugin = pkgs.nvim-flatten; }
234
+
{ plugin = tiny-devicons-auto-colors-nvim; }
235
+
{ plugin = nvim-biscuits; }
236
];
237
238
plugins = {
···
305
opts = {
306
position = "center";
307
};
308
+
layout =
309
+
let
310
+
o = {
311
+
position = "center";
312
+
};
313
+
txt = s: {
314
+
type = "text";
315
+
val = s;
316
+
opts = {
317
+
hl = "Keyword";
318
+
} // o;
319
+
};
320
+
grp = g: {
321
+
type = "group";
322
+
val = g;
323
+
opts.spacing = 1;
324
+
};
325
+
btn =
326
+
{
327
+
val,
328
+
onClick,
329
+
...
330
+
}:
331
{
332
+
type = "button";
333
+
inherit val;
334
+
opts = o;
335
+
on_press.__raw = "function() vim.cmd[[${onClick}]] end";
336
+
};
337
+
cmd =
338
+
{
339
+
command,
340
+
width,
341
+
height,
342
+
}:
343
+
{
344
+
type = "terminal";
345
+
inherit command width height;
346
+
opts = o;
347
+
};
348
+
pad = {
349
+
type = "padding";
350
+
val = 2;
351
+
};
352
+
in
0
0
0
0
0
0
0
0
0
0
0
0
353
[
354
pad
355
pad
···
359
(
360
let
361
banner =
362
+
pkgs.runCommand "nvim-banner" { }
363
+
''${pkgs.toilet}/bin/toilet " NIXVIM " -f mono12 -F border > $out'';
364
# bannerText = builtins.readFile banner;
365
in
366
+
cmd {
367
+
command = ''open ${banner} | ${pkgs.lolcat}/bin/lolcat -f -S (random int 1..360)'';
368
+
# Hardcoding to prevent IFD
369
+
width = 83; # (builtins.stringLength (lib.trim (builtins.elemAt (lib.splitString "\n" bannerText) 1))) - 3;
370
+
height = 12; # (builtins.length (lib.splitString "\n" bannerText)) - 1;
371
+
}
372
)
373
(grp [
374
(btn {
···
389
])
390
(txt "::<シ>")
391
])
392
+
++ [ pad ];
393
};
394
395
trouble = {
···
421
vim.api.nvim_set_current_win(opts.winnr)
422
end
423
424
+
if opts.filetype == "gitcommit" or opts.filetype == "gitrebase" then
425
vim.api.nvim_create_autocmd("BufWritePost", {
426
buffer = opts.bufnr,
427
once = true,
428
callback = vim.schedule_wrap(function()
429
+
require('bufdelete').bufdelete(opts.bufnr, true)
430
end),
431
})
432
end
···
521
hover = {
522
enabled = true;
523
delay = 150;
524
+
reveal = [ "close" ];
525
};
526
sort_by = "insert_at_end";
527
diagnostics = "nvim_lsp";
···
536
537
statuscol = {
538
enable = true;
539
+
settings.segments =
540
+
let
541
+
dispCond = {
542
+
__raw = ''
543
+
function(ln)
544
+
return vim.bo.filetype ~= "neo-tree"
545
+
end
546
+
'';
547
+
};
548
+
in
549
+
[
550
+
{
551
+
click = "v:lua.ScSa";
552
+
condition = [
553
+
dispCond
554
+
];
555
+
text = [
556
+
"%s"
557
+
];
558
+
}
559
+
{
560
+
click = "v:lua.ScLa";
561
+
condition = [ dispCond ];
562
+
text = [
563
+
{
564
+
__raw = "require('statuscol.builtin').lnumfunc";
565
+
}
566
+
];
567
+
}
568
+
{
569
+
click = "v:lua.ScFa";
570
+
condition = [
571
+
dispCond
572
+
{
573
+
__raw = "require('statuscol.builtin').not_empty";
574
+
}
575
+
];
576
+
text = [
577
+
{
578
+
__raw = "require('statuscol.builtin').foldfunc";
579
+
}
580
+
" "
581
+
];
582
+
}
583
+
];
584
};
585
586
dropbar = {
···
606
607
options = {
608
theme = "catppuccin";
609
+
disabled_filetypes = [ "neo-tree" ];
610
+
ignore_focus = [ "neo-tree" ];
611
};
612
};
613
};
···
695
cmp = {
696
enable = true;
697
settings = {
698
+
sources = map (name: { inherit name; }) [
699
"nvim_lsp"
700
"nvim_lsp_signature_help"
701
"path"