summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--_sources/generated.json168
-rw-r--r--_sources/generated.nix105
-rw-r--r--accounts/gkleen@sif/niri/default.nix4
-rw-r--r--flake.lock165
-rw-r--r--flake.nix2
-rw-r--r--hosts/sif/default.nix10
-rw-r--r--hosts/surtr/email/default.nix35
-rw-r--r--installer/default.nix6
-rw-r--r--nvfetcher.toml12
-rw-r--r--overlays/nix-output-monitor.nix6
-rw-r--r--overlays/postfix-mta-sts-resolver/default.nix2
-rw-r--r--overlays/quickshell/default.nix3
-rw-r--r--overlays/quickshell/greetd-response.patch16
-rw-r--r--overlays/yt-dlp.nix1
-rw-r--r--system-profiles/zfs.nix4
-rw-r--r--user-profiles/zsh/default.nix2
-rw-r--r--users/gkleen/default.nix135
-rw-r--r--users/root.nix110
18 files changed, 385 insertions, 401 deletions
diff --git a/_sources/generated.json b/_sources/generated.json
index dd73e455..9eb52238 100644
--- a/_sources/generated.json
+++ b/_sources/generated.json
@@ -1,6 +1,6 @@
1{ 1{
2 "afew": { 2 "afew": {
3 "cargoLocks": null, 3 "cargoLock": null,
4 "date": "2021-05-30", 4 "date": "2021-05-30",
5 "extract": null, 5 "extract": null,
6 "name": "afew", 6 "name": "afew",
@@ -14,15 +14,15 @@
14 "owner": "gkleen", 14 "owner": "gkleen",
15 "repo": "afew", 15 "repo": "afew",
16 "rev": "8ef9a5b73e5d1063cf912c70027c655fb19d1109", 16 "rev": "8ef9a5b73e5d1063cf912c70027c655fb19d1109",
17 "sha256": "sha256-Wdvack+oAq88a9E6i+OcMlSNStv4dWsZstHgLao0c9g=", 17 "sha256": "sha256-DtOhimn5R+PRHO+3rHcY71e0xYPBnDqJGSNfQdNFpTQ=",
18 "sparseCheckout": [], 18 "sparseCheckout": [],
19 "type": "github" 19 "type": "github"
20 }, 20 },
21 "version": "8ef9a5b73e5d1063cf912c70027c655fb19d1109" 21 "version": "8ef9a5b73e5d1063cf912c70027c655fb19d1109"
22 }, 22 },
23 "bpf-examples": { 23 "bpf-examples": {
24 "cargoLocks": null, 24 "cargoLock": null,
25 "date": "2025-09-19", 25 "date": "2025-11-04",
26 "extract": null, 26 "extract": null,
27 "name": "bpf-examples", 27 "name": "bpf-examples",
28 "passthru": null, 28 "passthru": null,
@@ -34,15 +34,15 @@
34 "name": null, 34 "name": null,
35 "owner": "xdp-project", 35 "owner": "xdp-project",
36 "repo": "bpf-examples", 36 "repo": "bpf-examples",
37 "rev": "d621b4fb25c4877415a563887606ab0fe47ad59a", 37 "rev": "9a67546cbe94efe39ecb32579c33b8acabd695d7",
38 "sha256": "sha256-IQBTYtqHsghbb/Mpx29Hjr9AsLVG6w3BqfJYSKoMotU=", 38 "sha256": "sha256-Ztx4vZxVudlJOrCgCTkPiyY1XYTautRjwDhgYbziKus=",
39 "sparseCheckout": [], 39 "sparseCheckout": [],
40 "type": "github" 40 "type": "github"
41 }, 41 },
42 "version": "d621b4fb25c4877415a563887606ab0fe47ad59a" 42 "version": "9a67546cbe94efe39ecb32579c33b8acabd695d7"
43 }, 43 },
44 "emacs-scratch_el": { 44 "emacs-scratch_el": {
45 "cargoLocks": null, 45 "cargoLock": null,
46 "date": "2015-09-10", 46 "date": "2015-09-10",
47 "extract": null, 47 "extract": null,
48 "name": "emacs-scratch_el", 48 "name": "emacs-scratch_el",
@@ -63,7 +63,7 @@
63 "version": "0077334cc299aa7885f804d88f52cdb1b35caf71" 63 "version": "0077334cc299aa7885f804d88f52cdb1b35caf71"
64 }, 64 },
65 "emoji-data": { 65 "emoji-data": {
66 "cargoLocks": null, 66 "cargoLock": null,
67 "date": null, 67 "date": null,
68 "extract": null, 68 "extract": null,
69 "name": "emoji-data", 69 "name": "emoji-data",
@@ -84,7 +84,7 @@
84 "version": "v2.7" 84 "version": "v2.7"
85 }, 85 },
86 "lesspipe": { 86 "lesspipe": {
87 "cargoLocks": null, 87 "cargoLock": null,
88 "date": null, 88 "date": null,
89 "extract": null, 89 "extract": null,
90 "name": "lesspipe", 90 "name": "lesspipe",
@@ -97,28 +97,8 @@
97 }, 97 },
98 "version": "2.20" 98 "version": "2.20"
99 }, 99 },
100 "mako": {
101 "cargoLocks": null,
102 "date": "2025-09-11",
103 "extract": null,
104 "name": "mako",
105 "passthru": null,
106 "pinned": false,
107 "src": {
108 "deepClone": false,
109 "fetchSubmodules": false,
110 "leaveDotGit": false,
111 "name": null,
112 "rev": "8318972590420c042c0177af16e26a1768550fab",
113 "sha256": "sha256-Y/exF/Pv60E31Zl+M1zboWkmkZgOUCA3l93OKbtvZ+g=",
114 "sparseCheckout": [],
115 "type": "git",
116 "url": "https://github.com/emersion/mako"
117 },
118 "version": "8318972590420c042c0177af16e26a1768550fab"
119 },
120 "mpv-autosave": { 100 "mpv-autosave": {
121 "cargoLocks": null, 101 "cargoLock": null,
122 "date": "2020-10-22", 102 "date": "2020-10-22",
123 "extract": null, 103 "extract": null,
124 "name": "mpv-autosave", 104 "name": "mpv-autosave",
@@ -138,7 +118,7 @@
138 "version": "744c3ee61d2f0a8e9bb4e308dec6897215ae4704" 118 "version": "744c3ee61d2f0a8e9bb4e308dec6897215ae4704"
139 }, 119 },
140 "mpv-chapterskip": { 120 "mpv-chapterskip": {
141 "cargoLocks": null, 121 "cargoLock": null,
142 "date": "2022-09-08", 122 "date": "2022-09-08",
143 "extract": null, 123 "extract": null,
144 "name": "mpv-chapterskip", 124 "name": "mpv-chapterskip",
@@ -159,7 +139,7 @@
159 "version": "b26825316e3329882206ae78dc903ebc4613f039" 139 "version": "b26825316e3329882206ae78dc903ebc4613f039"
160 }, 140 },
161 "mpv-createchapter": { 141 "mpv-createchapter": {
162 "cargoLocks": null, 142 "cargoLock": null,
163 "date": "2020-09-05", 143 "date": "2020-09-05",
164 "extract": null, 144 "extract": null,
165 "name": "mpv-createchapter", 145 "name": "mpv-createchapter",
@@ -180,7 +160,7 @@
180 "version": "8dd33e2debbcb963a195ec1371e02c85b49e7faa" 160 "version": "8dd33e2debbcb963a195ec1371e02c85b49e7faa"
181 }, 161 },
182 "mpv-mpris": { 162 "mpv-mpris": {
183 "cargoLocks": null, 163 "cargoLock": null,
184 "date": null, 164 "date": null,
185 "extract": null, 165 "extract": null,
186 "name": "mpv-mpris", 166 "name": "mpv-mpris",
@@ -201,7 +181,7 @@
201 "version": "1.1" 181 "version": "1.1"
202 }, 182 },
203 "mpv-reload": { 183 "mpv-reload": {
204 "cargoLocks": null, 184 "cargoLock": null,
205 "date": "2025-02-07", 185 "date": "2025-02-07",
206 "extract": null, 186 "extract": null,
207 "name": "mpv-reload", 187 "name": "mpv-reload",
@@ -222,7 +202,7 @@
222 "version": "60e6fb1c578aa9af80d725857dac8e439095b033" 202 "version": "60e6fb1c578aa9af80d725857dac8e439095b033"
223 }, 203 },
224 "mpv-subselect": { 204 "mpv-subselect": {
225 "cargoLocks": null, 205 "cargoLock": null,
226 "date": "2025-04-04", 206 "date": "2025-04-04",
227 "extract": null, 207 "extract": null,
228 "name": "mpv-subselect", 208 "name": "mpv-subselect",
@@ -242,7 +222,7 @@
242 "version": "26d24a0fd1d69988eaedda6056a2c87d0a55b6cb" 222 "version": "26d24a0fd1d69988eaedda6056a2c87d0a55b6cb"
243 }, 223 },
244 "mpv-youtube-quality": { 224 "mpv-youtube-quality": {
245 "cargoLocks": null, 225 "cargoLock": null,
246 "date": "2020-02-10", 226 "date": "2020-02-10",
247 "extract": null, 227 "extract": null,
248 "name": "mpv-youtube-quality", 228 "name": "mpv-youtube-quality",
@@ -262,7 +242,7 @@
262 "version": "1f8c31457459ffc28cd1c3f3c2235a53efad7148" 242 "version": "1f8c31457459ffc28cd1c3f3c2235a53efad7148"
263 }, 243 },
264 "netbootxyz-efi": { 244 "netbootxyz-efi": {
265 "cargoLocks": null, 245 "cargoLock": null,
266 "date": null, 246 "date": null,
267 "extract": null, 247 "extract": null,
268 "name": "netbootxyz-efi", 248 "name": "netbootxyz-efi",
@@ -270,14 +250,14 @@
270 "pinned": false, 250 "pinned": false,
271 "src": { 251 "src": {
272 "name": null, 252 "name": null,
273 "sha256": "sha256-ipbZJ0mPCuwzb/TDtXXUBTuWOcSsKGAJ1GEGIgB2G7E=", 253 "sha256": "sha256-rmMU/OTOh7zId+zwQCXHt2SJyBAtLNfCOZhDyrkBKjw=",
274 "type": "url", 254 "type": "url",
275 "url": "https://github.com/netbootxyz/netboot.xyz/releases/download/2.0.88/netboot.xyz.efi" 255 "url": "https://github.com/netbootxyz/netboot.xyz/releases/download/2.0.89/netboot.xyz.efi"
276 }, 256 },
277 "version": "2.0.88" 257 "version": "2.0.89"
278 }, 258 },
279 "netbootxyz-lkrn": { 259 "netbootxyz-lkrn": {
280 "cargoLocks": null, 260 "cargoLock": null,
281 "date": null, 261 "date": null,
282 "extract": null, 262 "extract": null,
283 "name": "netbootxyz-lkrn", 263 "name": "netbootxyz-lkrn",
@@ -285,28 +265,48 @@
285 "pinned": false, 265 "pinned": false,
286 "src": { 266 "src": {
287 "name": null, 267 "name": null,
288 "sha256": "sha256-igy3O30noS25dU7ZnHuKrWqLLkjjd/L46IdCTd038dI=", 268 "sha256": "sha256-y0yibC3UeJUHslFBeMPVm2yEwxQqvL7/+BYMD5xDMm4=",
289 "type": "url", 269 "type": "url",
290 "url": "https://github.com/netbootxyz/netboot.xyz/releases/download/2.0.88/netboot.xyz.lkrn" 270 "url": "https://github.com/netbootxyz/netboot.xyz/releases/download/2.0.89/netboot.xyz.lkrn"
271 },
272 "version": "2.0.89"
273 },
274 "nix-output-monitor": {
275 "cargoLock": null,
276 "date": "2025-11-09",
277 "extract": null,
278 "name": "nix-output-monitor",
279 "passthru": null,
280 "pinned": false,
281 "src": {
282 "deepClone": false,
283 "fetchSubmodules": false,
284 "leaveDotGit": false,
285 "name": null,
286 "rev": "698e6f3afdc9d68dd65d84df7b030499dbfaf84b",
287 "sha256": "sha256-QwEVaUxvXEdx5icIZZYQQjvJO5j0+GeWtJvCJ/LZwpA=",
288 "sparseCheckout": [],
289 "type": "git",
290 "url": "https://code.maralorn.de/maralorn/nix-output-monitor.git"
291 }, 291 },
292 "version": "2.0.88" 292 "version": "698e6f3afdc9d68dd65d84df7b030499dbfaf84b"
293 }, 293 },
294 "postfix-mta-sts-resolver": { 294 "postfix-mta-sts-resolver": {
295 "cargoLocks": null, 295 "cargoLock": null,
296 "date": null, 296 "date": null,
297 "extract": null, 297 "extract": null,
298 "name": "postfix-mta-sts-resolver", 298 "name": "postfix-mta-sts-resolver",
299 "passthru": null, 299 "passthru": null,
300 "pinned": false, 300 "pinned": false,
301 "src": { 301 "src": {
302 "sha256": "sha256-DrPWxAlzdtb5K0Z+yVi+rL1h7CyLj0/Fiio8B2H/Ssg=", 302 "sha256": "sha256-OdliqfPeiRwQz/YtUSn43atQNrdtalHOw/lRuc/ji5g=",
303 "type": "tarball", 303 "type": "tarball",
304 "url": "https://github.com/Snawoot/postfix-mta-sts-resolver/archive/refs/tags/v1.5.0.tar.gz" 304 "url": "https://github.com/Snawoot/postfix-mta-sts-resolver/archive/refs/tags/v1.5.1.tar.gz"
305 }, 305 },
306 "version": "1.5.0" 306 "version": "1.5.1"
307 }, 307 },
308 "postfwd": { 308 "postfwd": {
309 "cargoLocks": null, 309 "cargoLock": null,
310 "date": null, 310 "date": null,
311 "extract": null, 311 "extract": null,
312 "name": "postfwd", 312 "name": "postfwd",
@@ -320,21 +320,21 @@
320 "version": "2.03" 320 "version": "2.03"
321 }, 321 },
322 "prometheus-lvm-exporter": { 322 "prometheus-lvm-exporter": {
323 "cargoLocks": null, 323 "cargoLock": null,
324 "date": null, 324 "date": null,
325 "extract": null, 325 "extract": null,
326 "name": "prometheus-lvm-exporter", 326 "name": "prometheus-lvm-exporter",
327 "passthru": null, 327 "passthru": null,
328 "pinned": false, 328 "pinned": false,
329 "src": { 329 "src": {
330 "sha256": "sha256-mg4iyp/heYzSoK+pGSMYfZb5UauoBMrEL1QPH6EoJ8o=", 330 "sha256": "sha256-Ra/Lo8RQQQz8UaiOzQd2FF7i+SDt4Mcj1gsk2WRh6KA=",
331 "type": "tarball", 331 "type": "tarball",
332 "url": "https://github.com/hansmi/prometheus-lvm-exporter/archive/refs/tags/v0.6.1.tar.gz" 332 "url": "https://github.com/hansmi/prometheus-lvm-exporter/archive/refs/tags/v0.6.2.tar.gz"
333 }, 333 },
334 "version": "0.6.1" 334 "version": "0.6.2"
335 }, 335 },
336 "psql-versioning": { 336 "psql-versioning": {
337 "cargoLocks": null, 337 "cargoLock": null,
338 "date": "2023-11-23", 338 "date": "2023-11-23",
339 "extract": null, 339 "extract": null,
340 "name": "psql-versioning", 340 "name": "psql-versioning",
@@ -354,8 +354,8 @@
354 "version": "330cb9da36651b701085ad53ae75ff296d02202a" 354 "version": "330cb9da36651b701085ad53ae75ff296d02202a"
355 }, 355 },
356 "quickshell": { 356 "quickshell": {
357 "cargoLocks": null, 357 "cargoLock": null,
358 "date": "2025-09-19", 358 "date": "2025-10-31",
359 "extract": null, 359 "extract": null,
360 "name": "quickshell", 360 "name": "quickshell",
361 "passthru": null, 361 "passthru": null,
@@ -365,16 +365,16 @@
365 "fetchSubmodules": false, 365 "fetchSubmodules": false,
366 "leaveDotGit": false, 366 "leaveDotGit": false,
367 "name": null, 367 "name": null,
368 "rev": "e9a574d919a89602d2868621576b2ccae54a5cb0", 368 "rev": "fc704e6b5d445899a1565955268c91942a4f263f",
369 "sha256": "sha256-wOv1guIi9THD1NjOtBU2Xh/Avg9xv7nIjsfFSkr1NeQ=", 369 "sha256": "sha256-er4gYrIoThYLjlsOMTysoRfn67d1Gci+ZpqDrtQxrA0=",
370 "sparseCheckout": [], 370 "sparseCheckout": [],
371 "type": "git", 371 "type": "git",
372 "url": "https://git.outfoxxed.me/quickshell/quickshell.git" 372 "url": "https://git.outfoxxed.me/quickshell/quickshell.git"
373 }, 373 },
374 "version": "e9a574d919a89602d2868621576b2ccae54a5cb0" 374 "version": "fc704e6b5d445899a1565955268c91942a4f263f"
375 }, 375 },
376 "scutiger": { 376 "scutiger": {
377 "cargoLocks": null, 377 "cargoLock": null,
378 "date": null, 378 "date": null,
379 "extract": null, 379 "extract": null,
380 "name": "scutiger", 380 "name": "scutiger",
@@ -388,7 +388,7 @@
388 "version": "0.2.0" 388 "version": "0.2.0"
389 }, 389 },
390 "smartprom": { 390 "smartprom": {
391 "cargoLocks": null, 391 "cargoLock": null,
392 "date": null, 392 "date": null,
393 "extract": null, 393 "extract": null,
394 "name": "smartprom", 394 "name": "smartprom",
@@ -402,7 +402,7 @@
402 "version": "2.5.0" 402 "version": "2.5.0"
403 }, 403 },
404 "spice-record": { 404 "spice-record": {
405 "cargoLocks": null, 405 "cargoLock": null,
406 "date": null, 406 "date": null,
407 "extract": null, 407 "extract": null,
408 "name": "spice-record", 408 "name": "spice-record",
@@ -415,28 +415,8 @@
415 }, 415 },
416 "version": "0.2.1" 416 "version": "0.2.1"
417 }, 417 },
418 "swayosd": {
419 "cargoLocks": null,
420 "date": "2025-07-07",
421 "extract": null,
422 "name": "swayosd",
423 "passthru": null,
424 "pinned": false,
425 "src": {
426 "deepClone": false,
427 "fetchSubmodules": false,
428 "leaveDotGit": false,
429 "name": null,
430 "rev": "73aed75146b81aaf67c4301353790ff5a17aed1f",
431 "sha256": "sha256-p31HNelptAw7Sk0NmYP4FkoUCdA5uAsrXC20JJp24Vw=",
432 "sparseCheckout": [],
433 "type": "git",
434 "url": "https://github.com/ErikReider/SwayOSD"
435 },
436 "version": "73aed75146b81aaf67c4301353790ff5a17aed1f"
437 },
438 "tomorrow-night-paradise-theme": { 418 "tomorrow-night-paradise-theme": {
439 "cargoLocks": null, 419 "cargoLock": null,
440 "date": "2012-06-04", 420 "date": "2012-06-04",
441 "extract": null, 421 "extract": null,
442 "name": "tomorrow-night-paradise-theme", 422 "name": "tomorrow-night-paradise-theme",
@@ -456,8 +436,8 @@
456 "version": "70225a5bf90d495e13a9260bfdc268632ece0801" 436 "version": "70225a5bf90d495e13a9260bfdc268632ece0801"
457 }, 437 },
458 "v4l2loopback": { 438 "v4l2loopback": {
459 "cargoLocks": null, 439 "cargoLock": null,
460 "date": "2025-08-18", 440 "date": "2025-10-15",
461 "extract": null, 441 "extract": null,
462 "name": "v4l2loopback", 442 "name": "v4l2loopback",
463 "passthru": null, 443 "passthru": null,
@@ -469,15 +449,15 @@
469 "name": null, 449 "name": null,
470 "owner": "umlaeute", 450 "owner": "umlaeute",
471 "repo": "v4l2loopback", 451 "repo": "v4l2loopback",
472 "rev": "5eaa59e7c41d0e6f35a6c14c3b756d94d25f58ed", 452 "rev": "c394f8fb2c168932055c2577247c42390198d7c9",
473 "sha256": "sha256-YcSpNfItvUdPVirlDyGdYuCnVvxHhh780x+OI5VNZmE=", 453 "sha256": "sha256-lf2n5tjnGHwhY49UVKnGgaz0ZPexFcK0/RkMDecGfXs=",
474 "sparseCheckout": [], 454 "sparseCheckout": [],
475 "type": "github" 455 "type": "github"
476 }, 456 },
477 "version": "5eaa59e7c41d0e6f35a6c14c3b756d94d25f58ed" 457 "version": "c394f8fb2c168932055c2577247c42390198d7c9"
478 }, 458 },
479 "xcompose": { 459 "xcompose": {
480 "cargoLocks": null, 460 "cargoLock": null,
481 "date": "2025-06-05", 461 "date": "2025-06-05",
482 "extract": null, 462 "extract": null,
483 "name": "xcompose", 463 "name": "xcompose",
@@ -498,7 +478,7 @@
498 "version": "4d8eab4d05a19537ce79294ae0459fdae78ffb20" 478 "version": "4d8eab4d05a19537ce79294ae0459fdae78ffb20"
499 }, 479 },
500 "yt-dlp": { 480 "yt-dlp": {
501 "cargoLocks": null, 481 "cargoLock": null,
502 "date": null, 482 "date": null,
503 "extract": null, 483 "extract": null,
504 "name": "yt-dlp", 484 "name": "yt-dlp",
@@ -506,10 +486,10 @@
506 "pinned": false, 486 "pinned": false,
507 "src": { 487 "src": {
508 "name": null, 488 "name": null,
509 "sha256": "sha256-koKtHerbTJCy5tO8+fNgq/iMXy5LqDba17UTh7CG11c=", 489 "sha256": "sha256-XweVprj8V6XCMzLWfWxqz4GaC0a5GmMkuuKUFPqX8FI=",
510 "type": "url", 490 "type": "url",
511 "url": "https://pypi.org/packages/source/y/yt_dlp/yt_dlp-2025.9.23.tar.gz" 491 "url": "https://pypi.org/packages/source/y/yt_dlp/yt_dlp-2025.11.12.tar.gz"
512 }, 492 },
513 "version": "2025.9.23" 493 "version": "2025.11.12"
514 } 494 }
515} \ No newline at end of file 495} \ No newline at end of file
diff --git a/_sources/generated.nix b/_sources/generated.nix
index 8eac064b..14548513 100644
--- a/_sources/generated.nix
+++ b/_sources/generated.nix
@@ -1,5 +1,10 @@
1# This file was generated by nvfetcher, please do not modify it manually. 1# This file was generated by nvfetcher, please do not modify it manually.
2{ fetchgit, fetchurl, fetchFromGitHub, dockerTools }: 2{
3 fetchgit,
4 fetchurl,
5 fetchFromGitHub,
6 dockerTools,
7}:
3{ 8{
4 afew = { 9 afew = {
5 pname = "afew"; 10 pname = "afew";
@@ -12,21 +17,21 @@
12 deepClone = false; 17 deepClone = false;
13 leaveDotGit = true; 18 leaveDotGit = true;
14 sparseCheckout = [ ]; 19 sparseCheckout = [ ];
15 sha256 = "sha256-Wdvack+oAq88a9E6i+OcMlSNStv4dWsZstHgLao0c9g="; 20 sha256 = "sha256-DtOhimn5R+PRHO+3rHcY71e0xYPBnDqJGSNfQdNFpTQ=";
16 }; 21 };
17 date = "2021-05-30"; 22 date = "2021-05-30";
18 }; 23 };
19 bpf-examples = { 24 bpf-examples = {
20 pname = "bpf-examples"; 25 pname = "bpf-examples";
21 version = "d621b4fb25c4877415a563887606ab0fe47ad59a"; 26 version = "9a67546cbe94efe39ecb32579c33b8acabd695d7";
22 src = fetchFromGitHub { 27 src = fetchFromGitHub {
23 owner = "xdp-project"; 28 owner = "xdp-project";
24 repo = "bpf-examples"; 29 repo = "bpf-examples";
25 rev = "d621b4fb25c4877415a563887606ab0fe47ad59a"; 30 rev = "9a67546cbe94efe39ecb32579c33b8acabd695d7";
26 fetchSubmodules = true; 31 fetchSubmodules = true;
27 sha256 = "sha256-IQBTYtqHsghbb/Mpx29Hjr9AsLVG6w3BqfJYSKoMotU="; 32 sha256 = "sha256-Ztx4vZxVudlJOrCgCTkPiyY1XYTautRjwDhgYbziKus=";
28 }; 33 };
29 date = "2025-09-19"; 34 date = "2025-11-04";
30 }; 35 };
31 emacs-scratch_el = { 36 emacs-scratch_el = {
32 pname = "emacs-scratch_el"; 37 pname = "emacs-scratch_el";
@@ -59,20 +64,6 @@
59 sha256 = "sha256-yb3IzdaMiv1PwqHOfSyHvmWXyStvK/XXC49saXVAJFU="; 64 sha256 = "sha256-yb3IzdaMiv1PwqHOfSyHvmWXyStvK/XXC49saXVAJFU=";
60 }; 65 };
61 }; 66 };
62 mako = {
63 pname = "mako";
64 version = "8318972590420c042c0177af16e26a1768550fab";
65 src = fetchgit {
66 url = "https://github.com/emersion/mako";
67 rev = "8318972590420c042c0177af16e26a1768550fab";
68 fetchSubmodules = false;
69 deepClone = false;
70 leaveDotGit = false;
71 sparseCheckout = [ ];
72 sha256 = "sha256-Y/exF/Pv60E31Zl+M1zboWkmkZgOUCA3l93OKbtvZ+g=";
73 };
74 date = "2025-09-11";
75 };
76 mpv-autosave = { 67 mpv-autosave = {
77 pname = "mpv-autosave"; 68 pname = "mpv-autosave";
78 version = "744c3ee61d2f0a8e9bb4e308dec6897215ae4704"; 69 version = "744c3ee61d2f0a8e9bb4e308dec6897215ae4704";
@@ -164,26 +155,40 @@
164 }; 155 };
165 netbootxyz-efi = { 156 netbootxyz-efi = {
166 pname = "netbootxyz-efi"; 157 pname = "netbootxyz-efi";
167 version = "2.0.88"; 158 version = "2.0.89";
168 src = fetchurl { 159 src = fetchurl {
169 url = "https://github.com/netbootxyz/netboot.xyz/releases/download/2.0.88/netboot.xyz.efi"; 160 url = "https://github.com/netbootxyz/netboot.xyz/releases/download/2.0.89/netboot.xyz.efi";
170 sha256 = "sha256-ipbZJ0mPCuwzb/TDtXXUBTuWOcSsKGAJ1GEGIgB2G7E="; 161 sha256 = "sha256-rmMU/OTOh7zId+zwQCXHt2SJyBAtLNfCOZhDyrkBKjw=";
171 }; 162 };
172 }; 163 };
173 netbootxyz-lkrn = { 164 netbootxyz-lkrn = {
174 pname = "netbootxyz-lkrn"; 165 pname = "netbootxyz-lkrn";
175 version = "2.0.88"; 166 version = "2.0.89";
176 src = fetchurl { 167 src = fetchurl {
177 url = "https://github.com/netbootxyz/netboot.xyz/releases/download/2.0.88/netboot.xyz.lkrn"; 168 url = "https://github.com/netbootxyz/netboot.xyz/releases/download/2.0.89/netboot.xyz.lkrn";
178 sha256 = "sha256-igy3O30noS25dU7ZnHuKrWqLLkjjd/L46IdCTd038dI="; 169 sha256 = "sha256-y0yibC3UeJUHslFBeMPVm2yEwxQqvL7/+BYMD5xDMm4=";
170 };
171 };
172 nix-output-monitor = {
173 pname = "nix-output-monitor";
174 version = "698e6f3afdc9d68dd65d84df7b030499dbfaf84b";
175 src = fetchgit {
176 url = "https://code.maralorn.de/maralorn/nix-output-monitor.git";
177 rev = "698e6f3afdc9d68dd65d84df7b030499dbfaf84b";
178 fetchSubmodules = false;
179 deepClone = false;
180 leaveDotGit = false;
181 sparseCheckout = [ ];
182 sha256 = "sha256-QwEVaUxvXEdx5icIZZYQQjvJO5j0+GeWtJvCJ/LZwpA=";
179 }; 183 };
184 date = "2025-11-09";
180 }; 185 };
181 postfix-mta-sts-resolver = { 186 postfix-mta-sts-resolver = {
182 pname = "postfix-mta-sts-resolver"; 187 pname = "postfix-mta-sts-resolver";
183 version = "1.5.0"; 188 version = "1.5.1";
184 src = fetchTarball { 189 src = fetchTarball {
185 url = "https://github.com/Snawoot/postfix-mta-sts-resolver/archive/refs/tags/v1.5.0.tar.gz"; 190 url = "https://github.com/Snawoot/postfix-mta-sts-resolver/archive/refs/tags/v1.5.1.tar.gz";
186 sha256 = "sha256-DrPWxAlzdtb5K0Z+yVi+rL1h7CyLj0/Fiio8B2H/Ssg="; 191 sha256 = "sha256-OdliqfPeiRwQz/YtUSn43atQNrdtalHOw/lRuc/ji5g=";
187 }; 192 };
188 }; 193 };
189 postfwd = { 194 postfwd = {
@@ -196,10 +201,10 @@
196 }; 201 };
197 prometheus-lvm-exporter = { 202 prometheus-lvm-exporter = {
198 pname = "prometheus-lvm-exporter"; 203 pname = "prometheus-lvm-exporter";
199 version = "0.6.1"; 204 version = "0.6.2";
200 src = fetchTarball { 205 src = fetchTarball {
201 url = "https://github.com/hansmi/prometheus-lvm-exporter/archive/refs/tags/v0.6.1.tar.gz"; 206 url = "https://github.com/hansmi/prometheus-lvm-exporter/archive/refs/tags/v0.6.2.tar.gz";
202 sha256 = "sha256-mg4iyp/heYzSoK+pGSMYfZb5UauoBMrEL1QPH6EoJ8o="; 207 sha256 = "sha256-Ra/Lo8RQQQz8UaiOzQd2FF7i+SDt4Mcj1gsk2WRh6KA=";
203 }; 208 };
204 }; 209 };
205 psql-versioning = { 210 psql-versioning = {
@@ -218,17 +223,17 @@
218 }; 223 };
219 quickshell = { 224 quickshell = {
220 pname = "quickshell"; 225 pname = "quickshell";
221 version = "e9a574d919a89602d2868621576b2ccae54a5cb0"; 226 version = "fc704e6b5d445899a1565955268c91942a4f263f";
222 src = fetchgit { 227 src = fetchgit {
223 url = "https://git.outfoxxed.me/quickshell/quickshell.git"; 228 url = "https://git.outfoxxed.me/quickshell/quickshell.git";
224 rev = "e9a574d919a89602d2868621576b2ccae54a5cb0"; 229 rev = "fc704e6b5d445899a1565955268c91942a4f263f";
225 fetchSubmodules = false; 230 fetchSubmodules = false;
226 deepClone = false; 231 deepClone = false;
227 leaveDotGit = false; 232 leaveDotGit = false;
228 sparseCheckout = [ ]; 233 sparseCheckout = [ ];
229 sha256 = "sha256-wOv1guIi9THD1NjOtBU2Xh/Avg9xv7nIjsfFSkr1NeQ="; 234 sha256 = "sha256-er4gYrIoThYLjlsOMTysoRfn67d1Gci+ZpqDrtQxrA0=";
230 }; 235 };
231 date = "2025-09-19"; 236 date = "2025-10-31";
232 }; 237 };
233 scutiger = { 238 scutiger = {
234 pname = "scutiger"; 239 pname = "scutiger";
@@ -254,20 +259,6 @@
254 sha256 = "sha256-7d/0fepOvdswuBGJCCMULB2kXOFBLP78yqX4NmByCF8="; 259 sha256 = "sha256-7d/0fepOvdswuBGJCCMULB2kXOFBLP78yqX4NmByCF8=";
255 }; 260 };
256 }; 261 };
257 swayosd = {
258 pname = "swayosd";
259 version = "73aed75146b81aaf67c4301353790ff5a17aed1f";
260 src = fetchgit {
261 url = "https://github.com/ErikReider/SwayOSD";
262 rev = "73aed75146b81aaf67c4301353790ff5a17aed1f";
263 fetchSubmodules = false;
264 deepClone = false;
265 leaveDotGit = false;
266 sparseCheckout = [ ];
267 sha256 = "sha256-p31HNelptAw7Sk0NmYP4FkoUCdA5uAsrXC20JJp24Vw=";
268 };
269 date = "2025-07-07";
270 };
271 tomorrow-night-paradise-theme = { 262 tomorrow-night-paradise-theme = {
272 pname = "tomorrow-night-paradise-theme"; 263 pname = "tomorrow-night-paradise-theme";
273 version = "70225a5bf90d495e13a9260bfdc268632ece0801"; 264 version = "70225a5bf90d495e13a9260bfdc268632ece0801";
@@ -284,15 +275,15 @@
284 }; 275 };
285 v4l2loopback = { 276 v4l2loopback = {
286 pname = "v4l2loopback"; 277 pname = "v4l2loopback";
287 version = "5eaa59e7c41d0e6f35a6c14c3b756d94d25f58ed"; 278 version = "c394f8fb2c168932055c2577247c42390198d7c9";
288 src = fetchFromGitHub { 279 src = fetchFromGitHub {
289 owner = "umlaeute"; 280 owner = "umlaeute";
290 repo = "v4l2loopback"; 281 repo = "v4l2loopback";
291 rev = "5eaa59e7c41d0e6f35a6c14c3b756d94d25f58ed"; 282 rev = "c394f8fb2c168932055c2577247c42390198d7c9";
292 fetchSubmodules = true; 283 fetchSubmodules = true;
293 sha256 = "sha256-YcSpNfItvUdPVirlDyGdYuCnVvxHhh780x+OI5VNZmE="; 284 sha256 = "sha256-lf2n5tjnGHwhY49UVKnGgaz0ZPexFcK0/RkMDecGfXs=";
294 }; 285 };
295 date = "2025-08-18"; 286 date = "2025-10-15";
296 }; 287 };
297 xcompose = { 288 xcompose = {
298 pname = "xcompose"; 289 pname = "xcompose";
@@ -308,10 +299,10 @@
308 }; 299 };
309 yt-dlp = { 300 yt-dlp = {
310 pname = "yt-dlp"; 301 pname = "yt-dlp";
311 version = "2025.9.23"; 302 version = "2025.11.12";
312 src = fetchurl { 303 src = fetchurl {
313 url = "https://pypi.org/packages/source/y/yt_dlp/yt_dlp-2025.9.23.tar.gz"; 304 url = "https://pypi.org/packages/source/y/yt_dlp/yt_dlp-2025.11.12.tar.gz";
314 sha256 = "sha256-koKtHerbTJCy5tO8+fNgq/iMXy5LqDba17UTh7CG11c="; 305 sha256 = "sha256-XweVprj8V6XCMzLWfWxqz4GaC0a5GmMkuuKUFPqX8FI=";
315 }; 306 };
316 }; 307 };
317} 308}
diff --git a/accounts/gkleen@sif/niri/default.nix b/accounts/gkleen@sif/niri/default.nix
index 5ae372c1..d4b77d9c 100644
--- a/accounts/gkleen@sif/niri/default.nix
+++ b/accounts/gkleen@sif/niri/default.nix
@@ -821,8 +821,8 @@ in {
821 wl-copy "$(cut -d ':' -f 1 <<<"$FUZZEL_RES" | tr -d '\n')" && wtype -k XF86Paste 821 wl-copy "$(cut -d ':' -f 1 <<<"$FUZZEL_RES" | tr -d '\n')" && wtype -k XF86Paste
822 ''; 822 '';
823 })); 823 }));
824 "Print".action = screenshot; 824 "Print".action = kdl.magic-leaf "screenshot";
825 "Control+Print".action = screenshot-window; 825 "Control+Print".action = kdl.magic-leaf "screenshot-window";
826 "Shift+Print".action = kdl.magic-leaf "screenshot-screen"; 826 "Shift+Print".action = kdl.magic-leaf "screenshot-screen";
827 "Mod+B".action = with-select-window-action ".workspace_id == ($active_workspace | tonumber)" "{\"Action\":{\"FocusWindow\":{\"id\": .id}}}"; 827 "Mod+B".action = with-select-window-action ".workspace_id == ($active_workspace | tonumber)" "{\"Action\":{\"FocusWindow\":{\"id\": .id}}}";
828 "Mod+Shift+B".action = with-select-window-action "true" "{\"Action\":{\"FocusWindow\":{\"id\": .id}}}"; 828 "Mod+Shift+B".action = with-select-window-action "true" "{\"Action\":{\"FocusWindow\":{\"id\": .id}}}";
diff --git a/flake.lock b/flake.lock
index b99d27a9..71b66525 100644
--- a/flake.lock
+++ b/flake.lock
@@ -65,11 +65,11 @@
65 }, 65 },
66 "crane": { 66 "crane": {
67 "locked": { 67 "locked": {
68 "lastModified": 1731098351, 68 "lastModified": 1754269165,
69 "narHash": "sha256-HQkYvKvaLQqNa10KEFGgWHfMAbWBfFp+4cAgkut+NNE=", 69 "narHash": "sha256-0tcS8FHd4QjbCVoxN9jI+PjHgA4vc/IjkUSp+N3zy0U=",
70 "owner": "ipetkov", 70 "owner": "ipetkov",
71 "repo": "crane", 71 "repo": "crane",
72 "rev": "ef80ead953c1b28316cc3f8613904edc2eb90c28", 72 "rev": "444e81206df3f7d92780680e45858e31d2f07a08",
73 "type": "github" 73 "type": "github"
74 }, 74 },
75 "original": { 75 "original": {
@@ -91,11 +91,11 @@
91 ] 91 ]
92 }, 92 },
93 "locked": { 93 "locked": {
94 "lastModified": 1749105467, 94 "lastModified": 1762286984,
95 "narHash": "sha256-hXh76y/wDl15almBcqvjryB50B0BaiXJKk20f314RoE=", 95 "narHash": "sha256-9I2H9x5We6Pl+DBYHjR1s3UT8wgwcpAH03kn9CqtdQc=",
96 "owner": "serokell", 96 "owner": "serokell",
97 "repo": "deploy-rs", 97 "repo": "deploy-rs",
98 "rev": "6bc76b872374845ba9d645a2f012b764fecd765f", 98 "rev": "9c870f63e28ec1e83305f7f6cb73c941e699f74f",
99 "type": "github" 99 "type": "github"
100 }, 100 },
101 "original": { 101 "original": {
@@ -140,11 +140,11 @@
140 "flake-compat_3": { 140 "flake-compat_3": {
141 "flake": false, 141 "flake": false,
142 "locked": { 142 "locked": {
143 "lastModified": 1747046372, 143 "lastModified": 1761588595,
144 "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", 144 "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
145 "owner": "edolstra", 145 "owner": "edolstra",
146 "repo": "flake-compat", 146 "repo": "flake-compat",
147 "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", 147 "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
148 "type": "github" 148 "type": "github"
149 }, 149 },
150 "original": { 150 "original": {
@@ -157,11 +157,11 @@
157 "flake-compat_4": { 157 "flake-compat_4": {
158 "flake": false, 158 "flake": false,
159 "locked": { 159 "locked": {
160 "lastModified": 1696426674, 160 "lastModified": 1747046372,
161 "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", 161 "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
162 "owner": "edolstra", 162 "owner": "edolstra",
163 "repo": "flake-compat", 163 "repo": "flake-compat",
164 "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", 164 "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
165 "type": "github" 165 "type": "github"
166 }, 166 },
167 "original": { 167 "original": {
@@ -230,11 +230,11 @@
230 ] 230 ]
231 }, 231 },
232 "locked": { 232 "locked": {
233 "lastModified": 1730504689, 233 "lastModified": 1754091436,
234 "narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=", 234 "narHash": "sha256-XKqDMN1/Qj1DKivQvscI4vmHfDfvYR2pfuFOJiCeewM=",
235 "owner": "hercules-ci", 235 "owner": "hercules-ci",
236 "repo": "flake-parts", 236 "repo": "flake-parts",
237 "rev": "506278e768c2a08bec68eb62932193e341f55c90", 237 "rev": "67df8c627c2c39c41dbec76a1f201929929ab0bd",
238 "type": "github" 238 "type": "github"
239 }, 239 },
240 "original": { 240 "original": {
@@ -406,11 +406,11 @@
406 ] 406 ]
407 }, 407 },
408 "locked": { 408 "locked": {
409 "lastModified": 1753177987, 409 "lastModified": 1762691701,
410 "narHash": "sha256-PkCc+YTrl0A/H6EV09DCr5yZpvQZ9DkuFXj/NNaEvHs=", 410 "narHash": "sha256-G4XxDQEg+nWQZuJ8fFspFWEwQKBNWp2qfwNerTqgPgo=",
411 "owner": "gkleen", 411 "owner": "gkleen",
412 "repo": "home-manager", 412 "repo": "home-manager",
413 "rev": "b493410fc6e427129a1caee8f50970d152a27daa", 413 "rev": "d2e6122b484d43b6e87d4ea0578057507df380ab",
414 "type": "github" 414 "type": "github"
415 }, 415 },
416 "original": { 416 "original": {
@@ -469,16 +469,16 @@
469 "rust-overlay": "rust-overlay" 469 "rust-overlay": "rust-overlay"
470 }, 470 },
471 "locked": { 471 "locked": {
472 "lastModified": 1737639419, 472 "lastModified": 1762205063,
473 "narHash": "sha256-AEEDktApTEZ5PZXNDkry2YV2k6t0dTgLPEmAZbnigXU=", 473 "narHash": "sha256-If6vQ+KvtKs3ARBO9G3l+4wFSCYtRBrwX1z+I+B61wQ=",
474 "owner": "nix-community", 474 "owner": "nix-community",
475 "repo": "lanzaboote", 475 "repo": "lanzaboote",
476 "rev": "a65905a09e2c43ff63be8c0e86a93712361f871e", 476 "rev": "88b8a563ff5704f4e8d8e5118fb911fa2110ca05",
477 "type": "github" 477 "type": "github"
478 }, 478 },
479 "original": { 479 "original": {
480 "owner": "nix-community", 480 "owner": "nix-community",
481 "ref": "v0.4.2", 481 "ref": "v0.4.3",
482 "repo": "lanzaboote", 482 "repo": "lanzaboote",
483 "type": "github" 483 "type": "github"
484 } 484 }
@@ -502,16 +502,16 @@
502 "nixpkgs": [ 502 "nixpkgs": [
503 "nixpkgs" 503 "nixpkgs"
504 ], 504 ],
505 "nixpkgs-stable": "nixpkgs-stable_3", 505 "nixpkgs-stable": "nixpkgs-stable_2",
506 "xwayland-satellite-stable": "xwayland-satellite-stable", 506 "xwayland-satellite-stable": "xwayland-satellite-stable",
507 "xwayland-satellite-unstable": "xwayland-satellite-unstable" 507 "xwayland-satellite-unstable": "xwayland-satellite-unstable"
508 }, 508 },
509 "locked": { 509 "locked": {
510 "lastModified": 1757437545, 510 "lastModified": 1762886612,
511 "narHash": "sha256-7ssbrFnmSrqtCtOySiu5ncyOBxPrR6p2nhNHrg6D+fo=", 511 "narHash": "sha256-gaPe/qkI4C9KyT8IZMvS9rXCWn2klxCC+MjXFU+jvqk=",
512 "owner": "sodiboo", 512 "owner": "sodiboo",
513 "repo": "niri-flake", 513 "repo": "niri-flake",
514 "rev": "ef694b996daeeb8684c0adfaa9b7067a6e709054", 514 "rev": "4efef728e910bb8f009fa2db143baeacaa3466ec",
515 "type": "github" 515 "type": "github"
516 }, 516 },
517 "original": { 517 "original": {
@@ -541,11 +541,11 @@
541 "niri-unstable": { 541 "niri-unstable": {
542 "flake": false, 542 "flake": false,
543 "locked": { 543 "locked": {
544 "lastModified": 1757671534, 544 "lastModified": 1762690468,
545 "narHash": "sha256-7tfypHWNtR+wZS9K9XrvcUwyvZ3h8CxInQ2mVsjUU9A=", 545 "narHash": "sha256-JA7OTscpnkSPbmA211nYpkzueGLcTe01FfPZUpuCJiE=",
546 "owner": "gkleen", 546 "owner": "gkleen",
547 "repo": "niri", 547 "repo": "niri",
548 "rev": "5e3611a3c5f8c819e5517d0b3f795f161579a0db", 548 "rev": "e13a1ea28e4474bcae0324c154093249e03d0b73",
549 "type": "github" 549 "type": "github"
550 }, 550 },
551 "original": { 551 "original": {
@@ -583,11 +583,11 @@
583 ] 583 ]
584 }, 584 },
585 "locked": { 585 "locked": {
586 "lastModified": 1755404379, 586 "lastModified": 1762660502,
587 "narHash": "sha256-Q6ZxZDBmD/B988Jjbx7/NchxOKIpOKBBrx9Yb0zMzpQ=", 587 "narHash": "sha256-C9F1C31ys0V7mnp4EcDy7L1cLZw/sCTEXqqTtGnvu08=",
588 "owner": "Mic92", 588 "owner": "Mic92",
589 "repo": "nix-index-database", 589 "repo": "nix-index-database",
590 "rev": "ebbc1c05f786ae39bb5e04e57bf2c10c44a649e3", 590 "rev": "15c5451c63f4c612874a43846bfe3fa828b03eee",
591 "type": "github" 591 "type": "github"
592 }, 592 },
593 "original": { 593 "original": {
@@ -625,11 +625,11 @@
625 ] 625 ]
626 }, 626 },
627 "locked": { 627 "locked": {
628 "lastModified": 1748140003, 628 "lastModified": 1762024563,
629 "narHash": "sha256-DNBZmuk1YRM2PmwbHzVdXumRjCUzQkMarg4iI/37rOQ=", 629 "narHash": "sha256-jQNt4yOfCnhuePhRRi1bdILJ2eAEHFHrk3F6Dfjk1t8=",
630 "owner": "AshleyYakeley", 630 "owner": "AshleyYakeley",
631 "repo": "NixVirt", 631 "repo": "NixVirt",
632 "rev": "5dfe108fd859b122f9a96981cb6bc12297653d6c", 632 "rev": "28906a0d198d5cdcb9501e3703eca93a482f03f0",
633 "type": "github" 633 "type": "github"
634 }, 634 },
635 "original": { 635 "original": {
@@ -640,11 +640,11 @@
640 }, 640 },
641 "nixos-hardware": { 641 "nixos-hardware": {
642 "locked": { 642 "locked": {
643 "lastModified": 1755330281, 643 "lastModified": 1762847253,
644 "narHash": "sha256-aJHFJWP9AuI8jUGzI77LYcSlkA9wJnOIg4ZqftwNGXA=", 644 "narHash": "sha256-BWWnUUT01lPwCWUvS0p6Px5UOBFeXJ8jR+ZdLX8IbrU=",
645 "owner": "NixOS", 645 "owner": "NixOS",
646 "repo": "nixos-hardware", 646 "repo": "nixos-hardware",
647 "rev": "3dac8a872557e0ca8c083cdcfc2f218d18e113b0", 647 "rev": "899dc449bc6428b9ee6b3b8f771ca2b0ef945ab9",
648 "type": "github" 648 "type": "github"
649 }, 649 },
650 "original": { 650 "original": {
@@ -765,27 +765,11 @@
765 }, 765 },
766 "nixpkgs-stable_2": { 766 "nixpkgs-stable_2": {
767 "locked": { 767 "locked": {
768 "lastModified": 1730741070, 768 "lastModified": 1762756533,
769 "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", 769 "narHash": "sha256-HiRDeUOD1VLklHeOmaKDzf+8Hb7vSWPVFcWwaTrpm+U=",
770 "owner": "NixOS", 770 "owner": "NixOS",
771 "repo": "nixpkgs", 771 "repo": "nixpkgs",
772 "rev": "d063c1dd113c91ab27959ba540c0d9753409edf3", 772 "rev": "c2448301fb856e351aab33e64c33a3fc8bcf637d",
773 "type": "github"
774 },
775 "original": {
776 "owner": "NixOS",
777 "ref": "nixos-24.05",
778 "repo": "nixpkgs",
779 "type": "github"
780 }
781 },
782 "nixpkgs-stable_3": {
783 "locked": {
784 "lastModified": 1757408970,
785 "narHash": "sha256-aSgK4BLNFFGvDTNKPeB28lVXYqVn8RdyXDNAvgGq+k0=",
786 "owner": "NixOS",
787 "repo": "nixpkgs",
788 "rev": "d179d77c139e0a3f5c416477f7747e9d6b7ec315",
789 "type": "github" 773 "type": "github"
790 }, 774 },
791 "original": { 775 "original": {
@@ -795,7 +779,7 @@
795 "type": "github" 779 "type": "github"
796 } 780 }
797 }, 781 },
798 "nixpkgs-stable_4": { 782 "nixpkgs-stable_3": {
799 "locked": { 783 "locked": {
800 "lastModified": 1748026580, 784 "lastModified": 1748026580,
801 "narHash": "sha256-rWtXrcIzU5wm/C8F9LWvUfBGu5U5E7cFzPYT1pHIJaQ=", 785 "narHash": "sha256-rWtXrcIzU5wm/C8F9LWvUfBGu5U5E7cFzPYT1pHIJaQ=",
@@ -811,7 +795,7 @@
811 "type": "github" 795 "type": "github"
812 } 796 }
813 }, 797 },
814 "nixpkgs-stable_5": { 798 "nixpkgs-stable_4": {
815 "locked": { 799 "locked": {
816 "lastModified": 1678872516, 800 "lastModified": 1678872516,
817 "narHash": "sha256-/E1YwtMtFAu2KUQKV/1+KFuReYPANM2Rzehk84VxVoc=", 801 "narHash": "sha256-/E1YwtMtFAu2KUQKV/1+KFuReYPANM2Rzehk84VxVoc=",
@@ -829,11 +813,11 @@
829 }, 813 },
830 "nixpkgs_2": { 814 "nixpkgs_2": {
831 "locked": { 815 "locked": {
832 "lastModified": 1755615617, 816 "lastModified": 1762981181,
833 "narHash": "sha256-HMwfAJBdrr8wXAkbGhtcby1zGFvs+StOp19xNsbqdOg=", 817 "narHash": "sha256-tnAS+voD6T221j4u7ldRrM3WwQtVVmwC3TYRkubdeKI=",
834 "owner": "NixOS", 818 "owner": "gkleen",
835 "repo": "nixpkgs", 819 "repo": "nixpkgs",
836 "rev": "20075955deac2583bb12f07151c2df830ef346b4", 820 "rev": "258ffe798997c648dcc04a784166c4e1a3bdd68e",
837 "type": "github" 821 "type": "github"
838 }, 822 },
839 "original": { 823 "original": {
@@ -872,11 +856,11 @@
872 ] 856 ]
873 }, 857 },
874 "locked": { 858 "locked": {
875 "lastModified": 1732501185, 859 "lastModified": 1760948256,
876 "narHash": "sha256-Z0BpHelaGQsE5VD9hBsBHsvMU9h+Xt0kfkDJyFivZOU=", 860 "narHash": "sha256-nIsrxp6n1nQ63n1JTDaO/18RjvYbW9GVkanTP4G6Y18=",
877 "owner": "berberman", 861 "owner": "berberman",
878 "repo": "nvfetcher", 862 "repo": "nvfetcher",
879 "rev": "bdb14eab6fe9cefc29efe01e60c3a3f616d6b62a", 863 "rev": "cb958b35b647c8a79fbd9d79764accc5e5a9a430",
880 "type": "github" 864 "type": "github"
881 }, 865 },
882 "original": { 866 "original": {
@@ -967,15 +951,14 @@
967 "nixpkgs": [ 951 "nixpkgs": [
968 "lanzaboote", 952 "lanzaboote",
969 "nixpkgs" 953 "nixpkgs"
970 ], 954 ]
971 "nixpkgs-stable": "nixpkgs-stable_2"
972 }, 955 },
973 "locked": { 956 "locked": {
974 "lastModified": 1731363552, 957 "lastModified": 1750779888,
975 "narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=", 958 "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=",
976 "owner": "cachix", 959 "owner": "cachix",
977 "repo": "pre-commit-hooks.nix", 960 "repo": "pre-commit-hooks.nix",
978 "rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0", 961 "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d",
979 "type": "github" 962 "type": "github"
980 }, 963 },
981 "original": { 964 "original": {
@@ -990,7 +973,7 @@
990 "flake-utils": "flake-utils_2", 973 "flake-utils": "flake-utils_2",
991 "gitignore": "gitignore_4", 974 "gitignore": "gitignore_4",
992 "nixpkgs": "nixpkgs_3", 975 "nixpkgs": "nixpkgs_3",
993 "nixpkgs-stable": "nixpkgs-stable_5" 976 "nixpkgs-stable": "nixpkgs-stable_4"
994 }, 977 },
995 "locked": { 978 "locked": {
996 "lastModified": 1685361114, 979 "lastModified": 1685361114,
@@ -1074,11 +1057,11 @@
1074 ] 1057 ]
1075 }, 1058 },
1076 "locked": { 1059 "locked": {
1077 "lastModified": 1755484659, 1060 "lastModified": 1761781027,
1078 "narHash": "sha256-2FfbqsaHVQd12XFFUAinIMAuGO3853LONmva1gT3vKw=", 1061 "narHash": "sha256-YDvxPAm2WnxrznRqWwHLjryBGG5Ey1ATEJXrON+TWt8=",
1079 "owner": "pyproject-nix", 1062 "owner": "pyproject-nix",
1080 "repo": "build-system-pkgs", 1063 "repo": "build-system-pkgs",
1081 "rev": "9778e87c2361810ff15e287ca5895c9da4a0e900", 1064 "rev": "795a980d25301e5133eca37adae37283ec3c8e66",
1082 "type": "github" 1065 "type": "github"
1083 }, 1066 },
1084 "original": { 1067 "original": {
@@ -1094,11 +1077,11 @@
1094 ] 1077 ]
1095 }, 1078 },
1096 "locked": { 1079 "locked": {
1097 "lastModified": 1754923840, 1080 "lastModified": 1762427963,
1098 "narHash": "sha256-QSKpYg+Ts9HYF155ltlj40iBex39c05cpOF8gjoE2EM=", 1081 "narHash": "sha256-CkPlAbIQ87wmjy5qHibfzk4DmMGBNqFer+lLfXjpP5M=",
1099 "owner": "pyproject-nix", 1082 "owner": "pyproject-nix",
1100 "repo": "pyproject.nix", 1083 "repo": "pyproject.nix",
1101 "rev": "023cd4be230eacae52635be09eef100c37ef78da", 1084 "rev": "4540ea004e04fcd12dd2738d51383d10f956f7b9",
1102 "type": "github" 1085 "type": "github"
1103 }, 1086 },
1104 "original": { 1087 "original": {
@@ -1127,7 +1110,7 @@
1127 "nixpkgs": "nixpkgs_2", 1110 "nixpkgs": "nixpkgs_2",
1128 "nixpkgs-eostre": "nixpkgs-eostre", 1111 "nixpkgs-eostre": "nixpkgs-eostre",
1129 "nixpkgs-pgbackrest": "nixpkgs-pgbackrest", 1112 "nixpkgs-pgbackrest": "nixpkgs-pgbackrest",
1130 "nixpkgs-stable": "nixpkgs-stable_4", 1113 "nixpkgs-stable": "nixpkgs-stable_3",
1131 "nvfetcher": "nvfetcher", 1114 "nvfetcher": "nvfetcher",
1132 "poetry2nix": "poetry2nix", 1115 "poetry2nix": "poetry2nix",
1133 "prometheus-borg-exporter": "prometheus-borg-exporter", 1116 "prometheus-borg-exporter": "prometheus-borg-exporter",
@@ -1146,11 +1129,11 @@
1146 ] 1129 ]
1147 }, 1130 },
1148 "locked": { 1131 "locked": {
1149 "lastModified": 1731897198, 1132 "lastModified": 1761791894,
1150 "narHash": "sha256-Ou7vLETSKwmE/HRQz4cImXXJBr/k9gp4J4z/PF8LzTE=", 1133 "narHash": "sha256-myRIDh+PxaREz+z9LzbqBJF+SnTFJwkthKDX9zMyddY=",
1151 "owner": "oxalica", 1134 "owner": "oxalica",
1152 "repo": "rust-overlay", 1135 "repo": "rust-overlay",
1153 "rev": "0be641045af6d8666c11c2c40e45ffc9667839b5", 1136 "rev": "59c45eb69d9222a4362673141e00ff77842cd219",
1154 "type": "github" 1137 "type": "github"
1155 }, 1138 },
1156 "original": { 1139 "original": {
@@ -1166,11 +1149,11 @@
1166 ] 1149 ]
1167 }, 1150 },
1168 "locked": { 1151 "locked": {
1169 "lastModified": 1754988908, 1152 "lastModified": 1762812535,
1170 "narHash": "sha256-t+voe2961vCgrzPFtZxha0/kmFSHFobzF00sT8p9h0U=", 1153 "narHash": "sha256-A91a+K0Q9wfdPLwL06e/kbHeAWSzPYy2EGdTDsyfb+s=",
1171 "owner": "Mic92", 1154 "owner": "Mic92",
1172 "repo": "sops-nix", 1155 "repo": "sops-nix",
1173 "rev": "3223c7a92724b5d804e9988c6b447a0d09017d48", 1156 "rev": "d75e4f89e58fdda39e4809f8c52013caa22483b7",
1174 "type": "github" 1157 "type": "github"
1175 }, 1158 },
1176 "original": { 1159 "original": {
@@ -1241,11 +1224,11 @@
1241 ] 1224 ]
1242 }, 1225 },
1243 "locked": { 1226 "locked": {
1244 "lastModified": 1755485731, 1227 "lastModified": 1762859175,
1245 "narHash": "sha256-k8kxwVs8Oze6q/jAaRa3RvZbb50I/K0b5uptlsh0HXI=", 1228 "narHash": "sha256-R4lx2xW4NuIU/+YvF4hNb/Fw6xIImlmm+6S1QB+Jh+k=",
1246 "owner": "pyproject-nix", 1229 "owner": "pyproject-nix",
1247 "repo": "uv2nix", 1230 "repo": "uv2nix",
1248 "rev": "bebbd80bf56110fcd20b425589814af28f1939eb", 1231 "rev": "41816ac37553af248bb29624885c471f5ae2b835",
1249 "type": "github" 1232 "type": "github"
1250 }, 1233 },
1251 "original": { 1234 "original": {
@@ -1298,11 +1281,11 @@
1298 "xwayland-satellite-unstable": { 1281 "xwayland-satellite-unstable": {
1299 "flake": false, 1282 "flake": false,
1300 "locked": { 1283 "locked": {
1301 "lastModified": 1757179758, 1284 "lastModified": 1762747449,
1302 "narHash": "sha256-TIvyWzRt1miQj6Cf5Wy8Qz43XIZX7c4vTVwRLAT5S4Y=", 1285 "narHash": "sha256-Z1TKiux8K09a93w4PFDFsj8HFugXNy3iCC3Z8MpR5Rk=",
1303 "owner": "Supreeeme", 1286 "owner": "Supreeeme",
1304 "repo": "xwayland-satellite", 1287 "repo": "xwayland-satellite",
1305 "rev": "970728d0d9d1eada342bb8860af214b601139e58", 1288 "rev": "6338574bc5c036487486acde264f38f39ea15fad",
1306 "type": "github" 1289 "type": "github"
1307 }, 1290 },
1308 "original": { 1291 "original": {
diff --git a/flake.nix b/flake.nix
index b93a1f2e..e358251c 100644
--- a/flake.nix
+++ b/flake.nix
@@ -230,7 +230,7 @@
230 type = "github"; 230 type = "github";
231 owner = "nix-community"; 231 owner = "nix-community";
232 repo = "lanzaboote"; 232 repo = "lanzaboote";
233 ref = "v0.4.2"; 233 ref = "v0.4.3";
234 234
235 inputs.nixpkgs.follows = "nixpkgs"; 235 inputs.nixpkgs.follows = "nixpkgs";
236 }; 236 };
diff --git a/hosts/sif/default.nix b/hosts/sif/default.nix
index fb2dddc6..ce0d6355 100644
--- a/hosts/sif/default.nix
+++ b/hosts/sif/default.nix
@@ -402,10 +402,10 @@ in {
402 402
403 thinkfan.enable = true; 403 thinkfan.enable = true;
404 404
405 logind = { 405 logind.settings.Login = {
406 lidSwitch = "suspend"; 406 HandleLidSwitch = "suspend";
407 lidSwitchDocked = "ignore"; 407 HandleLidSwitchDocked = "ignore";
408 lidSwitchExternalPower = "ignore"; 408 HandleLidSwitchExternalPower = "ignore";
409 }; 409 };
410 410
411 atd = { 411 atd = {
@@ -572,7 +572,7 @@ in {
572 # setLdLibraryPath = true; 572 # setLdLibraryPath = true;
573 }; 573 };
574 574
575 firmware = [ pkgs.firmwareLinuxNonfree ]; 575 firmware = [ pkgs.linux-firmware ];
576 576
577 keyboard.uhk.enable = true; 577 keyboard.uhk.enable = true;
578 nitrokey.enable = true; 578 nitrokey.enable = true;
diff --git a/hosts/surtr/email/default.nix b/hosts/surtr/email/default.nix
index b4b2b5c8..c09e1511 100644
--- a/hosts/surtr/email/default.nix
+++ b/hosts/surtr/email/default.nix
@@ -539,7 +539,7 @@ in {
539 539
540 users.groups.${config.services.redis.servers.rspamd.user}.members = [ config.services.rspamd.user ]; 540 users.groups.${config.services.redis.servers.rspamd.user}.members = [ config.services.rspamd.user ];
541 541
542 environment.systemPackages = with pkgs; [ dovecot_pigeonhole dovecot_fts_xapian ]; 542 environment.systemPackages = with pkgs; [ dovecot_pigeonhole dovecot-fts-flatcurve ];
543 services.dovecot2 = { 543 services.dovecot2 = {
544 enable = true; 544 enable = true;
545 enablePAM = false; 545 enablePAM = false;
@@ -547,7 +547,7 @@ in {
547 sslServerKey = "/run/credentials/dovecot.service/surtr.yggdrasil.li.key.pem"; 547 sslServerKey = "/run/credentials/dovecot.service/surtr.yggdrasil.li.key.pem";
548 sslCACert = toString ./ca/ca.crt; 548 sslCACert = toString ./ca/ca.crt;
549 mailLocation = "maildir:/var/lib/mail/%u/maildir:UTF-8:INDEX=/var/lib/dovecot/indices/%u"; 549 mailLocation = "maildir:/var/lib/mail/%u/maildir:UTF-8:INDEX=/var/lib/dovecot/indices/%u";
550 mailPlugins.globally.enable = [ "fts" "fts_xapian" ]; 550 mailPlugins.globally.enable = [ "fts" "fts_flatcurve" ];
551 protocols = [ "lmtp" "sieve" ]; 551 protocols = [ "lmtp" "sieve" ];
552 sieve = { 552 sieve = {
553 extensions = ["copy" "imapsieve" "variables" "imap4flags" "vacation" "vacation-seconds" "vnd.dovecot.debug"]; 553 extensions = ["copy" "imapsieve" "variables" "imap4flags" "vacation" "vacation-seconds" "vnd.dovecot.debug"];
@@ -726,13 +726,10 @@ in {
726 } 726 }
727 727
728 plugin { 728 plugin {
729 plugin = fts fts_xapian 729 plugin = fts fts_flatcurve
730 fts = xapian 730 fts = yes
731 fts_xapian = partial=3 full=20 attachments=1 verbose=1
732 731
733 fts_autoindex = yes 732 fts_autoindex = yes
734
735 fts_enforced = no
736 } 733 }
737 734
738 service indexer-worker { 735 service indexer-worker {
@@ -741,30 +738,6 @@ in {
741 ''; 738 '';
742 }; 739 };
743 740
744 systemd.services.dovecot-fts-xapian-optimize = {
745 description = "Optimize dovecot indices for fts_xapian";
746 requisite = [ "dovecot.service" ];
747 after = [ "dovecot.service" ];
748 startAt = "*-*-* 22:00:00 Europe/Berlin";
749 serviceConfig = {
750 Type = "oneshot";
751 ExecStart = "${getExe' pkgs.dovecot "doveadm"} fts optimize -A";
752 PrivateDevices = true;
753 PrivateNetwork = true;
754 ProtectKernelTunables = true;
755 ProtectKernelModules = true;
756 ProtectControlGroups = true;
757 ProtectHome = true;
758 ProtectSystem = true;
759 PrivateTmp = true;
760 };
761 };
762 systemd.timers.dovecot-fts-xapian-optimize = {
763 timerConfig = {
764 RandomizedDelaySec = 4 * 3600;
765 };
766 };
767
768 environment.etc = { 741 environment.etc = {
769 "dovecot/sieve_before.d/tag-junk.sieve".text = '' 742 "dovecot/sieve_before.d/tag-junk.sieve".text = ''
770 require ["imap4flags"]; 743 require ["imap4flags"];
diff --git a/installer/default.nix b/installer/default.nix
index 26f38572..8c0082fa 100644
--- a/installer/default.nix
+++ b/installer/default.nix
@@ -8,7 +8,11 @@ with lib;
8 ]; 8 ];
9 9
10 config = { 10 config = {
11 boot.initrd.kernelModules = [ "e1000e" "virtio_net" ]; 11 boot = {
12 initrd.kernelModules = [ "e1000e" "virtio_net" ];
13 kernelPackages = pkgs.linuxPackages_6_17;
14 zfs.package = pkgs.zfs_unstable;
15 };
12 16
13 hardware.cpu.amd.updateMicrocode = config.hardware.enableRedistributableFirmware; 17 hardware.cpu.amd.updateMicrocode = config.hardware.enableRedistributableFirmware;
14 18
diff --git a/nvfetcher.toml b/nvfetcher.toml
index 8e3ba905..4d49583e 100644
--- a/nvfetcher.toml
+++ b/nvfetcher.toml
@@ -108,14 +108,6 @@ fetch.tarball = "https://github.com/JonathonReinhart/spice-record/archive/refs/t
108src.pypi = "yt_dlp" 108src.pypi = "yt_dlp"
109fetch.pypi = "yt_dlp" 109fetch.pypi = "yt_dlp"
110 110
111[mako]
112src.git = "https://github.com/emersion/mako"
113fetch.git = "https://github.com/emersion/mako"
114
115[swayosd]
116src.git = "https://github.com/ErikReider/SwayOSD"
117fetch.git = "https://github.com/ErikReider/SwayOSD"
118
119[netbootxyz-efi] 111[netbootxyz-efi]
120src.github = "netbootxyz/netboot.xyz" 112src.github = "netbootxyz/netboot.xyz"
121fetch.url = "https://github.com/netbootxyz/netboot.xyz/releases/download/$ver/netboot.xyz.efi" 113fetch.url = "https://github.com/netbootxyz/netboot.xyz/releases/download/$ver/netboot.xyz.efi"
@@ -127,3 +119,7 @@ fetch.url = "https://github.com/netbootxyz/netboot.xyz/releases/download/$ver/ne
127[quickshell] 119[quickshell]
128src.git = "https://git.outfoxxed.me/quickshell/quickshell.git" 120src.git = "https://git.outfoxxed.me/quickshell/quickshell.git"
129fetch.git = "https://git.outfoxxed.me/quickshell/quickshell.git" 121fetch.git = "https://git.outfoxxed.me/quickshell/quickshell.git"
122
123[nix-output-monitor]
124src.git = "https://code.maralorn.de/maralorn/nix-output-monitor.git"
125fetch.git = "https://code.maralorn.de/maralorn/nix-output-monitor.git"
diff --git a/overlays/nix-output-monitor.nix b/overlays/nix-output-monitor.nix
new file mode 100644
index 00000000..a15913ef
--- /dev/null
+++ b/overlays/nix-output-monitor.nix
@@ -0,0 +1,6 @@
1{ final, prev, sources, ... }:
2{
3 nix-output-monitor = prev.nix-output-monitor.overrideAttrs (oldAttrs: prev.lib.optionalAttrs (prev.lib.versionAtLeast prev.ghc.version "9.10.1") {
4 inherit (sources.nix-output-monitor) version src;
5 });
6}
diff --git a/overlays/postfix-mta-sts-resolver/default.nix b/overlays/postfix-mta-sts-resolver/default.nix
index 52ab2d40..c210cf79 100644
--- a/overlays/postfix-mta-sts-resolver/default.nix
+++ b/overlays/postfix-mta-sts-resolver/default.nix
@@ -11,7 +11,7 @@
11 projectDir = cleanPythonSources { 11 projectDir = cleanPythonSources {
12 src = prev.runCommand "sources" {} '' 12 src = prev.runCommand "sources" {} ''
13 mkdir $out 13 mkdir $out
14 cp -r ${sources.postfix-mta-sts-resolver.src}/. $out 14 cp -r --no-preserve=all ${sources.postfix-mta-sts-resolver.src}/. $out
15 15
16 cp ${./pyproject.toml} $out/pyproject.toml 16 cp ${./pyproject.toml} $out/pyproject.toml
17 cp ${./poetry.lock} $out/poetry.lock 17 cp ${./poetry.lock} $out/poetry.lock
diff --git a/overlays/quickshell/default.nix b/overlays/quickshell/default.nix
index c01fac20..7c4a263d 100644
--- a/overlays/quickshell/default.nix
+++ b/overlays/quickshell/default.nix
@@ -3,8 +3,9 @@
3 quickshell = prev.quickshell.overrideAttrs (oldAttrs: { 3 quickshell = prev.quickshell.overrideAttrs (oldAttrs: {
4 inherit (sources.quickshell) version src; 4 inherit (sources.quickshell) version src;
5 5
6 buildInputs = (oldAttrs.buildInputs or []) ++ [ final.polkit.dev ];
7
6 patches = (oldAttrs.patches or []) ++ [ 8 patches = (oldAttrs.patches or []) ++ [
7 ./greetd-response.patch
8 ./lock-state-changed.patch 9 ./lock-state-changed.patch
9 ./pipewire.patch 10 ./pipewire.patch
10 ./io.patch 11 ./io.patch
diff --git a/overlays/quickshell/greetd-response.patch b/overlays/quickshell/greetd-response.patch
deleted file mode 100644
index a0efb562..00000000
--- a/overlays/quickshell/greetd-response.patch
+++ /dev/null
@@ -1,16 +0,0 @@
1diff --git c/src/services/greetd/connection.cpp w/src/services/greetd/connection.cpp
2index bf0d1fd..a790ab7 100644
3--- c/src/services/greetd/connection.cpp
4+++ w/src/services/greetd/connection.cpp
5@@ -225,6 +225,11 @@ void GreetdConnection::onSocketReady() {
6
7 this->mResponseRequired = responseRequired;
8 emit this->authMessage(message, error, responseRequired, echoResponse);
9+
10+ if (!responseRequired)
11+ this->sendRequest({
12+ {"type", "post_auth_message_response"}
13+ });
14 } else goto unexpected;
15
16 return;
diff --git a/overlays/yt-dlp.nix b/overlays/yt-dlp.nix
index 9a54a32b..435afd58 100644
--- a/overlays/yt-dlp.nix
+++ b/overlays/yt-dlp.nix
@@ -3,5 +3,6 @@
3 inherit (sources.yt-dlp) pname version src; 3 inherit (sources.yt-dlp) pname version src;
4 4
5 postPatch = ""; 5 postPatch = "";
6 installCheckPhase = "true";
6 }); 7 });
7} 8}
diff --git a/system-profiles/zfs.nix b/system-profiles/zfs.nix
index af9f1c17..d4a2175f 100644
--- a/system-profiles/zfs.nix
+++ b/system-profiles/zfs.nix
@@ -1,8 +1,8 @@
1{ config, pkgs, lib, ... } : { 1{ config, pkgs, lib, ... } : {
2 config = { 2 config = {
3 boot = { 3 boot = {
4 kernelPackages = pkgs.linuxPackages_6_12; 4 kernelPackages = lib.mkDefault pkgs.linuxPackages_6_12;
5 zfs.package = pkgs.zfs_2_3; 5 zfs.package = lib.mkDefault pkgs.zfs_2_3;
6 6
7 supportedFilesystems.zfs = true; 7 supportedFilesystems.zfs = true;
8 }; 8 };
diff --git a/user-profiles/zsh/default.nix b/user-profiles/zsh/default.nix
index ab523a52..944d10ff 100644
--- a/user-profiles/zsh/default.nix
+++ b/user-profiles/zsh/default.nix
@@ -4,7 +4,7 @@
4 home-manager.users.${userName} = let sysConfig = config; in { config, ... }: { 4 home-manager.users.${userName} = let sysConfig = config; in { config, ... }: {
5 config = { 5 config = {
6 programs.zsh = { 6 programs.zsh = {
7 dotDir = ".config/zsh"; 7 dotDir = "${config.xdg.configHome}/zsh";
8 enable = true; 8 enable = true;
9 autocd = true; 9 autocd = true;
10 enableCompletion = true; 10 enableCompletion = true;
diff --git a/users/gkleen/default.nix b/users/gkleen/default.nix
index 5ce93de7..84446582 100644
--- a/users/gkleen/default.nix
+++ b/users/gkleen/default.nix
@@ -1,5 +1,7 @@
1{ flake, userName, pkgs, customUtils, lib, ... }: 1{ flake, home-manager, userName, pkgs, customUtils, lib, ... }:
2{ 2let
3 homeManagerRelease = lib.importJSON (home-manager + /release.json);
4in {
3 imports = with flake.nixosModules.userProfiles.${userName}; [ 5 imports = with flake.nixosModules.userProfiles.${userName}; [
4 utils direnv 6 utils direnv
5 ]; 7 ];
@@ -15,69 +17,84 @@
15 hashedPassword = "$6$rounds=500000$dOMgCU7DAk$yQFYGOURTEt12387LIYBnFKSWmtwXMUk1LJWnV0m7OFt.y2TnxQn2abdGA5dhwG9EmMB5wZGXf4J5F71c746C/"; 17 hashedPassword = "$6$rounds=500000$dOMgCU7DAk$yQFYGOURTEt12387LIYBnFKSWmtwXMUk1LJWnV0m7OFt.y2TnxQn2abdGA5dhwG9EmMB5wZGXf4J5F71c746C/";
16 }; 18 };
17 19
18 home-manager.users.${userName} = { 20 home-manager.users.${userName} = { config, ... }: lib.foldr lib.recursiveUpdate {} ([
19 home.keyboard = { 21 {
20 layout = "us"; 22 home.keyboard = {
21 variant = "dvp"; 23 layout = "us";
22 options = [ "ctl:nocaps" "compose:caps" ]; 24 variant = "dvp";
23 }; 25 options = [ "ctl:nocaps" "compose:caps" ];
26 };
27
28 programs = {
29 git.enable = true;
24 30
31 ssh.enable = true;
32
33 gpg.enable = true;
34 };
35 }
36 ] ++ (lib.optional (lib.versionAtLeast homeManagerRelease.release "25.11") {
25 programs = { 37 programs = {
26 git = { 38 git.settings = {
27 enable = true; 39 user = {
28 userEmail = "gkleen@yggdrasil.li"; 40 email = "gkleen@yggdrasil.li";
29 userName = "Gregor Kleen"; 41 name = "Gregor Kleen";
30 delta.enable = true; 42 };
31 extraConfig = { 43 core.excludesfile = toString ./gitignore;
32 core.excludesfile = toString ./gitignore; 44 pull.rebase = true;
33 pull.rebase = true; 45 submodule.recurse = true;
34 submodule.recurse = true; 46 init.defaultBranch = "main";
35 init.defaultBranch = "main"; 47 column.ui = "auto";
36 column.ui = "auto"; 48 branch.sort = "-committerdate";
37 branch.sort = "-committerdate"; 49 tag.sort = "version:refname";
38 tag.sort = "version:refname"; 50 diff = {
39 diff = { 51 algorithm = "histogram";
40 algorithm = "histogram"; 52 colorMoved = "plain";
41 colorMoved = "plain"; 53 mnemonicPrefix = true;
42 mnemonicPrefix = true; 54 renames = true;
43 renames = true; 55 };
44 }; 56 push = {
45 push = { 57 default = "simple";
46 default = "simple"; 58 autoSetupRemote = true;
47 autoSetupRemote = true; 59 followTags = true;
48 followTags = true; 60 };
49 }; 61 fetch = {
50 fetch = { 62 prune = true;
51 prune = true; 63 pruneTags = true;
52 pruneTags = true; 64 all = true;
53 all = true;
54 };
55 rerere = {
56 enabled = true;
57 autoupdate = true;
58 };
59 rebase = {
60 autoSquash = true;
61 autoStash = true;
62 updateRefs = true;
63 };
64 merge.conflictstyle = "zdiff3";
65 }; 65 };
66 rerere = {
67 enabled = true;
68 autoupdate = true;
69 };
70 rebase = {
71 autoSquash = true;
72 autoStash = true;
73 updateRefs = true;
74 };
75 merge.conflictstyle = "zdiff3";
66 }; 76 };
67 77 delta = {
68 ssh = {
69 enable = true; 78 enable = true;
70 controlMaster = "auto"; 79 enableGitIntegration = true;
71 controlPersist = "30m";
72 serverAliveInterval = 6;
73 serverAliveCountMax = 10;
74 hashKnownHosts = true;
75 extraConfig = ''
76 IdentitiesOnly true
77 '';
78 }; 80 };
81 ssh = {
82 enableDefaultConfig = false;
83 matchBlocks."*" = {
84 forwardAgent = false;
85 addKeysToAgent = "no";
86 compression = false;
87 userKnownHostsFile = "~/.ssh/known_hosts";
88 controlPath = "~/.ssh/master-%r@%n:%p";
79 89
80 gpg.enable = true; 90 controlMaster = "auto";
91 controlPersist = "30m";
92 serverAliveInterval = 6;
93 serverAliveCountMax = 10;
94 hashKnownHosts = true;
95 identitiesOnly = true;
96 };
97 };
81 }; 98 };
82 }; 99 }));
83} 100}
diff --git a/users/root.nix b/users/root.nix
index ed1acd50..7fa99452 100644
--- a/users/root.nix
+++ b/users/root.nix
@@ -1,6 +1,7 @@
1{ flake, lib, config, hostName, userName, pkgs, ... }: 1{ flake, home-manager, lib, config, hostName, userName, pkgs, ... }:
2let 2let
3 haveGKleen = flake.nixosModules.accounts ? "gkleen@${hostName}"; 3 haveGKleen = flake.nixosModules.accounts ? "gkleen@${hostName}";
4 homeManagerRelease = lib.importJSON (home-manager + /release.json);
4in { 5in {
5 imports = with flake.nixosModules.userProfiles.${userName}; [ 6 imports = with flake.nixosModules.userProfiles.${userName}; [
6 direnv utils 7 direnv utils
@@ -11,42 +12,89 @@ in {
11 openssh.authorizedKeys.keyFiles = config.users.users."gkleen".openssh.authorizedKeys.keyFiles; 12 openssh.authorizedKeys.keyFiles = config.users.users."gkleen".openssh.authorizedKeys.keyFiles;
12 }; 13 };
13 14
14 home-manager.users.${userName} = { 15 home-manager.users.${userName} = { config, ... }: lib.foldr lib.recursiveUpdate {} ([
16 {
17 programs = {
18 git.enable = true;
19
20 ssh.enable = true;
21
22 gpg.enable = true;
23 };
24
25 services = {
26 gpg-agent = {
27 enable = true;
28 enableSshSupport = true;
29 extraConfig = ''
30 pinentry-program ${pkgs.pinentry-curses}/bin/pinentry
31 grab
32 '';
33 };
34 };
35 }
36 ] ++ (lib.optional (lib.versionAtLeast homeManagerRelease.release "25.11") {
15 programs = { 37 programs = {
16 git = { 38 git.settings = {
17 enable = true; 39 user = {
18 userEmail = "gkleen@yggdrasil.li"; 40 email = "gkleen@yggdrasil.li";
19 userName = "Gregor Kleen"; 41 name = "Gregor Kleen";
20 delta.enable = true; 42 };
21 extraConfig = { 43 core.excludesfile = toString ./gitignore;
22 pull.rebase = false; 44 pull.rebase = true;
45 submodule.recurse = true;
46 init.defaultBranch = "main";
47 column.ui = "auto";
48 branch.sort = "-committerdate";
49 tag.sort = "version:refname";
50 diff = {
51 algorithm = "histogram";
52 colorMoved = "plain";
53 mnemonicPrefix = true;
54 renames = true;
55 };
56 push = {
57 default = "simple";
58 autoSetupRemote = true;
59 followTags = true;
60 };
61 fetch = {
62 prune = true;
63 pruneTags = true;
64 all = true;
23 }; 65 };
66 rerere = {
67 enabled = true;
68 autoupdate = true;
69 };
70 rebase = {
71 autoSquash = true;
72 autoStash = true;
73 updateRefs = true;
74 };
75 merge.conflictstyle = "zdiff3";
24 }; 76 };
25 77 delta = {
26 ssh = {
27 enable = true; 78 enable = true;
28 controlMaster = "auto"; 79 enableGitIntegration = true;
29 controlPersist = "30m";
30 serverAliveInterval = 6;
31 serverAliveCountMax = 10;
32 hashKnownHosts = true;
33 extraConfig = ''
34 IdentitiesOnly true
35 '';
36 }; 80 };
81 ssh = {
82 enableDefaultConfig = false;
83 matchBlocks."*" = {
84 forwardAgent = false;
85 addKeysToAgent = "no";
86 compression = false;
87 userKnownHostsFile = "~/.ssh/known_hosts";
88 controlPath = "~/.ssh/master-%r@%n:%p";
37 89
38 gpg.enable = true; 90 controlMaster = "auto";
39 }; 91 controlPersist = "30m";
40 92 serverAliveInterval = 6;
41 services = { 93 serverAliveCountMax = 10;
42 gpg-agent = { 94 hashKnownHosts = true;
43 enable = true; 95 identitiesOnly = true;
44 enableSshSupport = true; 96 };
45 extraConfig = ''
46 pinentry-program ${pkgs.pinentry-curses}/bin/pinentry
47 grab
48 '';
49 }; 97 };
50 }; 98 };
51 }; 99 }));
52} 100}