+11
-11
.github/workflows/flake-update.yml
+11
-11
.github/workflows/flake-update.yml
···
7
7
8
8
jobs:
9
9
generate_matrix:
10
-
runs-on: ubuntu-20.04
10
+
runs-on: ubuntu-24.04
11
11
outputs:
12
12
packages: ${{ steps.gen_packages.outputs.packages }}
13
13
checks: ${{ steps.gen_checks.outputs.checks }}
···
17
17
with:
18
18
token: "${{ secrets.TEST_TOKEN }}"
19
19
- name: Install nix
20
-
uses: cachix/install-nix-action@v30
20
+
uses: cachix/install-nix-action@v31
21
21
with:
22
22
extra_nix_config: |
23
23
auto-optimise-store = true
···
39
39
printf "::set-output name=checks::%s" "$checks"
40
40
41
41
update_flake:
42
-
runs-on: ubuntu-20.04
42
+
runs-on: ubuntu-24.04
43
43
steps:
44
44
- name: Clone repository
45
45
uses: actions/checkout@v4
46
46
with:
47
47
token: "${{ secrets.TEST_TOKEN }}"
48
48
- name: Install nix
49
-
uses: cachix/install-nix-action@v30
49
+
uses: cachix/install-nix-action@v31
50
50
with:
51
51
extra_nix_config: |
52
52
auto-optimise-store = true
···
68
68
path: flake.lock
69
69
70
70
build_flake:
71
-
runs-on: ubuntu-20.04
71
+
runs-on: ubuntu-24.04
72
72
needs: [generate_matrix, update_flake]
73
73
strategy:
74
74
fail-fast: false
···
91
91
with:
92
92
token: "${{ secrets.TEST_TOKEN }}"
93
93
- name: Install nix
94
-
uses: cachix/install-nix-action@v30
94
+
uses: cachix/install-nix-action@v31
95
95
with:
96
96
extra_nix_config: |
97
97
auto-optimise-store = true
···
114
114
run: nix build .#${{ matrix.package }}
115
115
116
116
build_checks:
117
-
runs-on: ubuntu-20.04
117
+
runs-on: ubuntu-24.04
118
118
needs: [generate_matrix, update_flake]
119
119
strategy:
120
120
fail-fast: false
···
127
127
with:
128
128
token: "${{ secrets.TEST_TOKEN }}"
129
129
- name: Install nix
130
-
uses: cachix/install-nix-action@v30
130
+
uses: cachix/install-nix-action@v31
131
131
with:
132
132
extra_nix_config: |
133
133
auto-optimise-store = true
···
150
150
run: nix build .#checks.x86_64-linux.${{ matrix.check }} --no-link
151
151
152
152
check_flake:
153
-
runs-on: ubuntu-20.04
153
+
runs-on: ubuntu-24.04
154
154
needs: [update_flake]
155
155
continue-on-error: true
156
156
steps:
···
159
159
with:
160
160
token: "${{ secrets.TEST_TOKEN }}"
161
161
- name: Install nix
162
-
uses: cachix/install-nix-action@v30
162
+
uses: cachix/install-nix-action@v31
163
163
with:
164
164
extra_nix_config: |
165
165
auto-optimise-store = true
···
177
177
nix flake check --keep-going
178
178
179
179
push_update:
180
-
runs-on: ubuntu-20.04
180
+
runs-on: ubuntu-24.04
181
181
permissions: write-all
182
182
needs: [update_flake, build_flake, build_checks, check_flake]
183
183
steps:
+8
-8
.github/workflows/pull-check.yml
+8
-8
.github/workflows/pull-check.yml
···
5
5
6
6
jobs:
7
7
generate_matrix:
8
-
runs-on: ubuntu-20.04
8
+
runs-on: ubuntu-24.04
9
9
outputs:
10
10
packages: ${{ steps.gen_packages.outputs.packages }}
11
11
checks: ${{ steps.gen_checks.outputs.checks }}
···
15
15
with:
16
16
token: "${{ secrets.TEST_TOKEN }}"
17
17
- name: Install nix
18
-
uses: cachix/install-nix-action@v30
18
+
uses: cachix/install-nix-action@v31
19
19
with:
20
20
extra_nix_config: |
21
21
auto-optimise-store = true
···
37
37
printf "checks=%s" "$checks" >> $GITHUB_OUTPUT
38
38
39
39
build_flake:
40
-
runs-on: ubuntu-20.04
40
+
runs-on: ubuntu-24.04
41
41
needs: [generate_matrix]
42
42
strategy:
43
43
fail-fast: false
···
58
58
with:
59
59
token: "${{ secrets.TEST_TOKEN }}"
60
60
- name: Install nix
61
-
uses: cachix/install-nix-action@v30
61
+
uses: cachix/install-nix-action@v31
62
62
with:
63
63
extra_nix_config: |
64
64
auto-optimise-store = true
···
71
71
run: nix build .#${{ matrix.package }}
72
72
73
73
build_checks:
74
-
runs-on: ubuntu-20.04
74
+
runs-on: ubuntu-24.04
75
75
needs: [generate_matrix]
76
76
strategy:
77
77
fail-fast: false
···
84
84
with:
85
85
token: "${{ secrets.TEST_TOKEN }}"
86
86
- name: Install nix
87
-
uses: cachix/install-nix-action@v30
87
+
uses: cachix/install-nix-action@v31
88
88
with:
89
89
extra_nix_config: |
90
90
auto-optimise-store = true
···
97
97
run: nix build .#checks.x86_64-linux.${{ matrix.check }} --no-link
98
98
99
99
check_flake:
100
-
runs-on: ubuntu-20.04
100
+
runs-on: ubuntu-24.04
101
101
continue-on-error: true
102
102
steps:
103
103
- name: Clone repository
···
105
105
with:
106
106
token: "${{ secrets.TEST_TOKEN }}"
107
107
- name: Install nix
108
-
uses: cachix/install-nix-action@v30
108
+
uses: cachix/install-nix-action@v31
109
109
with:
110
110
extra_nix_config: |
111
111
auto-optimise-store = true
+100
-55
flake.lock
+100
-55
flake.lock
···
3
3
"cargo2nix": {
4
4
"inputs": {
5
5
"flake-compat": "flake-compat_3",
6
-
"flake-utils": "flake-utils_2",
6
+
"flake-utils": "flake-utils_3",
7
7
"nixpkgs": [
8
8
"switcher",
9
9
"nixpkgs"
···
37
37
]
38
38
},
39
39
"locked": {
40
-
"lastModified": 1741395687,
41
-
"narHash": "sha256-3Aat6ALh8zCLQTZRscrZDDeJUAADT58sFK/+tQ2h0Vo=",
40
+
"lastModified": 1747794124,
41
+
"narHash": "sha256-GVMQfAoLuoo7Fq3VuwnWthWNoM9di/dlQdP/YrCQCCs=",
42
42
"owner": "nix-community",
43
43
"repo": "emacs-overlay",
44
-
"rev": "87d5e2bbc04a8d2ddff9e1f9e266bf81c3bd45b2",
44
+
"rev": "3f5c585027ef7798de403e4b7093f3005679496f",
45
45
"type": "github"
46
46
},
47
47
"original": {
···
99
99
}
100
100
},
101
101
"flake-utils": {
102
+
"locked": {
103
+
"lastModified": 1659877975,
104
+
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
105
+
"owner": "numtide",
106
+
"repo": "flake-utils",
107
+
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
108
+
"type": "github"
109
+
},
110
+
"original": {
111
+
"owner": "numtide",
112
+
"repo": "flake-utils",
113
+
"type": "github"
114
+
}
115
+
},
116
+
"flake-utils_2": {
102
117
"inputs": {
103
118
"systems": "systems"
104
119
},
···
116
131
"type": "github"
117
132
}
118
133
},
119
-
"flake-utils_2": {
134
+
"flake-utils_3": {
120
135
"inputs": {
121
136
"systems": "systems_2"
122
137
},
···
247
262
]
248
263
},
249
264
"locked": {
250
-
"lastModified": 1741393072,
251
-
"narHash": "sha256-+Su28oU1FBvptj1AO0geJP+BcIJghSVxaNFagvW5K2M=",
265
+
"lastModified": 1747793476,
266
+
"narHash": "sha256-2qAOSixSrbb9l6MI+SI4zGineOzDcc2dgOOFK9Dx+IY=",
252
267
"owner": "nix-community",
253
268
"repo": "home-manager",
254
-
"rev": "d2c014e1c73195d1958abec0c5ca6112b07b79da",
269
+
"rev": "2468b2d35512d093aeb04972a1d8c20a0735793f",
255
270
"type": "github"
256
271
},
257
272
"original": {
···
288
303
"nixpkgs-regression": "nixpkgs-regression"
289
304
},
290
305
"locked": {
291
-
"lastModified": 1741369128,
292
-
"narHash": "sha256-FK8X23bkPZK5bRSHGQ8sWzGg4gRjFLn6JsN2eDR/5R8=",
306
+
"lastModified": 1747764931,
307
+
"narHash": "sha256-5Aa+RnUsZJitjlMGnNk1A1lV0FNvdvFrUPIVj2TBm/M=",
293
308
"owner": "nixos",
294
309
"repo": "nix",
295
-
"rev": "47e23811ffba09f3e0f0c8797da3d28fb3b7bedb",
310
+
"rev": "e22142e11a428a041f1612a541401e722e6f51c9",
296
311
"type": "github"
297
312
},
298
313
"original": {
···
301
316
"type": "github"
302
317
}
303
318
},
304
-
"nixos-vscode-server": {
319
+
"nix-gl": {
305
320
"inputs": {
306
321
"flake-utils": "flake-utils",
307
322
"nixpkgs": [
···
309
324
]
310
325
},
311
326
"locked": {
327
+
"lastModified": 1713543440,
328
+
"narHash": "sha256-lnzZQYG0+EXl/6NkGpyIz+FEOc/DSEG57AP1VsdeNrM=",
329
+
"owner": "nix-community",
330
+
"repo": "nixgl",
331
+
"rev": "310f8e49a149e4c9ea52f1adf70cdc768ec53f8a",
332
+
"type": "github"
333
+
},
334
+
"original": {
335
+
"owner": "nix-community",
336
+
"repo": "nixgl",
337
+
"type": "github"
338
+
}
339
+
},
340
+
"nixos-vscode-server": {
341
+
"inputs": {
342
+
"flake-utils": "flake-utils_2",
343
+
"nixpkgs": [
344
+
"nixpkgs"
345
+
]
346
+
},
347
+
"locked": {
312
348
"lastModified": 1729422940,
313
349
"narHash": "sha256-DlvJv33ml5UTKgu4b0HauOfFIoDx6QXtbqUF3vWeRCY=",
314
350
"owner": "msteen",
···
324
360
},
325
361
"nixpkgs": {
326
362
"locked": {
327
-
"lastModified": 1734359947,
328
-
"narHash": "sha256-1Noao/H+N8nFB4Beoy8fgwrcOQLVm9o4zKW1ODaqK9E=",
363
+
"lastModified": 1747179050,
364
+
"narHash": "sha256-qhFMmDkeJX9KJwr5H32f1r7Prs7XbQWtO0h3V0a0rFY=",
329
365
"owner": "NixOS",
330
366
"repo": "nixpkgs",
331
-
"rev": "48d12d5e70ee91fe8481378e540433a7303dbf6a",
367
+
"rev": "adaa24fbf46737f3f1b5497bf64bae750f82942e",
332
368
"type": "github"
333
369
},
334
370
"original": {
335
371
"owner": "NixOS",
336
-
"ref": "release-24.11",
372
+
"ref": "nixos-unstable",
337
373
"repo": "nixpkgs",
338
374
"type": "github"
339
375
}
···
420
456
},
421
457
"nixpkgs_2": {
422
458
"locked": {
423
-
"lastModified": 1741246872,
424
-
"narHash": "sha256-Q6pMP4a9ed636qilcYX8XUguvKl/0/LGXhHcRI91p0U=",
459
+
"lastModified": 1747744144,
460
+
"narHash": "sha256-W7lqHp0qZiENCDwUZ5EX/lNhxjMdNapFnbErcbnP11Q=",
425
461
"owner": "nixos",
426
462
"repo": "nixpkgs",
427
-
"rev": "10069ef4cf863633f57238f179a0297de84bd8d3",
463
+
"rev": "2795c506fe8fb7b03c36ccb51f75b6df0ab2553f",
428
464
"type": "github"
429
465
},
430
466
"original": {
···
436
472
},
437
473
"nixpkgs_3": {
438
474
"locked": {
439
-
"lastModified": 1731531548,
440
-
"narHash": "sha256-sz8/v17enkYmfpgeeuyzniGJU0QQBfmAjlemAUYhfy8=",
441
-
"owner": "nixos",
442
-
"repo": "nixpkgs",
443
-
"rev": "24f0d4acd634792badd6470134c387a3b039dace",
444
-
"type": "github"
445
-
},
446
-
"original": {
447
-
"owner": "nixos",
448
-
"ref": "nixpkgs-unstable",
449
-
"repo": "nixpkgs",
450
-
"type": "github"
451
-
}
452
-
},
453
-
"nixpkgs_4": {
454
-
"locked": {
455
-
"lastModified": 1731763621,
456
-
"narHash": "sha256-ddcX4lQL0X05AYkrkV2LMFgGdRvgap7Ho8kgon3iWZk=",
475
+
"lastModified": 1744868846,
476
+
"narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=",
457
477
"owner": "NixOS",
458
478
"repo": "nixpkgs",
459
-
"rev": "c69a9bffbecde46b4b939465422ddc59493d3e4d",
479
+
"rev": "ebe4301cbd8f81c4f8d3244b3632338bbeb6d49c",
460
480
"type": "github"
461
481
},
462
482
"original": {
···
466
486
"type": "github"
467
487
}
468
488
},
469
-
"nixpkgs_5": {
489
+
"nixpkgs_4": {
470
490
"locked": {
471
491
"lastModified": 1728538411,
472
492
"narHash": "sha256-f0SBJz1eZ2yOuKUr5CA9BHULGXVSn6miBuUWdTyhUhU=",
···
485
505
"nvim": {
486
506
"inputs": {
487
507
"gen-luarc": "gen-luarc",
488
-
"nixpkgs": "nixpkgs_3",
508
+
"nixpkgs": [
509
+
"nixpkgs"
510
+
],
489
511
"nixpkgs-emmy": "nixpkgs-emmy",
490
512
"parts": [
491
513
"parts"
492
-
]
514
+
],
515
+
"wrapper-manager": "wrapper-manager"
493
516
},
494
517
"locked": {
495
-
"lastModified": 1741124556,
496
-
"narHash": "sha256-B9/tRqim0f5SP5ymwv27CmHxoxpmHaD9H06Askb+mkY=",
518
+
"lastModified": 1747684568,
519
+
"narHash": "sha256-s+yTEojMCZXT0lujYd5iYpEipSGvSWNGQ7/F8s9c6qA=",
497
520
"owner": "nobbz",
498
521
"repo": "nobbz-vim",
499
-
"rev": "b4294fb34f0d010dee6cf2f6afe0d32c59b73363",
522
+
"rev": "1b57e2f5d4df3e014d75df49555ce10326b82cf2",
500
523
"type": "github"
501
524
},
502
525
"original": {
···
512
535
]
513
536
},
514
537
"locked": {
515
-
"lastModified": 1741352980,
516
-
"narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=",
538
+
"lastModified": 1743550720,
539
+
"narHash": "sha256-hIshGgKZCgWh6AYJpJmRgFdR3WUbkY04o82X05xqQiY=",
517
540
"owner": "hercules-ci",
518
541
"repo": "flake-parts",
519
-
"rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9",
542
+
"rev": "c621e8422220273271f52058f618c94e405bb0f5",
520
543
"type": "github"
521
544
},
522
545
"original": {
···
533
556
"utils": "utils"
534
557
},
535
558
"locked": {
536
-
"lastModified": 1741382644,
537
-
"narHash": "sha256-vgJB8QiipfuSiwW1kRlsv+x9751wiDpS1T3DB9AW0uU=",
559
+
"lastModified": 1747794382,
560
+
"narHash": "sha256-3vbkFygUdT9GB2lw8Caa2GxKkeyxe3czxnlr+iw2Y/o=",
538
561
"owner": "wamserma",
539
562
"repo": "flake-programs-sqlite",
540
-
"rev": "940f72d8c745ae0d40e0ae1e15aea4848fac6440",
563
+
"rev": "c82fcbe26b6fc2f7613ac91451cd360754faf3b5",
541
564
"type": "github"
542
565
},
543
566
"original": {
···
551
574
"emacs": "emacs",
552
575
"home-manager": "home-manager",
553
576
"nix": "nix",
577
+
"nix-gl": "nix-gl",
554
578
"nixos-vscode-server": "nixos-vscode-server",
555
579
"nixpkgs": "nixpkgs_2",
556
580
"nixpkgs-insync-v3": [
···
566
590
},
567
591
"rust-overlay": {
568
592
"inputs": {
569
-
"nixpkgs": "nixpkgs_5"
593
+
"nixpkgs": "nixpkgs_4"
570
594
},
571
595
"locked": {
572
596
"lastModified": 1734402816,
···
584
608
},
585
609
"sops-nix": {
586
610
"inputs": {
587
-
"nixpkgs": "nixpkgs_4"
611
+
"nixpkgs": "nixpkgs_3"
588
612
},
589
613
"locked": {
590
-
"lastModified": 1741043164,
591
-
"narHash": "sha256-9lfmSZLz6eq9Ygr6cCmvQiiBEaPb54pUBcjvbEMPORc=",
614
+
"lastModified": 1747603214,
615
+
"narHash": "sha256-lAblXm0VwifYCJ/ILPXJwlz0qNY07DDYdLD+9H+Wc8o=",
592
616
"owner": "Mic92",
593
617
"repo": "sops-nix",
594
-
"rev": "3f2412536eeece783f0d0ad3861417f347219f4d",
618
+
"rev": "8d215e1c981be3aa37e47aeabd4e61bb069548fd",
595
619
"type": "github"
596
620
},
597
621
"original": {
···
668
692
"original": {
669
693
"owner": "numtide",
670
694
"repo": "flake-utils",
695
+
"type": "github"
696
+
}
697
+
},
698
+
"wrapper-manager": {
699
+
"inputs": {
700
+
"nixpkgs": [
701
+
"nvim",
702
+
"nixpkgs"
703
+
]
704
+
},
705
+
"locked": {
706
+
"lastModified": 1747562021,
707
+
"narHash": "sha256-XfF+5zjoWbAcAiGNb++og6yDGJRwWYpADr9P6WuieQA=",
708
+
"owner": "viperml",
709
+
"repo": "wrapper-manager",
710
+
"rev": "f2b0bec5140403cf24cae96f6764d97b5d59b0e2",
711
+
"type": "github"
712
+
},
713
+
"original": {
714
+
"owner": "viperml",
715
+
"repo": "wrapper-manager",
671
716
"type": "github"
672
717
}
673
718
}
+4
flake.nix
+4
flake.nix
···
36
36
37
37
nvim.url = "github:nobbz/nobbz-vim";
38
38
nvim.inputs.parts.follows = "parts";
39
+
nvim.inputs.nixpkgs.follows = "nixpkgs";
39
40
40
41
switcher.url = "github:nobbz/nix-switcher?ref=main";
41
42
switcher.inputs.nixpkgs.follows = "nixpkgs";
···
52
53
# a libgit2 in the current version fails to build with the nix provided patches.
53
54
# therefore using upstreams pin for now.
54
55
# nix.inputs.nixpkgs.follows = "nixpkgs";
56
+
57
+
nix-gl.url = "github:nix-community/nixgl";
58
+
nix-gl.inputs.nixpkgs.follows = "nixpkgs";
55
59
56
60
home-manager.url = "github:nix-community/home-manager";
57
61
home-manager.inputs.nixpkgs.follows = "nixpkgs";
+2
-1
home/configurations/nmelzer_at_phoebe.nix
+2
-1
home/configurations/nmelzer_at_phoebe.nix
···
14
14
in {
15
15
nixpkgs.allowedUnfree = ["google-chrome" "vscode" "discord" "obsidian" "slack"];
16
16
nixpkgs.config.permittedInsecurePackages = ["electron-25.9.0"];
17
+
profiles.base.needsGL = true;
17
18
18
19
nix.checkConfig = false;
19
20
nix.settings.extra-experimental-features = ["flakes" "nix-command"];
···
67
68
68
69
services.playerctld.enable = true;
69
70
70
-
home.file."${config.gtk.gtk2.configLocation}".force = true;
71
+
gtk.gtk2.force = true;
71
72
72
73
programs.ssh.includes = [
73
74
config.sops.secrets.ssh.path
-2
home/modules/default.nix
-2
home/modules/default.nix
···
9
9
"programs/eza" = ./programs/eza;
10
10
"programs/ghostty" = ./programs/ghostty;
11
11
"programs/nixpkgs" = ./programs/nixpkgs;
12
-
"programs/openshift" = ./programs/openshift;
13
12
"programs/p10k" = ./programs/p10k;
14
13
"programs/rbw" = ./programs/rbw;
15
14
"programs/wezterm" = ./programs/wezterm;
16
15
17
16
"services/insync" = ./services/insync;
18
-
"services/restic" = ./services/restic;
19
17
"services/rustic" = ./services/rustic;
20
18
21
19
"misc/awesome" = ./misc/awesome;
+15
-2
home/modules/profiles/base/default.nix
+15
-2
home/modules/profiles/base/default.nix
···
2
2
self,
3
3
nix,
4
4
nvim,
5
+
nix-gl,
5
6
...
6
7
}: {
7
8
config,
···
49
50
in {
50
51
options.profiles.base = {
51
52
enable = lib.mkEnableOption "The base profile, should be always enabled";
53
+
54
+
needsGL = lib.mkEnableOption "nix-gl wrappers";
52
55
};
53
56
54
57
config = lib.mkIf cfg.enable {
···
98
101
| sed -E 's/([0-9])([A-Za-z])/\1 \2/')" \
99
102
"$(numfmt --to=none --format="%'f" ''${saved})"
100
103
'';
104
+
neovide =
105
+
if cfg.needsGL
106
+
then
107
+
pkgs.writeShellScriptBin nvim.packages.x86_64-linux.neovide.meta.mainProgram ''
108
+
exec ${lib.getExe nix-gl.packages.x86_64-linux.nixGLIntel} ${lib.getExe nvim.packages.x86_64-linux.neovide} "$@"
109
+
''
110
+
else nvim.packages.x86_64-linux.neovide;
101
111
in
102
-
[optisave pkgs.departure-mono pkgs.hydra-check nvim.packages.x86_64-linux.default] ++ lib.optionals pkgs.stdenv.isLinux [pkgs.dconf];
112
+
lib.mkMerge [
113
+
[optisave pkgs.departure-mono pkgs.hydra-check nvim.packages.x86_64-linux.neovim neovide]
114
+
(lib.mkIf pkgs.stdenv.isLinux [pkgs.dconf])
115
+
];
103
116
104
117
# dconf.enable = lib.mkMerge [
105
118
# (lib.mkIf pkgs.stdenv.isLinux true)
···
238
251
}
239
252
];
240
253
241
-
initExtra = ''
254
+
initContent = ''
242
255
bindkey "^[[1;5D" backward-word
243
256
bindkey "^[[1;5C" forward-word
244
257
+22
-3
home/modules/profiles/development/default.nix
+22
-3
home/modules/profiles/development/default.nix
···
13
13
};
14
14
15
15
config = lib.mkIf cfg.enable {
16
+
programs.jujutsu = {
17
+
enable = true;
18
+
settings = {
19
+
user = {
20
+
name = config.programs.git.userName;
21
+
email = config.programs.git.userEmail;
22
+
};
23
+
24
+
ui.diff.tool = [config.programs.git.extraConfig.diff.external "$left" "$right"];
25
+
};
26
+
};
27
+
16
28
programs.gh.enable = true;
17
29
programs.git = {
18
30
enable = true;
···
26
38
inputs = builtins.attrValues {inherit (pkgs) git fzf ripgrep;};
27
39
interpreter = "${pkgs.bash}/bin/bash";
28
40
execer = ["cannot:${pkgs.git}/bin/git" "cannot:${pkgs.fzf}/bin/fzf"];
29
-
} ''
41
+
}
42
+
# bash
43
+
''
30
44
git log --graph --color=always --format="%C(auto)%h%d %s0x09%C(white)%C(bold)%cr" "$@" |
31
45
fzf --ansi --no-sort --reverse --tiebreak=index \
32
46
--bind=ctrl-s:toggle-sort \
···
39
53
inputs = builtins.attrValues {inherit (pkgs) git fzf coreutils gawk;};
40
54
interpreter = "${pkgs.bash}/bin/bash";
41
55
execer = ["cannot:${pkgs.git}/bin/git" "cannot:${pkgs.fzf}/bin/fzf"];
42
-
} ''
56
+
}
57
+
# bash
58
+
''
43
59
# Function to determine the ref type
44
60
function get_ref_type() {
45
61
local ref="$1"
···
119
135
hopbase = ''!f() { set -o nounset; tag=$(git describe --abbrev=0 --tag "$1") && git rebase -i "''${tag}"; }; f'';
120
136
comfix = "!${mkFixupAlias "fixup"}";
121
137
comreb = "!${mkFixupAlias "rebase"}";
138
+
show = "show --ext-diff";
139
+
lp = "log -p --ext-diff";
122
140
};
123
141
124
142
extraConfig = {
125
143
init.defaultBranch = "main";
144
+
diff.external = lib.getExe pkgs.difftastic;
126
145
pull.rebase = false;
127
146
rerere.enabled = true;
128
147
};
···
167
186
];
168
187
};
169
188
170
-
home.packages = [pkgs.ripgrep];
189
+
home.packages = [pkgs.ripgrep pkgs.difftastic];
171
190
};
172
191
}
-23
home/modules/programs/openshift/default.nix
-23
home/modules/programs/openshift/default.nix
···
1
-
_: {
2
-
pkgs,
3
-
lib,
4
-
config,
5
-
...
6
-
}: let
7
-
cfg = config.programs.openshift;
8
-
in {
9
-
options.programs.openshift = {
10
-
enable = lib.mkEnableOption "Tools to manage openshift instances";
11
-
};
12
-
13
-
config = lib.mkIf cfg.enable {
14
-
home.packages = [pkgs.sops pkgs.openshift (lib.setPrio 0 pkgs.kubectl) pkgs.kubernetes-helm];
15
-
16
-
programs.zsh.initExtra = ''
17
-
# Enable autocomplete for oc, kubectl and helm
18
-
eval "$(${pkgs.openshift}/bin/oc completion zsh)"
19
-
eval "$(${pkgs.kubectl}/bin/kubectl completion zsh)"
20
-
eval "$(${pkgs.kubernetes-helm}/bin/helm completion zsh)"
21
-
'';
22
-
};
23
-
}
+6
home/modules/programs/wezterm/default.nix
+6
home/modules/programs/wezterm/default.nix
···
34
34
-- For example, changing the color scheme:
35
35
config.color_scheme = "Catppuccin Mocha"
36
36
37
+
-- show a scrollbar
38
+
config.enable_scroll_bar = true
39
+
40
+
-- forbid window size change on change of fontsize
41
+
config.adjust_window_size_when_changing_font_size = false
42
+
37
43
-- disable ligatures
38
44
config.harfbuzz_features = { 'calt=0', 'clig=0', 'liga=0' }
39
45
-85
home/modules/services/restic/default.nix
-85
home/modules/services/restic/default.nix
···
1
-
{self, ...}: {
2
-
config,
3
-
lib,
4
-
pkgs,
5
-
self,
6
-
...
7
-
}: let
8
-
cfg = config.services.restic;
9
-
10
-
bin = "${cfg.package}/bin/restic";
11
-
excludes = builtins.concatStringsSep " " (builtins.map (e: "--exclude=${e}") cfg.exclude);
12
-
xFlags = lib.optionalString cfg.oneFileSystem "-x";
13
-
compressFlag = "--compression ${cfg.compression}";
14
-
flags = "${xFlags} ${compressFlag} ${excludes}";
15
-
16
-
command = "${bin} --tag home -vv backup ${flags} %h";
17
-
in {
18
-
options.services.restic = {
19
-
enable = lib.mkEnableOption "Restic Backup Tool";
20
-
21
-
package = lib.mkOption {
22
-
type = lib.types.package;
23
-
default = pkgs.restic;
24
-
description = "Restic derivation to use";
25
-
};
26
-
27
-
exclude = lib.mkOption {
28
-
type = lib.types.listOf lib.types.str;
29
-
default = [];
30
-
description = "Corresponds to `--exclude`. Use `%h` instead of `~`";
31
-
};
32
-
33
-
oneFileSystem = lib.mkOption {
34
-
type = lib.types.bool;
35
-
default = false;
36
-
description = "If true, exclude other file systems, don't cross filesystem boundaries and subvolumes";
37
-
};
38
-
39
-
repo = lib.mkOption {
40
-
type = lib.types.str;
41
-
description = "Location of the repository";
42
-
};
43
-
44
-
compression = lib.mkOption {
45
-
type = lib.types.enum ["off" "auto" "max"];
46
-
description = "The compression mode to use";
47
-
default = "auto";
48
-
};
49
-
50
-
# TODO: Add options for inlcude, password file, etc
51
-
};
52
-
53
-
config = lib.mkIf cfg.enable {
54
-
home.packages = [cfg.package];
55
-
56
-
systemd.user.services.restic-backup = {
57
-
Unit = {
58
-
Description = "Restic Backup Tool";
59
-
StartLimitIntervalSec = "25m";
60
-
StartLimitBurst = "4";
61
-
};
62
-
63
-
Service = {
64
-
Environment = [
65
-
"PATH=${lib.makeBinPath [pkgs.openssh]}"
66
-
"RESTIC_PASSWORD_FILE=%h/.config/restic/password"
67
-
"RESTIC_REPOSITORY=${cfg.repo}"
68
-
];
69
-
Type = "oneshot";
70
-
ExecStart = command;
71
-
Restart = "on-failure";
72
-
RestartSec = "2m";
73
-
};
74
-
};
75
-
76
-
systemd.user.timers.restic-backup = {
77
-
Unit.Description = "Restic periodic backup";
78
-
Timer = {
79
-
Unit = "restic-backup.service";
80
-
OnCalendar = "hourly";
81
-
};
82
-
Install.WantedBy = ["timers.target"];
83
-
};
84
-
};
85
-
}
+16
-7
nixos/configurations/mimas/rustic-timers.nix
+16
-7
nixos/configurations/mimas/rustic-timers.nix
···
6
6
}: let
7
7
profile_name = template: lib.removeSuffix ".toml" config.sops.templates."${template}".path;
8
8
9
+
environment = {
10
+
RUSTIC_NO_PROGRESS = "true";
11
+
RUSTIC_CACHE_DIR = "%T/rustic";
12
+
};
13
+
9
14
mimas_template =
10
15
# toml
11
16
''
···
65
70
mkTimer = name: calendar: {
66
71
"${name}" = {
67
72
wantedBy = ["timers.target"];
68
-
timerConfig.onCalendar = calendar;
73
+
timerConfig.OnCalendar = calendar;
69
74
};
70
75
};
71
76
···
87
92
systemd.services = {
88
93
rustic-mimas-clean = {
89
94
path = [pkgs.rustic pkgs.openssh];
95
+
inherit environment;
90
96
serviceConfig = {
91
97
NotifyAccess = "all";
92
98
Type = "notify";
···
111
117
${notify} --status=copy
112
118
rustic copy -P ${profile_name "mimas.toml"}
113
119
114
-
${notify} --stopping
120
+
${notify} --stopping --status=""
115
121
'';
116
122
};
117
123
118
124
rustic-nobbz-clean = {
119
125
path = [pkgs.rustic pkgs.openssh];
126
+
inherit environment;
120
127
serviceConfig = {
121
128
NotifyAccess = "all";
122
129
Type = "notify";
···
142
149
${notify} --status=copy
143
150
rustic copy -P ${profile_name "nobbz.toml"}
144
151
145
-
${notify} --stopping
152
+
${notify} --stopping --status=""
146
153
'';
147
154
};
148
155
149
156
rustic-nobbz-hetzner-clean = {
150
157
path = [pkgs.rustic pkgs.openssh];
158
+
inherit environment;
151
159
serviceConfig = {
152
160
NotifyAccess = "all";
153
161
Type = "notify";
···
166
174
${notify} --status=prune
167
175
rustic prune -P ${profile_name "nobbz_hetzner.toml"} \
168
176
--max-unused 0B \
169
-
--max-repack 50GiB \
177
+
--max-repack 20GiB \
170
178
--keep-delete 11h
171
179
172
-
${notify} --stopping
180
+
${notify} --stopping --status=""
173
181
'';
174
182
};
175
183
176
184
rustic-mimas-hetzner-clean = {
177
185
path = [pkgs.rustic pkgs.openssh];
186
+
inherit environment;
178
187
serviceConfig = {
179
188
NotifyAccess = "all";
180
189
Type = "notify";
···
193
202
${notify} --status=prune
194
203
rustic prune -P ${profile_name "mimas_hetzner.toml"} \
195
204
--max-unused 0B \
196
-
--max-repack 50GiB \
205
+
--max-repack 20GiB \
197
206
--keep-delete 11h
198
207
199
-
${notify} --stopping
208
+
${notify} --stopping --status=""
200
209
'';
201
210
};
202
211
};
+3
nixos/configurations/mimas.nix
+3
nixos/configurations/mimas.nix
···
19
19
20
20
services.tailscale.enable = true;
21
21
22
+
security.pam.services.i3lock.enable = true;
23
+
security.pam.services.i3lock-color.enable = true;
24
+
22
25
sops.age.sshKeyPaths = ["/etc/ssh/ssh_host_ed25519_key"];
23
26
sops.defaultSopsFile = "${self}/secrets/mimas/default.yaml";
24
27
+1
packages/advcp/default.nix
+1
packages/advcp/default.nix