···
1
1
+
{
2
2
+
"nodes": {
3
3
+
"devshell": {
4
4
+
"inputs": {
5
5
+
"nixpkgs": [
6
6
+
"nixvim",
7
7
+
"nixpkgs"
8
8
+
]
9
9
+
},
10
10
+
"locked": {
11
11
+
"lastModified": 1728330715,
12
12
+
"narHash": "sha256-xRJ2nPOXb//u1jaBnDP56M7v5ldavjbtR6lfGqSvcKg=",
13
13
+
"owner": "numtide",
14
14
+
"repo": "devshell",
15
15
+
"rev": "dd6b80932022cea34a019e2bb32f6fa9e494dfef",
16
16
+
"type": "github"
17
17
+
},
18
18
+
"original": {
19
19
+
"owner": "numtide",
20
20
+
"repo": "devshell",
21
21
+
"type": "github"
22
22
+
}
23
23
+
},
24
24
+
"flake-compat": {
25
25
+
"locked": {
26
26
+
"lastModified": 1696426674,
27
27
+
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
28
28
+
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
29
29
+
"revCount": 57,
30
30
+
"type": "tarball",
31
31
+
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz"
32
32
+
},
33
33
+
"original": {
34
34
+
"type": "tarball",
35
35
+
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
36
36
+
}
37
37
+
},
38
38
+
"flake-parts": {
39
39
+
"inputs": {
40
40
+
"nixpkgs-lib": [
41
41
+
"nixvim",
42
42
+
"nixpkgs"
43
43
+
]
44
44
+
},
45
45
+
"locked": {
46
46
+
"lastModified": 1730504689,
47
47
+
"narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=",
48
48
+
"owner": "hercules-ci",
49
49
+
"repo": "flake-parts",
50
50
+
"rev": "506278e768c2a08bec68eb62932193e341f55c90",
51
51
+
"type": "github"
52
52
+
},
53
53
+
"original": {
54
54
+
"owner": "hercules-ci",
55
55
+
"repo": "flake-parts",
56
56
+
"type": "github"
57
57
+
}
58
58
+
},
59
59
+
"flake-utils": {
60
60
+
"inputs": {
61
61
+
"systems": "systems"
62
62
+
},
63
63
+
"locked": {
64
64
+
"lastModified": 1731533236,
65
65
+
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
66
66
+
"owner": "numtide",
67
67
+
"repo": "flake-utils",
68
68
+
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
69
69
+
"type": "github"
70
70
+
},
71
71
+
"original": {
72
72
+
"owner": "numtide",
73
73
+
"repo": "flake-utils",
74
74
+
"type": "github"
75
75
+
}
76
76
+
},
77
77
+
"git-hooks": {
78
78
+
"inputs": {
79
79
+
"flake-compat": [
80
80
+
"nixvim",
81
81
+
"flake-compat"
82
82
+
],
83
83
+
"gitignore": "gitignore",
84
84
+
"nixpkgs": [
85
85
+
"nixvim",
86
86
+
"nixpkgs"
87
87
+
],
88
88
+
"nixpkgs-stable": [
89
89
+
"nixvim",
90
90
+
"nixpkgs"
91
91
+
]
92
92
+
},
93
93
+
"locked": {
94
94
+
"lastModified": 1732021966,
95
95
+
"narHash": "sha256-mnTbjpdqF0luOkou8ZFi2asa1N3AA2CchR/RqCNmsGE=",
96
96
+
"owner": "cachix",
97
97
+
"repo": "git-hooks.nix",
98
98
+
"rev": "3308484d1a443fc5bc92012435d79e80458fe43c",
99
99
+
"type": "github"
100
100
+
},
101
101
+
"original": {
102
102
+
"owner": "cachix",
103
103
+
"repo": "git-hooks.nix",
104
104
+
"type": "github"
105
105
+
}
106
106
+
},
107
107
+
"gitignore": {
108
108
+
"inputs": {
109
109
+
"nixpkgs": [
110
110
+
"nixvim",
111
111
+
"git-hooks",
112
112
+
"nixpkgs"
113
113
+
]
114
114
+
},
115
115
+
"locked": {
116
116
+
"lastModified": 1709087332,
117
117
+
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
118
118
+
"owner": "hercules-ci",
119
119
+
"repo": "gitignore.nix",
120
120
+
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
121
121
+
"type": "github"
122
122
+
},
123
123
+
"original": {
124
124
+
"owner": "hercules-ci",
125
125
+
"repo": "gitignore.nix",
126
126
+
"type": "github"
127
127
+
}
128
128
+
},
129
129
+
"home-manager": {
130
130
+
"inputs": {
131
131
+
"nixpkgs": [
132
132
+
"nixpkgs"
133
133
+
]
134
134
+
},
135
135
+
"locked": {
136
136
+
"lastModified": 1733175814,
137
137
+
"narHash": "sha256-zFOtOaqjzZfPMsm1mwu98syv3y+jziAq5DfWygaMtLg=",
138
138
+
"owner": "nix-community",
139
139
+
"repo": "home-manager",
140
140
+
"rev": "bf23fe41082aa0289c209169302afd3397092f22",
141
141
+
"type": "github"
142
142
+
},
143
143
+
"original": {
144
144
+
"owner": "nix-community",
145
145
+
"repo": "home-manager",
146
146
+
"type": "github"
147
147
+
}
148
148
+
},
149
149
+
"home-manager_2": {
150
150
+
"inputs": {
151
151
+
"nixpkgs": [
152
152
+
"nixvim",
153
153
+
"nixpkgs"
154
154
+
]
155
155
+
},
156
156
+
"locked": {
157
157
+
"lastModified": 1733175814,
158
158
+
"narHash": "sha256-zFOtOaqjzZfPMsm1mwu98syv3y+jziAq5DfWygaMtLg=",
159
159
+
"owner": "nix-community",
160
160
+
"repo": "home-manager",
161
161
+
"rev": "bf23fe41082aa0289c209169302afd3397092f22",
162
162
+
"type": "github"
163
163
+
},
164
164
+
"original": {
165
165
+
"owner": "nix-community",
166
166
+
"repo": "home-manager",
167
167
+
"type": "github"
168
168
+
}
169
169
+
},
170
170
+
"ixx": {
171
171
+
"inputs": {
172
172
+
"flake-utils": [
173
173
+
"nixvim",
174
174
+
"nuschtosSearch",
175
175
+
"flake-utils"
176
176
+
],
177
177
+
"nixpkgs": [
178
178
+
"nixvim",
179
179
+
"nuschtosSearch",
180
180
+
"nixpkgs"
181
181
+
]
182
182
+
},
183
183
+
"locked": {
184
184
+
"lastModified": 1729958008,
185
185
+
"narHash": "sha256-EiOq8jF4Z/zQe0QYVc3+qSKxRK//CFHMB84aYrYGwEs=",
186
186
+
"owner": "NuschtOS",
187
187
+
"repo": "ixx",
188
188
+
"rev": "9fd01aad037f345350eab2cd45e1946cc66da4eb",
189
189
+
"type": "github"
190
190
+
},
191
191
+
"original": {
192
192
+
"owner": "NuschtOS",
193
193
+
"ref": "v0.0.6",
194
194
+
"repo": "ixx",
195
195
+
"type": "github"
196
196
+
}
197
197
+
},
198
198
+
"nix-darwin": {
199
199
+
"inputs": {
200
200
+
"nixpkgs": [
201
201
+
"nixvim",
202
202
+
"nixpkgs"
203
203
+
]
204
204
+
},
205
205
+
"locked": {
206
206
+
"lastModified": 1733105089,
207
207
+
"narHash": "sha256-Qs3YmoLYUJ8g4RkFj2rMrzrP91e4ShAioC9s+vG6ENM=",
208
208
+
"owner": "lnl7",
209
209
+
"repo": "nix-darwin",
210
210
+
"rev": "c6b65d946097baf3915dd51373251de98199280d",
211
211
+
"type": "github"
212
212
+
},
213
213
+
"original": {
214
214
+
"owner": "lnl7",
215
215
+
"repo": "nix-darwin",
216
216
+
"type": "github"
217
217
+
}
218
218
+
},
219
219
+
"nix-flatpak": {
220
220
+
"locked": {
221
221
+
"lastModified": 1733228754,
222
222
+
"narHash": "sha256-Jbt4imHmz5Z0jdaW7RrwAO1HYCmPs3XCt4j86jkG0b4=",
223
223
+
"owner": "gmodena",
224
224
+
"repo": "nix-flatpak",
225
225
+
"rev": "2880dc44fc8c450b4ffe1609a4bccd19ef759f5c",
226
226
+
"type": "github"
227
227
+
},
228
228
+
"original": {
229
229
+
"owner": "gmodena",
230
230
+
"repo": "nix-flatpak",
231
231
+
"type": "github"
232
232
+
}
233
233
+
},
234
234
+
"nixpkgs": {
235
235
+
"locked": {
236
236
+
"lastModified": 1733015953,
237
237
+
"narHash": "sha256-t4BBVpwG9B4hLgc6GUBuj3cjU7lP/PJfpTHuSqE+crk=",
238
238
+
"owner": "NixOS",
239
239
+
"repo": "nixpkgs",
240
240
+
"rev": "ac35b104800bff9028425fec3b6e8a41de2bbfff",
241
241
+
"type": "github"
242
242
+
},
243
243
+
"original": {
244
244
+
"id": "nixpkgs",
245
245
+
"ref": "nixos-unstable",
246
246
+
"type": "indirect"
247
247
+
}
248
248
+
},
249
249
+
"nixvim": {
250
250
+
"inputs": {
251
251
+
"devshell": "devshell",
252
252
+
"flake-compat": "flake-compat",
253
253
+
"flake-parts": "flake-parts",
254
254
+
"git-hooks": "git-hooks",
255
255
+
"home-manager": "home-manager_2",
256
256
+
"nix-darwin": "nix-darwin",
257
257
+
"nixpkgs": [
258
258
+
"nixpkgs"
259
259
+
],
260
260
+
"nuschtosSearch": "nuschtosSearch",
261
261
+
"treefmt-nix": "treefmt-nix"
262
262
+
},
263
263
+
"locked": {
264
264
+
"lastModified": 1733220378,
265
265
+
"narHash": "sha256-tWCskBne7LigfeXRWnUFJKKTLOYmmdqiwdqom2Sml1s=",
266
266
+
"owner": "nix-community",
267
267
+
"repo": "nixvim",
268
268
+
"rev": "78bfbf7b7eb7a1b6cf42e199547de55a55ba2cea",
269
269
+
"type": "github"
270
270
+
},
271
271
+
"original": {
272
272
+
"owner": "nix-community",
273
273
+
"repo": "nixvim",
274
274
+
"type": "github"
275
275
+
}
276
276
+
},
277
277
+
"nuschtosSearch": {
278
278
+
"inputs": {
279
279
+
"flake-utils": "flake-utils",
280
280
+
"ixx": "ixx",
281
281
+
"nixpkgs": [
282
282
+
"nixvim",
283
283
+
"nixpkgs"
284
284
+
]
285
285
+
},
286
286
+
"locked": {
287
287
+
"lastModified": 1733006402,
288
288
+
"narHash": "sha256-BC1CecAQISV5Q4LZK72Gx0+faemOwaChiD9rMVfDPoA=",
289
289
+
"owner": "NuschtOS",
290
290
+
"repo": "search",
291
291
+
"rev": "16307548b7a1247291c84ae6a12c0aacb07dfba2",
292
292
+
"type": "github"
293
293
+
},
294
294
+
"original": {
295
295
+
"owner": "NuschtOS",
296
296
+
"repo": "search",
297
297
+
"type": "github"
298
298
+
}
299
299
+
},
300
300
+
"root": {
301
301
+
"inputs": {
302
302
+
"home-manager": "home-manager",
303
303
+
"nix-flatpak": "nix-flatpak",
304
304
+
"nixpkgs": "nixpkgs",
305
305
+
"nixvim": "nixvim"
306
306
+
}
307
307
+
},
308
308
+
"systems": {
309
309
+
"locked": {
310
310
+
"lastModified": 1681028828,
311
311
+
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
312
312
+
"owner": "nix-systems",
313
313
+
"repo": "default",
314
314
+
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
315
315
+
"type": "github"
316
316
+
},
317
317
+
"original": {
318
318
+
"owner": "nix-systems",
319
319
+
"repo": "default",
320
320
+
"type": "github"
321
321
+
}
322
322
+
},
323
323
+
"treefmt-nix": {
324
324
+
"inputs": {
325
325
+
"nixpkgs": [
326
326
+
"nixvim",
327
327
+
"nixpkgs"
328
328
+
]
329
329
+
},
330
330
+
"locked": {
331
331
+
"lastModified": 1732894027,
332
332
+
"narHash": "sha256-2qbdorpq0TXHBWbVXaTqKoikN4bqAtAplTwGuII+oAc=",
333
333
+
"owner": "numtide",
334
334
+
"repo": "treefmt-nix",
335
335
+
"rev": "6209c381904cab55796c5d7350e89681d3b2a8ef",
336
336
+
"type": "github"
337
337
+
},
338
338
+
"original": {
339
339
+
"owner": "numtide",
340
340
+
"repo": "treefmt-nix",
341
341
+
"type": "github"
342
342
+
}
343
343
+
}
344
344
+
},
345
345
+
"root": "root",
346
346
+
"version": 7
347
347
+
}
···
1
1
+
{
2
2
+
description = "Folo's Flake";
3
3
+
4
4
+
inputs = {
5
5
+
nixpkgs.url = "nixpkgs/nixos-unstable";
6
6
+
home-manager = {
7
7
+
url = "github:nix-community/home-manager";
8
8
+
inputs.nixpkgs.follows = "nixpkgs";
9
9
+
};
10
10
+
nix-flatpak.url = "github:gmodena/nix-flatpak";
11
11
+
nixvim = {
12
12
+
url = "github:nix-community/nixvim";
13
13
+
inputs.nixpkgs.follows = "nixpkgs";
14
14
+
};
15
15
+
};
16
16
+
17
17
+
outputs = {
18
18
+
self,
19
19
+
nixpkgs,
20
20
+
home-manager,
21
21
+
nix-flatpak,
22
22
+
nixvim,
23
23
+
...
24
24
+
} @ inputs: let
25
25
+
lib = nixpkgs.lib;
26
26
+
system = "x86_64-linux";
27
27
+
pkgs = nixpkgs.legacyPackages.${system}; # required for home-manager
28
28
+
29
29
+
systemSettings = {
30
30
+
inherit system;
31
31
+
hostname = "Folo-Nix";
32
32
+
language = "en_US.UTF-8";
33
33
+
country = "pl_PL.UTF-8";
34
34
+
kbLayout = "pl";
35
35
+
timezone = "Europe/Warsaw";
36
36
+
videoDrivers = ["nvidia"];
37
37
+
displayManager = "sddm"; # one of sddm, none
38
38
+
iGPUBusId = "PCI:0:2:0";
39
39
+
dGPUBusId = "PCI:1:0:0";
40
40
+
desktop = "plasma"; # one of plasma, none
41
41
+
};
42
42
+
userSettings = {
43
43
+
username = "folo";
44
44
+
fullName = "Folo";
45
45
+
groups = ["networkmanager" "wheel"];
46
46
+
browser = "firefox"; # any of firefox, none
47
47
+
};
48
48
+
in {
49
49
+
nixosConfigurations = {
50
50
+
${systemSettings.hostname} = lib.nixosSystem {
51
51
+
inherit system;
52
52
+
53
53
+
specialArgs = {
54
54
+
inherit inputs;
55
55
+
inherit systemSettings;
56
56
+
inherit userSettings;
57
57
+
};
58
58
+
59
59
+
modules = [
60
60
+
nix-flatpak.nixosModules.nix-flatpak
61
61
+
./system/configuration.nix
62
62
+
];
63
63
+
};
64
64
+
};
65
65
+
66
66
+
homeConfigurations = {
67
67
+
${userSettings.username} = home-manager.lib.homeManagerConfiguration {
68
68
+
inherit pkgs;
69
69
+
extraSpecialArgs = {
70
70
+
inherit inputs;
71
71
+
inherit systemSettings;
72
72
+
inherit userSettings;
73
73
+
};
74
74
+
modules = [
75
75
+
./user/home.nix
76
76
+
];
77
77
+
};
78
78
+
};
79
79
+
};
80
80
+
}
···
1
1
+
{...}: {
2
2
+
boot.loader = {
3
3
+
systemd-boot = {
4
4
+
enable = true;
5
5
+
configurationLimit = 5;
6
6
+
};
7
7
+
efi.canTouchEfiVariables = true;
8
8
+
};
9
9
+
}
···
1
1
+
{
2
2
+
pkgs,
3
3
+
systemSettings,
4
4
+
...
5
5
+
}: let
6
6
+
nvidia =
7
7
+
if builtins.elem "nvidia" systemSettings.videoDrivers
8
8
+
then ./nvidia.nix
9
9
+
else ./none.nix;
10
10
+
in {
11
11
+
imports = [
12
12
+
./bootloader.nix
13
13
+
./hardware-configuration.nix
14
14
+
./networking.nix
15
15
+
./locale.nix
16
16
+
./xserver.nix
17
17
+
./fonts.nix
18
18
+
./sound.nix
19
19
+
./user.nix
20
20
+
./nix.nix
21
21
+
./flatpak.nix
22
22
+
23
23
+
nvidia
24
24
+
./${systemSettings.displayManager}.nix
25
25
+
./${systemSettings.desktop}.nix
26
26
+
];
27
27
+
28
28
+
# Allow unfree packages
29
29
+
30
30
+
# List packages installed in system profile. To search, run:
31
31
+
# $ nix search wget
32
32
+
environment.systemPackages = with pkgs; [
33
33
+
vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
34
34
+
# wget
35
35
+
alejandra
36
36
+
nixd
37
37
+
];
38
38
+
39
39
+
# Some programs need SUID wrappers, can be configured further or are
40
40
+
# started in user sessions.
41
41
+
# programs.mtr.enable = true;
42
42
+
# programs.gnupg.agent = {
43
43
+
# enable = true;
44
44
+
# enableSSHSupport = true;
45
45
+
# };
46
46
+
47
47
+
# List services that you want to enable:
48
48
+
49
49
+
# Enable the OpenSSH daemon.
50
50
+
# services.openssh.enable = true;
51
51
+
52
52
+
# Open ports in the firewall.
53
53
+
# networking.firewall.allowedTCPPorts = [ ... ];
54
54
+
# networking.firewall.allowedUDPPorts = [ ... ];
55
55
+
# Or disable the firewall altogether.
56
56
+
# networking.firewall.enable = false;
57
57
+
58
58
+
# This value determines the NixOS release from which the default
59
59
+
# settings for stateful data, like file locations and database versions
60
60
+
# on your system were taken. It‘s perfectly fine and recommended to leave
61
61
+
# this value at the release version of the first install of this system.
62
62
+
# Before changing this value read the documentation for this option
63
63
+
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
64
64
+
system.stateVersion = "24.05"; # Did you read the comment?
65
65
+
}
···
1
1
+
{...}: {
2
2
+
services.flatpak = {
3
3
+
enable = true;
4
4
+
packages = [
5
5
+
{
6
6
+
flatpakref = "https://sober.vinegarhq.org/sober.flatpakref";
7
7
+
sha256 = "1pj8y1xhiwgbnhrr3yr3ybpfis9slrl73i0b1lc9q89vhip6ym2l";
8
8
+
}
9
9
+
];
10
10
+
overrides = {
11
11
+
"org.vinegarhq.Sober".Environment = {
12
12
+
# do not touch, makes sober run on the iGPU and not crash lol
13
13
+
VK_DRIVER_FILES = "/usr/lib/x86_64-linux-gnu/GL/vulkan/icd.d/intel_icd.x86_64.json";
14
14
+
};
15
15
+
};
16
16
+
};
17
17
+
}
···
1
1
+
{pkgs, ...}: {
2
2
+
fonts.packages = with pkgs; [
3
3
+
jetbrains-mono
4
4
+
nerd-fonts.jetbrains-mono
5
5
+
];
6
6
+
}
···
1
1
+
# Do not modify this file! It was generated by ‘nixos-generate-config’
2
2
+
# and may be overwritten by future invocations. Please make changes
3
3
+
# to /etc/nixos/configuration.nix instead.
4
4
+
{ config, lib, pkgs, modulesPath, ... }:
5
5
+
6
6
+
{
7
7
+
imports =
8
8
+
[ (modulesPath + "/installer/scan/not-detected.nix")
9
9
+
];
10
10
+
11
11
+
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
12
12
+
boot.initrd.kernelModules = [ ];
13
13
+
boot.kernelModules = [ "kvm-intel" ];
14
14
+
boot.extraModulePackages = [ ];
15
15
+
16
16
+
fileSystems."/" =
17
17
+
{ device = "/dev/disk/by-uuid/04264672-853c-4cf3-9ac5-b1ca15c2d16f";
18
18
+
fsType = "ext4";
19
19
+
};
20
20
+
21
21
+
boot.initrd.luks.devices."luks-07e416e1-0e5c-4b07-b494-5f538836950e".device = "/dev/disk/by-uuid/07e416e1-0e5c-4b07-b494-5f538836950e";
22
22
+
23
23
+
fileSystems."/boot" =
24
24
+
{ device = "/dev/disk/by-uuid/C3B5-9A84";
25
25
+
fsType = "vfat";
26
26
+
options = [ "fmask=0077" "dmask=0077" ];
27
27
+
};
28
28
+
29
29
+
swapDevices = [ ];
30
30
+
31
31
+
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
32
32
+
# (the default) this is the recommended approach. When using systemd-networkd it's
33
33
+
# still possible to use this option, but it's recommended to use it in conjunction
34
34
+
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
35
35
+
networking.useDHCP = lib.mkDefault true;
36
36
+
# networking.interfaces.enp2s0f1.useDHCP = lib.mkDefault true;
37
37
+
# networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true;
38
38
+
39
39
+
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
40
40
+
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
41
41
+
}
···
1
1
+
{systemSettings, ...}: {
2
2
+
3
3
+
time.timeZone = systemSettings.timezone;
4
4
+
5
5
+
i18n.defaultLocale = systemSettings.language;
6
6
+
7
7
+
i18n.extraLocaleSettings = {
8
8
+
LC_ADDRESS = systemSettings.country;
9
9
+
LC_IDENTIFICATION = systemSettings.country;
10
10
+
LC_MEASUREMENT = systemSettings.country;
11
11
+
LC_MONETARY = systemSettings.country;
12
12
+
LC_NAME = systemSettings.country;
13
13
+
LC_NUMERIC = systemSettings.country;
14
14
+
LC_PAPER = systemSettings.country;
15
15
+
LC_TELEPHONE = systemSettings.country;
16
16
+
LC_TIME = systemSettings.country;
17
17
+
};
18
18
+
19
19
+
console.keyMap = systemSettings.kbLayout;
20
20
+
services.xserver.xkb.layout = systemSettings.kbLayout;
21
21
+
}
···
1
1
+
{systemSettings, ...}: {
2
2
+
networking = {
3
3
+
networkmanager.enable = true;
4
4
+
hostName = systemSettings.hostname;
5
5
+
};
6
6
+
}
···
1
1
+
{
2
2
+
inputs,
3
3
+
userSettings,
4
4
+
...
5
5
+
}: {
6
6
+
nix.nixPath = ["nixpkgs=${inputs.nixpkgs}"];
7
7
+
nixpkgs.config.allowUnfree = true;
8
8
+
nix.settings.experimental-features = ["flakes" "nix-command"];
9
9
+
10
10
+
programs.nh = {
11
11
+
enable = true;
12
12
+
flake = "/home/${userSettings.username}/dotfiles";
13
13
+
clean.enable = true;
14
14
+
clean.dates = "daily";
15
15
+
};
16
16
+
}
···
1
1
+
{systemSettings, ...}: {
2
2
+
hardware.nvidia = {
3
3
+
modesetting.enable = true;
4
4
+
nvidiaSettings = true;
5
5
+
open = false;
6
6
+
prime = {
7
7
+
intelBusId = systemSettings.iGPUBusId;
8
8
+
nvidiaBusId = systemSettings.dGPUBusId;
9
9
+
sync.enable = true;
10
10
+
};
11
11
+
};
12
12
+
}
···
1
1
+
{...}: {
2
2
+
services.desktopManager.plasma6.enable = true;
3
3
+
}
···
1
1
+
{...}: {
2
2
+
services.displayManager.sddm.enable = true;
3
3
+
}
···
1
1
+
{...}: {
2
2
+
security.rtkit.enable = true;
3
3
+
services.pipewire = {
4
4
+
enable = true;
5
5
+
alsa.enable = true;
6
6
+
alsa.support32Bit = true;
7
7
+
pulse.enable = true;
8
8
+
jack.enable = true;
9
9
+
};
10
10
+
}
···
1
1
+
{userSettings, ...}: {
2
2
+
users.users.${userSettings.username} = {
3
3
+
isNormalUser = true;
4
4
+
description = userSettings.fullName;
5
5
+
extraGroups = userSettings.groups;
6
6
+
};
7
7
+
}
···
1
1
+
{systemSettings, ...}: {
2
2
+
services.xserver = {
3
3
+
enable = true;
4
4
+
videoDrivers = systemSettings.videoDrivers;
5
5
+
};
6
6
+
7
7
+
hardware.graphics = {
8
8
+
enable = true;
9
9
+
enable32Bit = true;
10
10
+
};
11
11
+
}
···
1
1
+
{pkgs, ...}: {
2
2
+
home.packages = [ pkgs.discord ];
3
3
+
}
···
1
1
+
{...}: {
2
2
+
programs.firefox.enable = true;
3
3
+
}
···
1
1
+
{pkgs, ...}: {
2
2
+
3
3
+
home.packages = [ pkgs.gleam pkgs.exercism ];
4
4
+
5
5
+
}
···
1
1
+
{userSettings, ...}: {
2
2
+
imports = [
3
3
+
./discord.nix
4
4
+
./vscode.nix
5
5
+
./${userSettings.browser}.nix
6
6
+
./nixvim.nix
7
7
+
./gleam.nix
8
8
+
];
9
9
+
# Home Manager needs a bit of information about you and the paths it should
10
10
+
# manage.
11
11
+
home.username = "folo";
12
12
+
home.homeDirectory = "/home/folo";
13
13
+
14
14
+
nixpkgs.config.allowUnfree = true;
15
15
+
16
16
+
home.stateVersion = "24.05"; # Please read the comment before changing.
17
17
+
18
18
+
# Let Home Manager install and manage itself.
19
19
+
programs.home-manager.enable = true;
20
20
+
}
···
1
1
+
{pkgs, ...}: {
2
2
+
nixpkgs.config.allowUnfree = true;
3
3
+
home.packages = with pkgs; [
4
4
+
nixd
5
5
+
alejandra
6
6
+
];
7
7
+
}
···
1
1
+
{inputs, ...}: {
2
2
+
imports = [
3
3
+
inputs.nixvim.homeManagerModules.nixvim
4
4
+
];
5
5
+
programs.nixvim = {
6
6
+
enable = true;
7
7
+
colorschemes.gruvbox.enable = true;
8
8
+
plugins = {
9
9
+
web-devicons.enable = true;
10
10
+
bufferline.enable = true;
11
11
+
lualine.enable = true;
12
12
+
lsp = {
13
13
+
enable = true;
14
14
+
servers = {
15
15
+
lua_ls.enable = true;
16
16
+
# rust-analyzer.enable = true;
17
17
+
clangd.enable = true;
18
18
+
csharp_ls.enable = true;
19
19
+
nixd.enable = true;
20
20
+
};
21
21
+
};
22
22
+
};
23
23
+
};
24
24
+
}
···
1
1
+
{
2
2
+
pkgs,
3
3
+
systemSettings,
4
4
+
userSettings,
5
5
+
...
6
6
+
}: {
7
7
+
programs.vscode = {
8
8
+
enable = true;
9
9
+
extensions = with pkgs.vscode-extensions; [
10
10
+
jnoortheen.nix-ide
11
11
+
jdinhlife.gruvbox
12
12
+
gleam.gleam
13
13
+
ms-dotnettools.csdevkit
14
14
+
ms-python.python
15
15
+
ms-vscode.cpptools
16
16
+
ms-vscode.cmake-tools
17
17
+
rust-lang.rust-analyzer
18
18
+
golang.go
19
19
+
];
20
20
+
userSettings = {
21
21
+
"nix.serverPath" = "nixd";
22
22
+
"nix.enableLanguageServer" = true;
23
23
+
"nix.serverSettings" = {
24
24
+
"nixpkgs" = {
25
25
+
"expr" = "import <nixpkgs> { }";
26
26
+
};
27
27
+
28
28
+
"nixd" = {
29
29
+
"formatting" = {
30
30
+
"command" = ["alejandra"];
31
31
+
};
32
32
+
};
33
33
+
34
34
+
"options" = {
35
35
+
"nixos" = {
36
36
+
"expr" = "(builtins.getFlake \"/home/${userSettings.username}/dotfiles/\").nixosConfigurations.${systemSettings.hostname}.options";
37
37
+
};
38
38
+
"home_manager" = {
39
39
+
"expr" = "(builtins.getFlake \"/home/${userSettings.username}/dotfiles/\").homeConfigurations.\"${userSettings.username}\".options";
40
40
+
};
41
41
+
};
42
42
+
};
43
43
+
44
44
+
"editor.formatOnSave" = true;
45
45
+
"files.autoSave" = "afterDelay";
46
46
+
"workbench.colorTheme" = "Gruvbox Dark Medium";
47
47
+
"editor.cursorStyle" = "underline";
48
48
+
"editor.cursorBlinking" = "smooth";
49
49
+
"editor.fontFamily" = "JetBrains Mono";
50
50
+
"editor.fontigatures" = true;
51
51
+
"editor.fontSize" = 15;
52
52
+
"terminal.integrated.fontFamily" = "JetBrains Mono";
53
53
+
"terminal.integrated.cursorStyle" = "underline";
54
54
+
"terminal.integrated.cursorBlinking" = true;
55
55
+
};
56
56
+
};
57
57
+
}