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, rework network module
bwc9876.dev
4 months ago
720bdceb
fdaca612
verified
This commit was signed with the committer's
known signature
.
bwc9876.dev
SSH Key Fingerprint:
SHA256:DanMEP/RNlSC7pAVbnXO6wzQV00rqyKj053tz4uH5gQ=
+59
-44
7 changed files
expand all
collapse all
unified
split
flake.lock
homeModules
nvim.nix
utils.nix
nixosConfigurations
installer.nix
nixosModules
network.nix
role-desktop.nix
role-laptop.nix
+25
-25
flake.lock
···
31
]
32
},
33
"locked": {
34
-
"lastModified": 1762198582,
35
-
"narHash": "sha256-P9giW/1Crn7ekQt4YIbONJ/hKFaHkTwyhz82FCjh+OM=",
36
"owner": "catppuccin",
37
"repo": "nix",
38
-
"rev": "08716214674ca27914daa52e6fa809cc022b581e",
39
"type": "github"
40
},
41
"original": {
···
202
]
203
},
204
"locked": {
205
-
"lastModified": 1760948891,
206
-
"narHash": "sha256-TmWcdiUUaWk8J4lpjzu4gCGxWY6/Ok7mOK4fIFfBuU4=",
207
"owner": "hercules-ci",
208
"repo": "flake-parts",
209
-
"rev": "864599284fc7c0ba6357ed89ed5e2cd5040f0c04",
210
"type": "github"
211
},
212
"original": {
···
410
]
411
},
412
"locked": {
413
-
"lastModified": 1762296971,
414
-
"narHash": "sha256-Jyv3L5rrUYpecON+9zyFz2VqgTSTsIG35fXuCyuCQv0=",
415
"owner": "nix-community",
416
"repo": "home-manager",
417
-
"rev": "34fe48801d2a5301b814eaa1efb496499d06cebc",
418
"type": "github"
419
},
420
"original": {
···
515
},
516
"nixos-hardware": {
517
"locked": {
518
-
"lastModified": 1762267440,
519
-
"narHash": "sha256-WHjEJ80oYbWyNu0dxysBs5oMlBc5w7YYzL1/UPj4iGo=",
520
"owner": "NixOS",
521
"repo": "nixos-hardware",
522
-
"rev": "2e85ae1b7030df39269d29118b1f74944d0c8f15",
523
"type": "github"
524
},
525
"original": {
···
530
},
531
"nixpkgs": {
532
"locked": {
533
-
"lastModified": 1762111121,
534
-
"narHash": "sha256-4vhDuZ7OZaZmKKrnDpxLZZpGIJvAeMtK6FKLJYUtAdw=",
535
"owner": "NixOS",
536
"repo": "nixpkgs",
537
-
"rev": "b3d51a0365f6695e7dd5cdf3e180604530ed33b4",
538
"type": "github"
539
},
540
"original": {
···
554
"systems": "systems_2"
555
},
556
"locked": {
557
-
"lastModified": 1762293638,
558
-
"narHash": "sha256-svsYLbxNq8EZoVtNF97wCAElZ2py5Q1p7viG6lTUixA=",
559
"owner": "nix-community",
560
"repo": "nixvim",
561
-
"rev": "aa3a1dfb028cd09b8061862f9dd8d859467fc7ed",
562
"type": "github"
563
},
564
"original": {
···
748
]
749
},
750
"locked": {
751
-
"lastModified": 1762223900,
752
-
"narHash": "sha256-caxpESVH71mdrdihYvQZ9rTZPZqW0GyEG9un7MgpyRM=",
753
"owner": "oxalica",
754
"repo": "rust-overlay",
755
-
"rev": "cfe1598d69a42a5edb204770e71b8df77efef2c3",
756
"type": "github"
757
},
758
"original": {
···
779
]
780
},
781
"locked": {
782
-
"lastModified": 1762038257,
783
-
"narHash": "sha256-D1Pbr/VaEWjmidcfmqa6/usolDCcJyW7TZcuCqc3sIs=",
784
"ref": "refs/heads/main",
785
-
"rev": "a6dcef445f25eb059a4a8d64abfdbbe4c3635718",
786
-
"revCount": 283,
787
"type": "git",
788
"url": "https://codeberg.org/spoonbaker/mono"
789
},
···
31
]
32
},
33
"locked": {
34
+
"lastModified": 1762510976,
35
+
"narHash": "sha256-KGoSj8qMOOPaNE48RTtuNBbqOvKLTeklnRHWWvE/TXo=",
36
"owner": "catppuccin",
37
"repo": "nix",
38
+
"rev": "728cb0a667ce37bb0c68557dba819c7fb54ff1c8",
39
"type": "github"
40
},
41
"original": {
···
202
]
203
},
204
"locked": {
205
+
"lastModified": 1762040540,
206
+
"narHash": "sha256-z5PlZ47j50VNF3R+IMS9LmzI5fYRGY/Z5O5tol1c9I4=",
207
"owner": "hercules-ci",
208
"repo": "flake-parts",
209
+
"rev": "0010412d62a25d959151790968765a70c436598b",
210
"type": "github"
211
},
212
"original": {
···
410
]
411
},
412
"locked": {
413
+
"lastModified": 1762463325,
414
+
"narHash": "sha256-33YUsWpPyeBZEWrKQ2a1gkRZ7i0XCC/2MYpU6BVeQSU=",
415
"owner": "nix-community",
416
"repo": "home-manager",
417
+
"rev": "0562fef070a1027325dd4ea10813d64d2c967b39",
418
"type": "github"
419
},
420
"original": {
···
515
},
516
"nixos-hardware": {
517
"locked": {
518
+
"lastModified": 1762463231,
519
+
"narHash": "sha256-hv1mG5j5PTbnWbtHHomzTus77pIxsc4x8VrMjc7+/YE=",
520
"owner": "NixOS",
521
"repo": "nixos-hardware",
522
+
"rev": "52113c4f5cfd1e823001310e56d9c8d0699a6226",
523
"type": "github"
524
},
525
"original": {
···
530
},
531
"nixpkgs": {
532
"locked": {
533
+
"lastModified": 1762363567,
534
+
"narHash": "sha256-YRqMDEtSMbitIMj+JLpheSz0pwEr0Rmy5mC7myl17xs=",
535
"owner": "NixOS",
536
"repo": "nixpkgs",
537
+
"rev": "ae814fd3904b621d8ab97418f1d0f2eb0d3716f4",
538
"type": "github"
539
},
540
"original": {
···
554
"systems": "systems_2"
555
},
556
"locked": {
557
+
"lastModified": 1762510447,
558
+
"narHash": "sha256-C9zdTJKMX+mSTEXlXfyWTEZIPUKpzNgGP4v1cHd/JTs=",
559
"owner": "nix-community",
560
"repo": "nixvim",
561
+
"rev": "3be63f84fd08d7cb37d5f9ac7c1c46e65b79ffec",
562
"type": "github"
563
},
564
"original": {
···
748
]
749
},
750
"locked": {
751
+
"lastModified": 1762483116,
752
+
"narHash": "sha256-Z8EVsTH10BjCdFyPxbUu5jBV+HGL39rh9+beQcnNRm0=",
753
"owner": "oxalica",
754
"repo": "rust-overlay",
755
+
"rev": "9de55b59b6aaadbd9dbf223765a835239b767ee5",
756
"type": "github"
757
},
758
"original": {
···
779
]
780
},
781
"locked": {
782
+
"lastModified": 1762377373,
783
+
"narHash": "sha256-oc2sIniNQQwArQyASFCMtci2T88qtVgZEjgdVN3UzCY=",
784
"ref": "refs/heads/main",
785
+
"rev": "04dfe79667923fccb4cf2a361af4a99f7af10f48",
786
+
"revCount": 286,
787
"type": "git",
788
"url": "https://codeberg.org/spoonbaker/mono"
789
},
+13
-11
homeModules/nvim.nix
···
66
enabled = true;
67
lsp = true;
68
};
69
-
gitsigns = true;
70
neotree = true;
71
native_lsp = {
72
enabled = true;
···
120
smartindent = true;
121
cursorline = true;
122
showtabline = 2;
0
0
123
breakindent = true;
124
fillchars.__raw = ''[[eob: ,fold: ,foldopen:,foldsep: ,foldclose:]]'';
125
foldcolumn = "1";
···
226
options.desc = "Previous Tab";
227
}
228
{
229
-
action = "BufferLinePick";
230
-
key = "<Tab>";
231
-
options.desc = "Pick Tab and Switch";
232
-
}
233
-
{
234
action = "Neotree toggle";
235
key = "t";
236
options.desc = "Toggle Neotree";
···
239
}
240
{
241
group = "Tab Closing";
242
-
prefix = "<S-Tab>";
243
keys = [
244
{
245
action = "BufferLineCloseLeft";
···
421
422
alpha = {
423
enable = true;
424
-
opts = {
425
position = "center";
426
};
427
-
layout = let
428
o = {
429
position = "center";
430
};
···
674
nvim-ufo = {
675
enable = true;
676
};
677
-
gitsigns.enable = true;
0
0
0
0
0
0
678
679
lualine = {
680
enable = true;
···
744
};
745
web-devicons.enable = true;
746
747
-
guess-indent.enable = true;
748
intellitab.enable = true;
749
750
which-key = {
···
66
enabled = true;
67
lsp = true;
68
};
0
69
neotree = true;
70
native_lsp = {
71
enabled = true;
···
119
smartindent = true;
120
cursorline = true;
121
showtabline = 2;
122
+
tabstop = 2;
123
+
shiftwidth = 2;
124
breakindent = true;
125
fillchars.__raw = ''[[eob: ,fold: ,foldopen:,foldsep: ,foldclose:]]'';
126
foldcolumn = "1";
···
227
options.desc = "Previous Tab";
228
}
229
{
0
0
0
0
0
230
action = "Neotree toggle";
231
key = "t";
232
options.desc = "Toggle Neotree";
···
235
}
236
{
237
group = "Tab Closing";
238
+
prefix = "<Tab><Tab>";
239
keys = [
240
{
241
action = "BufferLineCloseLeft";
···
417
418
alpha = {
419
enable = true;
420
+
settings.opts = {
421
position = "center";
422
};
423
+
settings.layout = let
424
o = {
425
position = "center";
426
};
···
670
nvim-ufo = {
671
enable = true;
672
};
673
+
674
+
# gitgutter = {
675
+
# enable = true;
676
+
# settings = {
677
+
#
678
+
# };
679
+
# };
680
681
lualine = {
682
enable = true;
···
746
};
747
web-devicons.enable = true;
748
749
+
indent-o-matic.enable = true;
750
intellitab.enable = true;
751
752
which-key = {
+2
-2
homeModules/utils.nix
···
52
};
53
distro = null;
54
light_dark = "dark";
55
-
lightness = 0.65;
56
mode = "rgb";
57
-
preset = "interprogress";
58
pride_month_disable = false;
59
pride_month_shown = [];
60
};
···
52
};
53
distro = null;
54
light_dark = "dark";
55
+
lightness = 0.5;
56
mode = "rgb";
57
+
preset = "gay-men";
58
pride_month_disable = false;
59
pride_month_shown = [];
60
};
+4
-1
nixosConfigurations/installer.nix
···
88
};
89
90
cow = {
91
-
network.wireless = true;
0
0
0
92
hm.enable = true;
93
cat.enable = true;
94
};
···
88
};
89
90
cow = {
91
+
network = {
92
+
enable = true;
93
+
wireless = true;
94
+
};
95
hm.enable = true;
96
cat.enable = true;
97
};
+13
-5
nixosModules/network.nix
···
1
{...}: {
2
config,
3
lib,
0
4
...
5
}: {
6
options.cow.network = {
0
7
wireless = lib.mkEnableOption "wireless networking with IWD";
8
bluetooth = lib.mkEnableOption "bluetooth networking";
9
};
10
11
-
config = {
12
hardware.bluetooth = lib.mkIf config.cow.network.bluetooth {
13
enable = true;
14
settings = {
···
18
};
19
};
20
0
0
0
0
0
0
21
cow.imperm.keepCache =
22
(lib.optional config.cow.network.bluetooth "/var/lib/bluetooth")
23
++ (lib.optional config.cow.network.wireless "/var/lib/iwd");
24
25
-
networking = lib.mkIf config.cow.network.wireless {
26
-
wireless.iwd.enable = true;
27
useNetworkd = true;
28
useDHCP = true;
29
};
30
31
systemd.network = {
32
-
enable = lib.mkDefault config.cow.network.wireless;
33
wait-online = {
34
enable = lib.mkDefault false;
35
};
36
};
37
38
-
services = lib.mkIf config.cow.network.wireless {
39
resolved = {
40
enable = true;
41
llmnr = "false";
···
1
{...}: {
2
config,
3
lib,
4
+
pkgs,
5
...
6
}: {
7
options.cow.network = {
8
+
enable = lib.mkEnableOption "custom network setup using some nicer defaults";
9
wireless = lib.mkEnableOption "wireless networking with IWD";
10
bluetooth = lib.mkEnableOption "bluetooth networking";
11
};
12
13
+
config = lib.mkIf config.cow.network.enable {
14
hardware.bluetooth = lib.mkIf config.cow.network.bluetooth {
15
enable = true;
16
settings = {
···
20
};
21
};
22
23
+
environment.systemPackages = with pkgs;
24
+
(lib.optionals config.cow.network.bluetooth [
25
+
bluetui
26
+
])
27
+
++ (lib.optionals config.cow.network.wireless [impala]);
28
+
29
cow.imperm.keepCache =
30
(lib.optional config.cow.network.bluetooth "/var/lib/bluetooth")
31
++ (lib.optional config.cow.network.wireless "/var/lib/iwd");
32
33
+
networking = {
34
+
wireless.iwd.enable = config.cow.network.wireless;
35
useNetworkd = true;
36
useDHCP = true;
37
};
38
39
systemd.network = {
40
+
enable = lib.mkDefault true;
41
wait-online = {
42
enable = lib.mkDefault false;
43
};
44
};
45
46
+
services = lib.mkDefault {
47
resolved = {
48
enable = true;
49
llmnr = "false";
+1
nixosModules/role-desktop.nix
···
15
firewall.openForUsers = true;
16
hm.enable = true;
17
network = {
0
18
bluetooth = lib.mkDefault true;
19
wireless = lib.mkDefault true;
20
};
···
15
firewall.openForUsers = true;
16
hm.enable = true;
17
network = {
18
+
enable = true;
19
bluetooth = lib.mkDefault true;
20
wireless = lib.mkDefault true;
21
};
+1
nixosModules/role-laptop.nix
···
23
print.enable = true;
24
hm.enable = true;
25
network = {
0
26
bluetooth = true;
27
wireless = true;
28
};
···
23
print.enable = true;
24
hm.enable = true;
25
network = {
26
+
enable = true;
27
bluetooth = true;
28
wireless = true;
29
};