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
Update, split groups, nu_plugin_dbus graphics only
bwc9876.dev
1 year ago
9295a464
799d27af
verified
This commit was signed with the committer's
known signature
.
bwc9876.dev
SSH Key Fingerprint:
SHA256:DanMEP/RNlSC7pAVbnXO6wzQV00rqyKj053tz4uH5gQ=
+124
-30
10 changed files
expand all
collapse all
unified
split
flake.lock
nixosModules
base
nushell.nix
personal.nix
graphics
printing.nix
shell.nix
hypervisor.nix
ssh.nix
wireless.nix
systemConfigs
installer.nix
mann-co.nix
+101
-23
flake.lock
···
22
},
23
"crane": {
24
"locked": {
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
25
"lastModified": 1731098351,
26
"narHash": "sha256-HQkYvKvaLQqNa10KEFGgWHfMAbWBfFp+4cAgkut+NNE=",
27
"owner": "ipetkov",
···
153
]
154
},
155
"locked": {
156
-
"lastModified": 1738586370,
157
-
"narHash": "sha256-oNDm2sfLm9jdfOskRq2ABn85gwXusbsHEOC181peno4=",
158
"owner": "nix-community",
159
"repo": "flakelight",
160
-
"rev": "d05bcabfc1efb84a7d8689de6e50b84d7f23b427",
161
"type": "github"
162
},
163
"original": {
···
166
"type": "github"
167
}
168
},
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
169
"flakelight_2": {
170
"inputs": {
171
"nixpkgs": [
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
172
"nu_plugin_dbus",
173
"nixpkgs"
174
]
···
187
"type": "github"
188
}
189
},
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
190
"gh-grader-preview": {
191
"inputs": {
0
192
"nixpkgs": [
193
"nixpkgs"
194
]
195
},
196
"locked": {
197
-
"lastModified": 1738957558,
198
-
"narHash": "sha256-LrsAvqQZPyFCQkcjpiJsUAmobxM5Xartbo4OMO+T63k=",
199
"owner": "Bwc9876",
200
"repo": "gh-grader-preview",
201
-
"rev": "ce471fcc8a6f4e786db709abacbd3b39cecd0e74",
202
"type": "github"
203
},
204
"original": {
···
284
]
285
},
286
"locked": {
287
-
"lastModified": 1739051380,
288
-
"narHash": "sha256-p1QSLO8DJnANY+ppK7fjD8GqfCrEIDjso1CSRHsXL7Y=",
289
"owner": "nix-community",
290
"repo": "home-manager",
291
-
"rev": "5af1b9a0f193ab6138b89a8e0af8763c21bbf491",
292
"type": "github"
293
},
294
"original": {
···
342
},
343
"lanzaboote": {
344
"inputs": {
345
-
"crane": "crane",
346
"flake-compat": "flake-compat",
347
"flake-parts": "flake-parts",
348
"nixpkgs": [
···
352
"rust-overlay": "rust-overlay"
353
},
354
"locked": {
355
-
"lastModified": 1737639419,
356
-
"narHash": "sha256-AEEDktApTEZ5PZXNDkry2YV2k6t0dTgLPEmAZbnigXU=",
357
"owner": "nix-community",
358
"repo": "lanzaboote",
359
-
"rev": "a65905a09e2c43ff63be8c0e86a93712361f871e",
360
"type": "github"
361
},
362
"original": {
···
470
"treefmt-nix": "treefmt-nix"
471
},
472
"locked": {
473
-
"lastModified": 1738966895,
474
-
"narHash": "sha256-OXOh35rTEnFSO4vj/SDMIlDvFPGW0ba1XhZkfx+AlL0=",
475
"owner": "nix-community",
476
"repo": "nixvim",
477
-
"rev": "e7f20a602f6e08a70045f36c531bc44ba1baed07",
478
"type": "github"
479
},
480
"original": {
···
485
},
486
"nu_plugin_dbus": {
487
"inputs": {
488
-
"flakelight": "flakelight_2",
489
"nixpkgs": [
490
"nixpkgs"
491
]
···
599
]
600
},
601
"locked": {
602
-
"lastModified": 1739068147,
603
-
"narHash": "sha256-3DtLkjQFlIUOXw3TBH+iP0jglpqO6Lv2KaQc+ADg39I=",
604
"owner": "oxalica",
605
"repo": "rust-overlay",
606
-
"rev": "f61820fa2c3844d6940cce269a6afdec30aa2e6c",
607
"type": "github"
608
},
609
"original": {
···
650
},
651
"wayland-mpris-idle-inhibit": {
652
"inputs": {
0
653
"nixpkgs": [
654
"nixpkgs"
655
]
656
},
657
"locked": {
658
-
"lastModified": 1738957449,
659
-
"narHash": "sha256-12ix4EuQ8f6DxBbJ8bCVUqYTBnFi474OVHaVBXgiLMI=",
660
"owner": "Bwc9876",
661
"repo": "wayland-mpris-idle-inhibit",
662
-
"rev": "0085e928fcd3186fd3c4066e8c90288bd70fde9e",
663
"type": "github"
664
},
665
"original": {
···
22
},
23
"crane": {
24
"locked": {
25
+
"lastModified": 1738652123,
26
+
"narHash": "sha256-zdZek5FXK/k95J0vnLF0AMnYuZl4AjARq83blKuJBYY=",
27
+
"owner": "ipetkov",
28
+
"repo": "crane",
29
+
"rev": "c7e015a5fcefb070778c7d91734768680188a9cd",
30
+
"type": "github"
31
+
},
32
+
"original": {
33
+
"owner": "ipetkov",
34
+
"repo": "crane",
35
+
"type": "github"
36
+
}
37
+
},
38
+
"crane_2": {
39
+
"locked": {
40
"lastModified": 1731098351,
41
"narHash": "sha256-HQkYvKvaLQqNa10KEFGgWHfMAbWBfFp+4cAgkut+NNE=",
42
"owner": "ipetkov",
···
168
]
169
},
170
"locked": {
171
+
"lastModified": 1739191238,
172
+
"narHash": "sha256-DRuhQDWscKWXAZcatFDLQ0+pMKmGZ9lEZdxygq8rVSU=",
173
"owner": "nix-community",
174
"repo": "flakelight",
175
+
"rev": "5656e7f5fda93676642d199fd9eb47b970d6139e",
176
"type": "github"
177
},
178
"original": {
···
181
"type": "github"
182
}
183
},
184
+
"flakelight-rust": {
185
+
"inputs": {
186
+
"crane": "crane",
187
+
"flakelight": "flakelight_2"
188
+
},
189
+
"locked": {
190
+
"lastModified": 1738672886,
191
+
"narHash": "sha256-YLRn2bceMuePfimgfqfic4jce3b/GqDfB2vbrNFuRlg=",
192
+
"owner": "accelbread",
193
+
"repo": "flakelight-rust",
194
+
"rev": "fda5c9b4a7f3d78cf21e5f1010d6a3f16ad946e1",
195
+
"type": "github"
196
+
},
197
+
"original": {
198
+
"owner": "accelbread",
199
+
"repo": "flakelight-rust",
200
+
"type": "github"
201
+
}
202
+
},
203
"flakelight_2": {
204
"inputs": {
205
"nixpkgs": [
206
+
"gh-grader-preview",
207
+
"nixpkgs"
208
+
]
209
+
},
210
+
"locked": {
211
+
"lastModified": 1739191238,
212
+
"narHash": "sha256-DRuhQDWscKWXAZcatFDLQ0+pMKmGZ9lEZdxygq8rVSU=",
213
+
"owner": "nix-community",
214
+
"repo": "flakelight",
215
+
"rev": "5656e7f5fda93676642d199fd9eb47b970d6139e",
216
+
"type": "github"
217
+
},
218
+
"original": {
219
+
"owner": "nix-community",
220
+
"repo": "flakelight",
221
+
"type": "github"
222
+
}
223
+
},
224
+
"flakelight_3": {
225
+
"inputs": {
226
+
"nixpkgs": [
227
"nu_plugin_dbus",
228
"nixpkgs"
229
]
···
242
"type": "github"
243
}
244
},
245
+
"flakelight_4": {
246
+
"inputs": {
247
+
"nixpkgs": [
248
+
"wayland-mpris-idle-inhibit",
249
+
"nixpkgs"
250
+
]
251
+
},
252
+
"locked": {
253
+
"lastModified": 1739191238,
254
+
"narHash": "sha256-DRuhQDWscKWXAZcatFDLQ0+pMKmGZ9lEZdxygq8rVSU=",
255
+
"owner": "nix-community",
256
+
"repo": "flakelight",
257
+
"rev": "5656e7f5fda93676642d199fd9eb47b970d6139e",
258
+
"type": "github"
259
+
},
260
+
"original": {
261
+
"owner": "nix-community",
262
+
"repo": "flakelight",
263
+
"type": "github"
264
+
}
265
+
},
266
"gh-grader-preview": {
267
"inputs": {
268
+
"flakelight-rust": "flakelight-rust",
269
"nixpkgs": [
270
"nixpkgs"
271
]
272
},
273
"locked": {
274
+
"lastModified": 1739201967,
275
+
"narHash": "sha256-BGiazIhRhPEf6XjzisD2b0ZdNzVTdlm06BLVPSeSWqA=",
276
"owner": "Bwc9876",
277
"repo": "gh-grader-preview",
278
+
"rev": "0cfb80ac492931b33e56f6261807861df398aebc",
279
"type": "github"
280
},
281
"original": {
···
361
]
362
},
363
"locked": {
364
+
"lastModified": 1739198052,
365
+
"narHash": "sha256-fvAgCGK2phagbKv2S4YH4AIM566TKasfWMqYl3c3mPQ=",
366
"owner": "nix-community",
367
"repo": "home-manager",
368
+
"rev": "b0bd29bb4b8df265b13bbb4a6639afa74faaa831",
369
"type": "github"
370
},
371
"original": {
···
419
},
420
"lanzaboote": {
421
"inputs": {
422
+
"crane": "crane_2",
423
"flake-compat": "flake-compat",
424
"flake-parts": "flake-parts",
425
"nixpkgs": [
···
429
"rust-overlay": "rust-overlay"
430
},
431
"locked": {
432
+
"lastModified": 1739186342,
433
+
"narHash": "sha256-2j+sln9RwQn+g7J4GmdFFgvqXnLkvWBNMaUzONlkzUE=",
434
"owner": "nix-community",
435
"repo": "lanzaboote",
436
+
"rev": "3bdeebbc484a09391c4f0ec8a37bb77809426660",
437
"type": "github"
438
},
439
"original": {
···
547
"treefmt-nix": "treefmt-nix"
548
},
549
"locked": {
550
+
"lastModified": 1739121491,
551
+
"narHash": "sha256-BEmyAozR3Pc2qwPtC4rgUglzi3cw4nv4fXEY23NxOrQ=",
552
"owner": "nix-community",
553
"repo": "nixvim",
554
+
"rev": "13341a4c1238b7974e7bad9c7a6d5c51ca3cf81a",
555
"type": "github"
556
},
557
"original": {
···
562
},
563
"nu_plugin_dbus": {
564
"inputs": {
565
+
"flakelight": "flakelight_3",
566
"nixpkgs": [
567
"nixpkgs"
568
]
···
676
]
677
},
678
"locked": {
679
+
"lastModified": 1739154531,
680
+
"narHash": "sha256-QGeN6e0nMJlNLzm3Y2A7P6riXhQXMeCXLZ7yajZYFQM=",
681
"owner": "oxalica",
682
"repo": "rust-overlay",
683
+
"rev": "035dac86ab7ce5c1e8a4d59dfe85e6911a3526ea",
684
"type": "github"
685
},
686
"original": {
···
727
},
728
"wayland-mpris-idle-inhibit": {
729
"inputs": {
730
+
"flakelight": "flakelight_4",
731
"nixpkgs": [
732
"nixpkgs"
733
]
734
},
735
"locked": {
736
+
"lastModified": 1739201677,
737
+
"narHash": "sha256-HNI/49TdnVPNcVqREBw8/Ycv6yAehUF+YLYHO5qelXI=",
738
"owner": "Bwc9876",
739
"repo": "wayland-mpris-idle-inhibit",
740
+
"rev": "0195d10eec2339571cc3de5ab0329768d533e8f1",
741
"type": "github"
742
},
743
"original": {
-3
nixosModules/base/nushell.nix
···
73
}
74
75
source ${init-starship}
76
-
77
-
plugin add ${pkgs.nu_plugin_dbus}/bin/nu_plugin_dbus
78
-
79
'';
80
};
81
home-manager.users.root.programs.nushell = with home-manager.users.bean.programs.nushell; {
···
73
}
74
75
source ${init-starship}
0
0
0
76
'';
77
};
78
home-manager.users.root.programs.nushell = with home-manager.users.bean.programs.nushell; {
+1
-1
nixosModules/base/personal.nix
···
12
isNormalUser = true;
13
description = "Benjamin Crocker";
14
autoSubUidGidRange = true;
15
-
extraGroups = ["libvirtd" "networkmanager" "wheel" "video" "lpadmin" "wireshark"]; # TODO: Break up groups across files?
16
};
17
18
home-manager.users.root = {
···
12
isNormalUser = true;
13
description = "Benjamin Crocker";
14
autoSubUidGidRange = true;
15
+
extraGroups = ["wheel"]; # For sudo
16
};
17
18
home-manager.users.root = {
+2
nixosModules/graphics/printing.nix
···
4
stateless = true;
5
};
6
0
0
7
hardware.printers = {
8
ensurePrinters = [
9
{
···
4
stateless = true;
5
};
6
7
+
users.users.bean.extraGroups = ["lpadmin"];
8
+
9
hardware.printers = {
10
ensurePrinters = [
11
{
+5
nixosModules/graphics/shell.nix
···
5
lib,
6
...
7
}: {
0
0
8
environment.systemPackages = with pkgs; [
9
# Shell Components
10
hyprlock
···
111
};
112
location = "center";
113
};
0
0
0
114
};
115
116
wayland.windowManager.hyprland.settings = {
···
5
lib,
6
...
7
}: {
8
+
users.users.bean.extraGroups = ["video"];
9
+
10
environment.systemPackages = with pkgs; [
11
# Shell Components
12
hyprlock
···
113
};
114
location = "center";
115
};
116
+
nushell.extraConfig = ''
117
+
plugin add ${pkgs.nu_plugin_dbus}/bin/nu_plugin_dbus
118
+
'';
119
};
120
121
wayland.windowManager.hyprland.settings = {
+2
nixosModules/hypervisor.nix
···
3
inputs,
4
...
5
}: {
0
0
6
virtualisation.libvirtd = {
7
enable = true;
8
onBoot = "ignore"; # I don't want VMs to start again on reboot
···
3
inputs,
4
...
5
}: {
6
+
users.users.bean.extraGroups = ["libvirtd"];
7
+
8
virtualisation.libvirtd = {
9
enable = true;
10
onBoot = "ignore"; # I don't want VMs to start again on reboot
+7
nixosModules/ssh.nix
···
10
beanPubkey
11
];
12
0
0
0
0
0
0
0
13
services.openssh = {
14
enable = true;
15
openFirewall = true;
···
10
beanPubkey
11
];
12
13
+
environment = {
14
+
enableAllTerminfo = true;
15
+
systemPackages = with pkgs; [
16
+
kitty # Needed for terminfo to work over ssh
17
+
];
18
+
};
19
+
20
services.openssh = {
21
enable = true;
22
openFirewall = true;
+2
nixosModules/wireless.nix
···
1
{pkgs, ...}: {
2
networking.networkmanager.enable = true;
3
0
0
4
hardware.bluetooth = {
5
enable = true;
6
settings = {
···
1
{pkgs, ...}: {
2
networking.networkmanager.enable = true;
3
4
+
users.users.bean.extraGroups = ["networkmanager"];
5
+
6
hardware.bluetooth = {
7
enable = true;
8
settings = {
+1
-1
systemConfigs/installer.nix
···
33
initrd.systemd.enable = false;
34
supportedFilesystems = {
35
btrfs = true;
36
-
reiserfs = true;
37
vfat = true;
38
f2fs = true;
39
xfs = true;
···
33
initrd.systemd.enable = false;
34
supportedFilesystems = {
35
btrfs = true;
36
+
reiserfs = lib.mkForce false;
37
vfat = true;
38
f2fs = true;
39
xfs = true;
+3
-2
systemConfigs/mann-co.nix
···
7
8
modules = [
9
(outputs.lib.applyRoles ["base" "ssh"])
10
-
{
0
11
system.stateVersion = "25.05";
12
networking.hostName = "mann-co";
13
nixpkgs.overlays = [
···
16
super.makeModulesClosure (x // {allowMissing = true;});
17
})
18
];
19
-
}
20
"${inputs.nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix"
21
{disabledModules = ["${inputs.nixpkgs}/nixos/modules/profiles/base.nix"];}
22
inputs.nixos-hardware.nixosModules.raspberry-pi-4
···
7
8
modules = [
9
(outputs.lib.applyRoles ["base" "ssh"])
10
+
({pkgs, ...}: {
11
+
boot.kernelPackages = pkgs.linuxPackages_rpi4;
12
system.stateVersion = "25.05";
13
networking.hostName = "mann-co";
14
nixpkgs.overlays = [
···
17
super.makeModulesClosure (x // {allowMissing = true;});
18
})
19
];
20
+
})
21
"${inputs.nixpkgs}/nixos/modules/installer/sd-card/sd-image-aarch64.nix"
22
{disabledModules = ["${inputs.nixpkgs}/nixos/modules/profiles/base.nix"];}
23
inputs.nixos-hardware.nixosModules.raspberry-pi-4