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