summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--_sources/generated.json46
-rw-r--r--_sources/generated.nix46
-rw-r--r--accounts/gkleen@sif/default.nix1
-rw-r--r--flake.lock127
-rw-r--r--hosts/sif/hw.nix2
-rw-r--r--hosts/vidhar/default.nix3
-rw-r--r--modules/i18n.nix156
-rw-r--r--system-profiles/core/default.nix3
-rw-r--r--system-profiles/default-locale.nix36
-rw-r--r--user-profiles/zsh/default.nix4
10 files changed, 161 insertions, 263 deletions
diff --git a/_sources/generated.json b/_sources/generated.json
index b46b647d..eb30b232 100644
--- a/_sources/generated.json
+++ b/_sources/generated.json
@@ -193,12 +193,12 @@
193 "name": null, 193 "name": null,
194 "owner": "hoyon", 194 "owner": "hoyon",
195 "repo": "mpv-mpris", 195 "repo": "mpv-mpris",
196 "rev": "1.1", 196 "rev": "1.2",
197 "sha256": "sha256-vZIO6ILatIWa9nJYOp4AMKwvaZLahqYWRLMDOizyBI0=", 197 "sha256": "sha256-Q2kNaXZtI6U+x2f00x5CiHZq4o64xFTNC/3W4IiP0+4=",
198 "sparseCheckout": [], 198 "sparseCheckout": [],
199 "type": "github" 199 "type": "github"
200 }, 200 },
201 "version": "1.1" 201 "version": "1.2"
202 }, 202 },
203 "mpv-reload": { 203 "mpv-reload": {
204 "cargoLock": null, 204 "cargoLock": null,
@@ -270,11 +270,11 @@
270 "pinned": false, 270 "pinned": false,
271 "src": { 271 "src": {
272 "name": null, 272 "name": null,
273 "sha256": "sha256-rmMU/OTOh7zId+zwQCXHt2SJyBAtLNfCOZhDyrkBKjw=", 273 "sha256": "sha256-xvxF4mPgzcZO6j616FqozL8ObuMRuqKu87TtiPkHa+0=",
274 "type": "url", 274 "type": "url",
275 "url": "https://github.com/netbootxyz/netboot.xyz/releases/download/2.0.89/netboot.xyz.efi" 275 "url": "https://github.com/netbootxyz/netboot.xyz/releases/download/3.0.0/netboot.xyz.efi"
276 }, 276 },
277 "version": "2.0.89" 277 "version": "3.0.0"
278 }, 278 },
279 "netbootxyz-lkrn": { 279 "netbootxyz-lkrn": {
280 "cargoLock": null, 280 "cargoLock": null,
@@ -285,15 +285,15 @@
285 "pinned": false, 285 "pinned": false,
286 "src": { 286 "src": {
287 "name": null, 287 "name": null,
288 "sha256": "sha256-y0yibC3UeJUHslFBeMPVm2yEwxQqvL7/+BYMD5xDMm4=", 288 "sha256": "sha256-950XOaf3g4OPi6W8ELl0P/0TZ8fLfXbjb9WsEfhVswY=",
289 "type": "url", 289 "type": "url",
290 "url": "https://github.com/netbootxyz/netboot.xyz/releases/download/2.0.89/netboot.xyz.lkrn" 290 "url": "https://github.com/netbootxyz/netboot.xyz/releases/download/3.0.0/netboot.xyz.lkrn"
291 }, 291 },
292 "version": "2.0.89" 292 "version": "3.0.0"
293 }, 293 },
294 "nix-output-monitor": { 294 "nix-output-monitor": {
295 "cargoLock": null, 295 "cargoLock": null,
296 "date": "2025-12-17", 296 "date": "2026-01-30",
297 "extract": null, 297 "extract": null,
298 "name": "nix-output-monitor", 298 "name": "nix-output-monitor",
299 "passthru": null, 299 "passthru": null,
@@ -303,13 +303,13 @@
303 "fetchSubmodules": false, 303 "fetchSubmodules": false,
304 "leaveDotGit": false, 304 "leaveDotGit": false,
305 "name": null, 305 "name": null,
306 "rev": "9a32f32f807a4f7bc97d95606465243f293650fe", 306 "rev": "e7270cb61b9228de4362f39b7400d6c61a5eb419",
307 "sha256": "sha256-04ME0a3MUH/Y306dFWgOOCghzwcadTDpqJFkhLonIrw=", 307 "sha256": "sha256-eJ6O+Lxzn//+u4Q76cuAvTvqLkBNgA0E8UtGNn+E9Tc=",
308 "sparseCheckout": [], 308 "sparseCheckout": [],
309 "type": "git", 309 "type": "git",
310 "url": "https://code.maralorn.de/maralorn/nix-output-monitor.git" 310 "url": "https://code.maralorn.de/maralorn/nix-output-monitor.git"
311 }, 311 },
312 "version": "9a32f32f807a4f7bc97d95606465243f293650fe" 312 "version": "e7270cb61b9228de4362f39b7400d6c61a5eb419"
313 }, 313 },
314 "postfix-mta-sts-resolver": { 314 "postfix-mta-sts-resolver": {
315 "cargoLock": null, 315 "cargoLock": null,
@@ -375,7 +375,7 @@
375 }, 375 },
376 "quickshell": { 376 "quickshell": {
377 "cargoLock": null, 377 "cargoLock": null,
378 "date": "2025-12-25", 378 "date": "2026-01-28",
379 "extract": null, 379 "extract": null,
380 "name": "quickshell", 380 "name": "quickshell",
381 "passthru": null, 381 "passthru": null,
@@ -385,13 +385,13 @@
385 "fetchSubmodules": false, 385 "fetchSubmodules": false,
386 "leaveDotGit": false, 386 "leaveDotGit": false,
387 "name": null, 387 "name": null,
388 "rev": "41828c4180fb921df7992a5405f5ff05d2ac2fff", 388 "rev": "1e4d804e7f3fa7465811030e8da2bf10d544426a",
389 "sha256": "sha256-O2aMFdDUYJazFrlwL7aSIHbUSEm3ADVZjmf41uBJfHs=", 389 "sha256": "sha256-WW00FaBiUmQyxvSbefvgxIjwf/WmRrEGBbwMHvW/7uQ=",
390 "sparseCheckout": [], 390 "sparseCheckout": [],
391 "type": "git", 391 "type": "git",
392 "url": "https://git.outfoxxed.me/quickshell/quickshell.git" 392 "url": "https://git.outfoxxed.me/quickshell/quickshell.git"
393 }, 393 },
394 "version": "41828c4180fb921df7992a5405f5ff05d2ac2fff" 394 "version": "1e4d804e7f3fa7465811030e8da2bf10d544426a"
395 }, 395 },
396 "scutiger": { 396 "scutiger": {
397 "cargoLock": null, 397 "cargoLock": null,
@@ -511,12 +511,12 @@
511 "name": null, 511 "name": null,
512 "owner": "yt-dlp", 512 "owner": "yt-dlp",
513 "repo": "yt-dlp", 513 "repo": "yt-dlp",
514 "rev": "2025.12.08", 514 "rev": "2026.02.04",
515 "sha256": "sha256-y06MDP+CrlHGrell9hcLOGlHp/gU2OOxs7can4hbj+g=", 515 "sha256": "sha256-KXnz/ocHBftenDUkCiFoBRBxi6yWt0fNuRX+vKFWDQw=",
516 "sparseCheckout": [], 516 "sparseCheckout": [],
517 "type": "github" 517 "type": "github"
518 }, 518 },
519 "version": "2025.12.08" 519 "version": "2026.02.04"
520 }, 520 },
521 "yt-dlp-ejs": { 521 "yt-dlp-ejs": {
522 "cargoLock": null, 522 "cargoLock": null,
@@ -532,11 +532,11 @@
532 "name": null, 532 "name": null,
533 "owner": "yt-dlp", 533 "owner": "yt-dlp",
534 "repo": "ejs", 534 "repo": "ejs",
535 "rev": "0.3.2", 535 "rev": "0.4.0",
536 "sha256": "sha256-o6qf4rfj42mCyvCBb+wyJmZKg3Q+ojsqbCcBfIJnTPg=", 536 "sha256": "sha256-/qq069SD7ESg+7pK4PC1EGLLI8zqjWUse7cArN4YuXE=",
537 "sparseCheckout": [], 537 "sparseCheckout": [],
538 "type": "github" 538 "type": "github"
539 }, 539 },
540 "version": "0.3.2" 540 "version": "0.4.0"
541 } 541 }
542} \ No newline at end of file 542} \ No newline at end of file
diff --git a/_sources/generated.nix b/_sources/generated.nix
index 8785e857..fbd6e998 100644
--- a/_sources/generated.nix
+++ b/_sources/generated.nix
@@ -118,13 +118,13 @@
118 }; 118 };
119 mpv-mpris = { 119 mpv-mpris = {
120 pname = "mpv-mpris"; 120 pname = "mpv-mpris";
121 version = "1.1"; 121 version = "1.2";
122 src = fetchFromGitHub { 122 src = fetchFromGitHub {
123 owner = "hoyon"; 123 owner = "hoyon";
124 repo = "mpv-mpris"; 124 repo = "mpv-mpris";
125 rev = "1.1"; 125 rev = "1.2";
126 fetchSubmodules = false; 126 fetchSubmodules = false;
127 sha256 = "sha256-vZIO6ILatIWa9nJYOp4AMKwvaZLahqYWRLMDOizyBI0="; 127 sha256 = "sha256-Q2kNaXZtI6U+x2f00x5CiHZq4o64xFTNC/3W4IiP0+4=";
128 }; 128 };
129 }; 129 };
130 mpv-reload = { 130 mpv-reload = {
@@ -169,33 +169,33 @@
169 }; 169 };
170 netbootxyz-efi = { 170 netbootxyz-efi = {
171 pname = "netbootxyz-efi"; 171 pname = "netbootxyz-efi";
172 version = "2.0.89"; 172 version = "3.0.0";
173 src = fetchurl { 173 src = fetchurl {
174 url = "https://github.com/netbootxyz/netboot.xyz/releases/download/2.0.89/netboot.xyz.efi"; 174 url = "https://github.com/netbootxyz/netboot.xyz/releases/download/3.0.0/netboot.xyz.efi";
175 sha256 = "sha256-rmMU/OTOh7zId+zwQCXHt2SJyBAtLNfCOZhDyrkBKjw="; 175 sha256 = "sha256-xvxF4mPgzcZO6j616FqozL8ObuMRuqKu87TtiPkHa+0=";
176 }; 176 };
177 }; 177 };
178 netbootxyz-lkrn = { 178 netbootxyz-lkrn = {
179 pname = "netbootxyz-lkrn"; 179 pname = "netbootxyz-lkrn";
180 version = "2.0.89"; 180 version = "3.0.0";
181 src = fetchurl { 181 src = fetchurl {
182 url = "https://github.com/netbootxyz/netboot.xyz/releases/download/2.0.89/netboot.xyz.lkrn"; 182 url = "https://github.com/netbootxyz/netboot.xyz/releases/download/3.0.0/netboot.xyz.lkrn";
183 sha256 = "sha256-y0yibC3UeJUHslFBeMPVm2yEwxQqvL7/+BYMD5xDMm4="; 183 sha256 = "sha256-950XOaf3g4OPi6W8ELl0P/0TZ8fLfXbjb9WsEfhVswY=";
184 }; 184 };
185 }; 185 };
186 nix-output-monitor = { 186 nix-output-monitor = {
187 pname = "nix-output-monitor"; 187 pname = "nix-output-monitor";
188 version = "9a32f32f807a4f7bc97d95606465243f293650fe"; 188 version = "e7270cb61b9228de4362f39b7400d6c61a5eb419";
189 src = fetchgit { 189 src = fetchgit {
190 url = "https://code.maralorn.de/maralorn/nix-output-monitor.git"; 190 url = "https://code.maralorn.de/maralorn/nix-output-monitor.git";
191 rev = "9a32f32f807a4f7bc97d95606465243f293650fe"; 191 rev = "e7270cb61b9228de4362f39b7400d6c61a5eb419";
192 fetchSubmodules = false; 192 fetchSubmodules = false;
193 deepClone = false; 193 deepClone = false;
194 leaveDotGit = false; 194 leaveDotGit = false;
195 sparseCheckout = [ ]; 195 sparseCheckout = [ ];
196 sha256 = "sha256-04ME0a3MUH/Y306dFWgOOCghzwcadTDpqJFkhLonIrw="; 196 sha256 = "sha256-eJ6O+Lxzn//+u4Q76cuAvTvqLkBNgA0E8UtGNn+E9Tc=";
197 }; 197 };
198 date = "2025-12-17"; 198 date = "2026-01-30";
199 }; 199 };
200 postfix-mta-sts-resolver = { 200 postfix-mta-sts-resolver = {
201 pname = "postfix-mta-sts-resolver"; 201 pname = "postfix-mta-sts-resolver";
@@ -237,17 +237,17 @@
237 }; 237 };
238 quickshell = { 238 quickshell = {
239 pname = "quickshell"; 239 pname = "quickshell";
240 version = "41828c4180fb921df7992a5405f5ff05d2ac2fff"; 240 version = "1e4d804e7f3fa7465811030e8da2bf10d544426a";
241 src = fetchgit { 241 src = fetchgit {
242 url = "https://git.outfoxxed.me/quickshell/quickshell.git"; 242 url = "https://git.outfoxxed.me/quickshell/quickshell.git";
243 rev = "41828c4180fb921df7992a5405f5ff05d2ac2fff"; 243 rev = "1e4d804e7f3fa7465811030e8da2bf10d544426a";
244 fetchSubmodules = false; 244 fetchSubmodules = false;
245 deepClone = false; 245 deepClone = false;
246 leaveDotGit = false; 246 leaveDotGit = false;
247 sparseCheckout = [ ]; 247 sparseCheckout = [ ];
248 sha256 = "sha256-O2aMFdDUYJazFrlwL7aSIHbUSEm3ADVZjmf41uBJfHs="; 248 sha256 = "sha256-WW00FaBiUmQyxvSbefvgxIjwf/WmRrEGBbwMHvW/7uQ=";
249 }; 249 };
250 date = "2025-12-25"; 250 date = "2026-01-28";
251 }; 251 };
252 scutiger = { 252 scutiger = {
253 pname = "scutiger"; 253 pname = "scutiger";
@@ -313,24 +313,24 @@
313 }; 313 };
314 yt-dlp = { 314 yt-dlp = {
315 pname = "yt-dlp"; 315 pname = "yt-dlp";
316 version = "2025.12.08"; 316 version = "2026.02.04";
317 src = fetchFromGitHub { 317 src = fetchFromGitHub {
318 owner = "yt-dlp"; 318 owner = "yt-dlp";
319 repo = "yt-dlp"; 319 repo = "yt-dlp";
320 rev = "2025.12.08"; 320 rev = "2026.02.04";
321 fetchSubmodules = false; 321 fetchSubmodules = false;
322 sha256 = "sha256-y06MDP+CrlHGrell9hcLOGlHp/gU2OOxs7can4hbj+g="; 322 sha256 = "sha256-KXnz/ocHBftenDUkCiFoBRBxi6yWt0fNuRX+vKFWDQw=";
323 }; 323 };
324 }; 324 };
325 yt-dlp-ejs = { 325 yt-dlp-ejs = {
326 pname = "yt-dlp-ejs"; 326 pname = "yt-dlp-ejs";
327 version = "0.3.2"; 327 version = "0.4.0";
328 src = fetchFromGitHub { 328 src = fetchFromGitHub {
329 owner = "yt-dlp"; 329 owner = "yt-dlp";
330 repo = "ejs"; 330 repo = "ejs";
331 rev = "0.3.2"; 331 rev = "0.4.0";
332 fetchSubmodules = false; 332 fetchSubmodules = false;
333 sha256 = "sha256-o6qf4rfj42mCyvCBb+wyJmZKg3Q+ojsqbCcBfIJnTPg="; 333 sha256 = "sha256-/qq069SD7ESg+7pK4PC1EGLLI8zqjWUse7cArN4YuXE=";
334 }; 334 };
335 }; 335 };
336} 336}
diff --git a/accounts/gkleen@sif/default.nix b/accounts/gkleen@sif/default.nix
index a6bf0803..047ed71e 100644
--- a/accounts/gkleen@sif/default.nix
+++ b/accounts/gkleen@sif/default.nix
@@ -75,7 +75,6 @@ in {
75 ./shell 75 ./shell
76 ./synadm 76 ./synadm
77 flakeInputs.nix-index-database.homeModules.nix-index 77 flakeInputs.nix-index-database.homeModules.nix-index
78 flakeInputs.impermanence.nixosModules.home-manager.impermanence
79 ]; 78 ];
80 79
81 home.stateVersion = "20.09"; 80 home.stateVersion = "20.09";
diff --git a/flake.lock b/flake.lock
index 3c79fa80..1583147c 100644
--- a/flake.lock
+++ b/flake.lock
@@ -91,11 +91,11 @@
91 ] 91 ]
92 }, 92 },
93 "locked": { 93 "locked": {
94 "lastModified": 1766051518, 94 "lastModified": 1770019181,
95 "narHash": "sha256-znKOwPXQnt3o7lDb3hdf19oDo0BLP4MfBOYiWkEHoik=", 95 "narHash": "sha256-hwsYgDnby50JNVpTRYlF3UR/Rrpt01OrxVuryF40CFY=",
96 "owner": "serokell", 96 "owner": "serokell",
97 "repo": "deploy-rs", 97 "repo": "deploy-rs",
98 "rev": "d5eff7f948535b9c723d60cd8239f8f11ddc90fa", 98 "rev": "77c906c0ba56aabdbc72041bf9111b565cdd6171",
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": 1766661267, 143 "lastModified": 1767039857,
144 "narHash": "sha256-QN1r/zNqvXHwWqlRAnRtFf4CQwIOJx58PtdExIzAw94=", 144 "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
145 "owner": "edolstra", 145 "owner": "edolstra",
146 "repo": "flake-compat", 146 "repo": "flake-compat",
147 "rev": "f275e157c50c3a9a682b4c9b4aa4db7a4cd3b5f2", 147 "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
148 "type": "github" 148 "type": "github"
149 }, 149 },
150 "original": { 150 "original": {
@@ -441,13 +441,38 @@
441 "type": "github" 441 "type": "github"
442 } 442 }
443 }, 443 },
444 "home-manager_2": {
445 "inputs": {
446 "nixpkgs": [
447 "impermanence",
448 "nixpkgs"
449 ]
450 },
451 "locked": {
452 "lastModified": 1768598210,
453 "narHash": "sha256-kkgA32s/f4jaa4UG+2f8C225Qvclxnqs76mf8zvTVPg=",
454 "owner": "nix-community",
455 "repo": "home-manager",
456 "rev": "c47b2cc64a629f8e075de52e4742de688f930dc6",
457 "type": "github"
458 },
459 "original": {
460 "owner": "nix-community",
461 "repo": "home-manager",
462 "type": "github"
463 }
464 },
444 "impermanence": { 465 "impermanence": {
466 "inputs": {
467 "home-manager": "home-manager_2",
468 "nixpkgs": "nixpkgs_2"
469 },
445 "locked": { 470 "locked": {
446 "lastModified": 1737831083, 471 "lastModified": 1769548169,
447 "narHash": "sha256-LJggUHbpyeDvNagTUrdhe/pRVp4pnS6wVKALS782gRI=", 472 "narHash": "sha256-03+JxvzmfwRu+5JafM0DLbxgHttOQZkUtDWBmeUkN8Y=",
448 "owner": "nix-community", 473 "owner": "nix-community",
449 "repo": "impermanence", 474 "repo": "impermanence",
450 "rev": "4b3e914cdf97a5b536a889e939fb2fd2b043a170", 475 "rev": "7b1d382faf603b6d264f58627330f9faa5cba149",
451 "type": "github" 476 "type": "github"
452 }, 477 },
453 "original": { 478 "original": {
@@ -507,11 +532,11 @@
507 "xwayland-satellite-unstable": "xwayland-satellite-unstable" 532 "xwayland-satellite-unstable": "xwayland-satellite-unstable"
508 }, 533 },
509 "locked": { 534 "locked": {
510 "lastModified": 1766765523, 535 "lastModified": 1770271466,
511 "narHash": "sha256-DCk3GKdKZNjpvNuDy9ZVfVwCy3tlm96/UZnYkJO7N44=", 536 "narHash": "sha256-Pyc3p/V7ruQplnU31r+umLSNlSGwOOoHzhWfzfLmiiw=",
512 "owner": "sodiboo", 537 "owner": "sodiboo",
513 "repo": "niri-flake", 538 "repo": "niri-flake",
514 "rev": "a3e638c75d07de759421e6f34bd69c3f9a0a3567", 539 "rev": "76e1d271485b00a5d98aeb1dd76408594741c039",
515 "type": "github" 540 "type": "github"
516 }, 541 },
517 "original": { 542 "original": {
@@ -541,11 +566,11 @@
541 "niri-unstable": { 566 "niri-unstable": {
542 "flake": false, 567 "flake": false,
543 "locked": { 568 "locked": {
544 "lastModified": 1765177104, 569 "lastModified": 1770366183,
545 "narHash": "sha256-HNaSNHkEJ4OOpdmmEMV4TVHna7XRcn8P9fXI9zkbd/Y=", 570 "narHash": "sha256-kqllrO92WQEjqEOoxHxt2L64NwUhbRKoKdBijbK9qnM=",
546 "owner": "gkleen", 571 "owner": "gkleen",
547 "repo": "niri", 572 "repo": "niri",
548 "rev": "edd17b4816d9daf49f2ccf0354cef26e5473249c", 573 "rev": "eb22080cfd1fe7e60e860934c3ac087cd175ec2a",
549 "type": "github" 574 "type": "github"
550 }, 575 },
551 "original": { 576 "original": {
@@ -583,11 +608,11 @@
583 ] 608 ]
584 }, 609 },
585 "locked": { 610 "locked": {
586 "lastModified": 1765267181, 611 "lastModified": 1770315571,
587 "narHash": "sha256-d3NBA9zEtBu2JFMnTBqWj7Tmi7R5OikoU2ycrdhQEws=", 612 "narHash": "sha256-hy0gcAgAcxrnSWKGuNO+Ob0x6jQ2xkR6hoaR0qJBHYs=",
588 "owner": "nix-community", 613 "owner": "nix-community",
589 "repo": "nix-index-database", 614 "repo": "nix-index-database",
590 "rev": "82befcf7dc77c909b0f2a09f5da910ec95c5b78f", 615 "rev": "2684bb8080a6f2ca5f9d494de5ef875bc1c4ecdb",
591 "type": "github" 616 "type": "github"
592 }, 617 },
593 "original": { 618 "original": {
@@ -640,11 +665,11 @@
640 }, 665 },
641 "nixos-hardware": { 666 "nixos-hardware": {
642 "locked": { 667 "locked": {
643 "lastModified": 1766568855, 668 "lastModified": 1769302137,
644 "narHash": "sha256-UXVtN77D7pzKmzOotFTStgZBqpOcf8cO95FcupWp4Zo=", 669 "narHash": "sha256-QEDtctEkOsbx8nlFh4yqPEOtr4tif6KTqWwJ37IM2ds=",
645 "owner": "NixOS", 670 "owner": "NixOS",
646 "repo": "nixos-hardware", 671 "repo": "nixos-hardware",
647 "rev": "c5db9569ac9cc70929c268ac461f4003e3e5ca80", 672 "rev": "a351494b0e35fd7c0b7a1aae82f0afddf4907aa8",
648 "type": "github" 673 "type": "github"
649 }, 674 },
650 "original": { 675 "original": {
@@ -765,11 +790,11 @@
765 }, 790 },
766 "nixpkgs-stable_2": { 791 "nixpkgs-stable_2": {
767 "locked": { 792 "locked": {
768 "lastModified": 1766736597, 793 "lastModified": 1770136044,
769 "narHash": "sha256-BASnpCLodmgiVn0M1MU2Pqyoz0aHwar/0qLkp7CjvSQ=", 794 "narHash": "sha256-tlFqNG/uzz2++aAmn4v8J0vAkV3z7XngeIIB3rM3650=",
770 "owner": "NixOS", 795 "owner": "NixOS",
771 "repo": "nixpkgs", 796 "repo": "nixpkgs",
772 "rev": "f560ccec6b1116b22e6ed15f4c510997d99d5852", 797 "rev": "e576e3c9cf9bad747afcddd9e34f51d18c855b4e",
773 "type": "github" 798 "type": "github"
774 }, 799 },
775 "original": { 800 "original": {
@@ -813,15 +838,15 @@
813 }, 838 },
814 "nixpkgs_2": { 839 "nixpkgs_2": {
815 "locked": { 840 "locked": {
816 "lastModified": 1767778871, 841 "lastModified": 1768564909,
817 "narHash": "sha256-cqHgM4TcEnXVTnr+eOxsB0Zz7Ae7vYplaOe9ARHGbGg=", 842 "narHash": "sha256-Kell/SpJYVkHWMvnhqJz/8DqQg2b6PguxVWOuadbHCc=",
818 "owner": "gkleen", 843 "owner": "nixos",
819 "repo": "nixpkgs", 844 "repo": "nixpkgs",
820 "rev": "09cd8d0cd10ab814611d894c919ec30b7f83d911", 845 "rev": "e4bae1bd10c9c57b2cf517953ab70060a828ee6f",
821 "type": "github" 846 "type": "github"
822 }, 847 },
823 "original": { 848 "original": {
824 "owner": "NixOS", 849 "owner": "nixos",
825 "ref": "nixos-unstable", 850 "ref": "nixos-unstable",
826 "repo": "nixpkgs", 851 "repo": "nixpkgs",
827 "type": "github" 852 "type": "github"
@@ -829,6 +854,22 @@
829 }, 854 },
830 "nixpkgs_3": { 855 "nixpkgs_3": {
831 "locked": { 856 "locked": {
857 "lastModified": 1770197578,
858 "narHash": "sha256-AYqlWrX09+HvGs8zM6ebZ1pwUqjkfpnv8mewYwAo+iM=",
859 "owner": "NixOS",
860 "repo": "nixpkgs",
861 "rev": "00c21e4c93d963c50d4c0c89bfa84ed6e0694df2",
862 "type": "github"
863 },
864 "original": {
865 "owner": "NixOS",
866 "ref": "nixos-unstable",
867 "repo": "nixpkgs",
868 "type": "github"
869 }
870 },
871 "nixpkgs_4": {
872 "locked": {
832 "lastModified": 1681303793, 873 "lastModified": 1681303793,
833 "narHash": "sha256-JEdQHsYuCfRL2PICHlOiH/2ue3DwoxUX7DJ6zZxZXFk=", 874 "narHash": "sha256-JEdQHsYuCfRL2PICHlOiH/2ue3DwoxUX7DJ6zZxZXFk=",
834 "owner": "NixOS", 875 "owner": "NixOS",
@@ -972,7 +1013,7 @@
972 "flake-compat": "flake-compat_5", 1013 "flake-compat": "flake-compat_5",
973 "flake-utils": "flake-utils_2", 1014 "flake-utils": "flake-utils_2",
974 "gitignore": "gitignore_4", 1015 "gitignore": "gitignore_4",
975 "nixpkgs": "nixpkgs_3", 1016 "nixpkgs": "nixpkgs_4",
976 "nixpkgs-stable": "nixpkgs-stable_4" 1017 "nixpkgs-stable": "nixpkgs-stable_4"
977 }, 1018 },
978 "locked": { 1019 "locked": {
@@ -1077,11 +1118,11 @@
1077 ] 1118 ]
1078 }, 1119 },
1079 "locked": { 1120 "locked": {
1080 "lastModified": 1764134915, 1121 "lastModified": 1769936401,
1081 "narHash": "sha256-xaKvtPx6YAnA3HQVp5LwyYG1MaN4LLehpQI8xEdBvBY=", 1122 "narHash": "sha256-kwCOegKLZJM9v/e/7cqwg1p/YjjTAukKPqmxKnAZRgA=",
1082 "owner": "pyproject-nix", 1123 "owner": "pyproject-nix",
1083 "repo": "pyproject.nix", 1124 "repo": "pyproject.nix",
1084 "rev": "2c8df1383b32e5443c921f61224b198a2282a657", 1125 "rev": "b0d513eeeebed6d45b4f2e874f9afba2021f7812",
1085 "type": "github" 1126 "type": "github"
1086 }, 1127 },
1087 "original": { 1128 "original": {
@@ -1107,7 +1148,7 @@
1107 "nix-monitored": "nix-monitored", 1148 "nix-monitored": "nix-monitored",
1108 "nixVirt": "nixVirt", 1149 "nixVirt": "nixVirt",
1109 "nixos-hardware": "nixos-hardware", 1150 "nixos-hardware": "nixos-hardware",
1110 "nixpkgs": "nixpkgs_2", 1151 "nixpkgs": "nixpkgs_3",
1111 "nixpkgs-eostre": "nixpkgs-eostre", 1152 "nixpkgs-eostre": "nixpkgs-eostre",
1112 "nixpkgs-pgbackrest": "nixpkgs-pgbackrest", 1153 "nixpkgs-pgbackrest": "nixpkgs-pgbackrest",
1113 "nixpkgs-stable": "nixpkgs-stable_3", 1154 "nixpkgs-stable": "nixpkgs-stable_3",
@@ -1148,11 +1189,11 @@
1148 ] 1189 ]
1149 }, 1190 },
1150 "locked": { 1191 "locked": {
1151 "lastModified": 1766289575, 1192 "lastModified": 1770145881,
1152 "narHash": "sha256-BOKCwOQQIP4p9z8DasT5r+qjri3x7sPCOq+FTjY8Z+o=", 1193 "narHash": "sha256-ktjWTq+D5MTXQcL9N6cDZXUf9kX8JBLLBLT0ZyOTSYY=",
1153 "owner": "Mic92", 1194 "owner": "Mic92",
1154 "repo": "sops-nix", 1195 "repo": "sops-nix",
1155 "rev": "9836912e37aef546029e48c8749834735a6b9dad", 1196 "rev": "17eea6f3816ba6568b8c81db8a4e6ca438b30b7c",
1156 "type": "github" 1197 "type": "github"
1157 }, 1198 },
1158 "original": { 1199 "original": {
@@ -1223,11 +1264,11 @@
1223 ] 1264 ]
1224 }, 1265 },
1225 "locked": { 1266 "locked": {
1226 "lastModified": 1766021660, 1267 "lastModified": 1770331927,
1227 "narHash": "sha256-UUfz7qWB1Rb2KjGVCimt//Jncv3TgJwffPqbzqpkmgY=", 1268 "narHash": "sha256-jlOvO++uvne/lTgWqdI4VhTV5OpVWi70ZDVBlT6vGSs=",
1228 "owner": "pyproject-nix", 1269 "owner": "pyproject-nix",
1229 "repo": "uv2nix", 1270 "repo": "uv2nix",
1230 "rev": "19fa99be3409f55ec05e823c66c9769df7a8dd17", 1271 "rev": "5b43a934e15b23bfba6c408cba1c570eccf80080",
1231 "type": "github" 1272 "type": "github"
1232 }, 1273 },
1233 "original": { 1274 "original": {
@@ -1256,11 +1297,11 @@
1256 "xwayland-satellite-unstable": { 1297 "xwayland-satellite-unstable": {
1257 "flake": false, 1298 "flake": false,
1258 "locked": { 1299 "locked": {
1259 "lastModified": 1766429945, 1300 "lastModified": 1770167989,
1260 "narHash": "sha256-9Kv4gWagx/u4RfZJzBMAoagW9ava5waxd+XoTkzqF7E=", 1301 "narHash": "sha256-rE2WTxKHe3KMG/Zr5YUNeKHkZfWwSFl7yJXrOKnunHg=",
1261 "owner": "Supreeeme", 1302 "owner": "Supreeeme",
1262 "repo": "xwayland-satellite", 1303 "repo": "xwayland-satellite",
1263 "rev": "0dde7ca1d3a8e8c5082533d76084e2aa02bef70e", 1304 "rev": "0947c4685f6237d4f8045482ce0c62feab40b6c4",
1264 "type": "github" 1305 "type": "github"
1265 }, 1306 },
1266 "original": { 1307 "original": {
diff --git a/hosts/sif/hw.nix b/hosts/sif/hw.nix
index e567c37d..12268d74 100644
--- a/hosts/sif/hw.nix
+++ b/hosts/sif/hw.nix
@@ -16,8 +16,6 @@
16 fsType = "bcachefs"; 16 fsType = "bcachefs";
17 neededForBoot = true; 17 neededForBoot = true;
18 }; 18 };
19 "/var/lib/sops-nix".neededForBoot = true;
20 "/var/lib/systemd".neededForBoot = true;
21 }; 19 };
22 swapDevices = [ 20 swapDevices = [
23 { label = "swap"; } 21 { label = "swap"; }
diff --git a/hosts/vidhar/default.nix b/hosts/vidhar/default.nix
index b799ee5f..9639cbd3 100644
--- a/hosts/vidhar/default.nix
+++ b/hosts/vidhar/default.nix
@@ -14,6 +14,9 @@ with lib;
14 config = { 14 config = {
15 nixpkgs = { 15 nixpkgs = {
16 system = "x86_64-linux"; 16 system = "x86_64-linux";
17 externalConfig.allowUnfreePackages = [
18 "changedetection-io"
19 ];
17 }; 20 };
18 21
19 networking.hostId = "1e7ddd78"; 22 networking.hostId = "1e7ddd78";
diff --git a/modules/i18n.nix b/modules/i18n.nix
deleted file mode 100644
index f84e8b64..00000000
--- a/modules/i18n.nix
+++ /dev/null
@@ -1,156 +0,0 @@
1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7let
8 aggregatedLocales =
9 (builtins.map
10 (l: (lib.replaceStrings [ "utf8" "utf-8" "UTF8" ] [ "UTF-8" "UTF-8" "UTF-8" ] l) + "/UTF-8")
11 (
12 [ config.i18n.defaultLocale ]
13 ++ (lib.optionals (builtins.isList config.i18n.extraLocales) config.i18n.extraLocales)
14 ++ (lib.attrValues (lib.filterAttrs (n: _v: lib.hasPrefix "LC_" n) config.i18n.extraLocaleSettings))
15 )
16 )
17 ++ (lib.optional (builtins.isString config.i18n.extraLocales) config.i18n.extraLocales);
18in
19{
20 disabledModules = [ "config/i18n.nix" ];
21
22 ###### interface
23
24 options = {
25
26 i18n = {
27 glibcLocales = lib.mkOption {
28 type = lib.types.path;
29 default = pkgs.glibcLocales.override {
30 allLocales = lib.any (x: x == "all") config.i18n.supportedLocales;
31 locales = config.i18n.supportedLocales;
32 };
33 defaultText = lib.literalExpression ''
34 pkgs.glibcLocales.override {
35 allLocales = lib.any (x: x == "all") config.i18n.supportedLocales;
36 locales = config.i18n.supportedLocales;
37 }
38 '';
39 example = lib.literalExpression "pkgs.glibcLocales";
40 description = ''
41 Customized pkg.glibcLocales package.
42
43 Changing this option can disable handling of i18n.defaultLocale
44 and supportedLocale.
45 '';
46 };
47
48 defaultLocale = lib.mkOption {
49 type = lib.types.str;
50 default = "en_US.UTF-8";
51 example = "nl_NL.UTF-8";
52 description = ''
53 The default locale. It determines the language for program
54 messages, the format for dates and times, sort order, and so on.
55 It also determines the character set, such as UTF-8.
56 '';
57 };
58
59 extraLocales = lib.mkOption {
60 type = lib.types.either (lib.types.listOf lib.types.str) (lib.types.enum [ "all" ]);
61 default = [ ];
62 example = [ "nl_NL.UTF-8" ];
63 description = ''
64 Additional locales that the system should support, besides the ones
65 configured with {option}`i18n.defaultLocale` and
66 {option}`i18n.extraLocaleSettings`.
67 Set this to `"all"` to install all available locales.
68 '';
69 };
70
71 extraLocaleSettings = lib.mkOption {
72 type = lib.types.attrsOf lib.types.str;
73 default = { };
74 example = {
75 LC_MESSAGES = "en_US.UTF-8";
76 LC_TIME = "de_DE.UTF-8";
77 };
78 description = ''
79 A set of additional system-wide locale settings other than
80 `LANG` which can be configured with
81 {option}`i18n.defaultLocale`.
82 '';
83 };
84
85 supportedLocales = lib.mkOption {
86 type = lib.types.listOf lib.types.str;
87 visible = false;
88 default = lib.unique (
89 [
90 "C.UTF-8/UTF-8"
91 "en_US.UTF-8/UTF-8"
92 ]
93 ++ aggregatedLocales
94 );
95 example = [
96 "en_US.UTF-8/UTF-8"
97 "nl_NL.UTF-8/UTF-8"
98 "nl_NL/ISO-8859-1"
99 ];
100 description = ''
101 List of locales that the system should support. The value
102 `"all"` means that all locales supported by
103 Glibc will be installed. A full list of supported locales
104 can be found at <https://sourceware.org/git/?p=glibc.git;a=blob;f=localedata/SUPPORTED>.
105 '';
106 };
107
108 };
109
110 };
111
112 ###### implementation
113
114 config = {
115 warnings =
116 lib.optional
117 (
118 !(
119 (lib.subtractLists config.i18n.supportedLocales aggregatedLocales) == [ ]
120 || lib.any (x: x == "all") config.i18n.supportedLocales
121 )
122 )
123 ''
124 `i18n.supportedLocales` is deprecated in favor of `i18n.extraLocales`,
125 and it seems you are using `i18n.supportedLocales` and forgot to
126 include some locales specified in `i18n.defaultLocale`,
127 `i18n.extraLocales` or `i18n.extraLocaleSettings`.
128
129 If you're trying to install additional locales not specified in
130 `i18n.defaultLocale` or `i18n.extraLocaleSettings`, consider adding
131 only those locales to `i18n.extraLocales`.
132 '';
133
134 environment.systemPackages =
135 # We increase the priority a little, so that plain glibc in systemPackages can't win.
136 lib.optional (config.i18n.supportedLocales != [ ]) (lib.setPrio (-1) config.i18n.glibcLocales);
137
138 environment.sessionVariables = {
139 LANG = config.i18n.defaultLocale;
140 LOCALE_ARCHIVE = "/run/current-system/sw/lib/locale/locale-archive";
141 } // config.i18n.extraLocaleSettings;
142
143 systemd.globalEnvironment = lib.mkIf (config.i18n.supportedLocales != [ ]) {
144 LOCALE_ARCHIVE = "${config.i18n.glibcLocales}/lib/locale/locale-archive";
145 };
146
147 # ‘/etc/locale.conf’ is used by systemd.
148 environment.etc."locale.conf".source = pkgs.writeText "locale.conf" ''
149 LANG=${config.i18n.defaultLocale}
150 ${lib.concatStringsSep "\n" (
151 lib.mapAttrsToList (n: v: "${n}=${v}") config.i18n.extraLocaleSettings
152 )}
153 '';
154
155 };
156}
diff --git a/system-profiles/core/default.nix b/system-profiles/core/default.nix
index 258dd32d..58d2fe7c 100644
--- a/system-profiles/core/default.nix
+++ b/system-profiles/core/default.nix
@@ -62,6 +62,9 @@ in {
62 rhs = optCall rhs_ { inherit pkgs; }; 62 rhs = optCall rhs_ { inherit pkgs; };
63 in 63 in
64 recursiveUpdate lhs rhs // 64 recursiveUpdate lhs rhs //
65 optionalAttrs (lhs ? allowUnfreePackages) {
66 allowUnfreePackages = lhs.allowUnfreePackages ++ (attrByPath [ "allowUnfreePackages" ] [ ] rhs);
67 } //
65 optionalAttrs (lhs ? packageOverrides) { 68 optionalAttrs (lhs ? packageOverrides) {
66 packageOverrides = pkgs: 69 packageOverrides = pkgs:
67 optCall lhs.packageOverrides pkgs // 70 optCall lhs.packageOverrides pkgs //
diff --git a/system-profiles/default-locale.nix b/system-profiles/default-locale.nix
index 60d338cb..68bc4240 100644
--- a/system-profiles/default-locale.nix
+++ b/system-profiles/default-locale.nix
@@ -1,23 +1,29 @@
1{ lib, options, ... }: 1{ pkgs, lib, options, config, ... }:
2
3with lib;
4 2
5{ 3{
6 config = foldr recursiveUpdate {} ([ 4 config = lib.foldr lib.recursiveUpdate {} ([
7 { 5 {
8 i18n = { 6 i18n = {
9 defaultLocale = "en_DK.UTF-8"; 7 defaultLocale = "en_SE.UTF-8";
10 extraLocaleSettings = {
11 "TIME_STYLE" = "long-iso";
12 };
13 };
14 console.keyMap = mkDefault "dvorak-programmer";
15 8
16 time.timeZone = mkDefault "Europe/Berlin"; 9 glibcLocales =
10 (pkgs.glibcLocales.override {
11 allLocales = false;
12 locales = config.i18n.supportedLocales;
13 }).overrideAttrs (_: {
14 postUnpack = ''
15 cp ${pkgs.fetchurl {
16 url = "https://gist.githubusercontent.com/bmaupin/d64368e78cd359d309685fecbe2baf23/raw/e933a0fc2e727aa640f4a1cb1f699622876940fc/en_SE";
17 hash = "sha256-ArXL+rMDVWI4Mmcw8xoRlZFXhEeSQL0tLJf5pKEOx3s=";
18 }} $sourceRoot/localedata/locales/en_SE
19 echo 'en_SE.UTF-8/UTF-8 \' >> $sourceRoot/localedata/SUPPORTED
20 '';
21 });
22 };
17 } 23 }
18 ] ++ (optional (options ? i18n.extraLocales) { 24 ] ++ (lib.optional (options ? i18n.extraLocales) {
19 i18n.extraLocales = [ "C.UTF-8" "en_US.UTF-8" "en_DK.UTF-8" ]; 25 i18n.extraLocales = [ "C.UTF-8/UTF-8" "en_US.UTF-8/UTF-8" ];
20 }) ++ (optional (!(options ? i18n.extraLocales)) { 26 }) ++ (lib.optional (!(options ? i18n.extraLocales)) {
21 i18n.supportedLocales = [ "C.UTF-8/UTF-8" "en_US.UTF-8/UTF-8" "en_DK.UTF-8/UTF-8" ]; 27 i18n.supportedLocales = [ "C.UTF-8/UTF-8" "en_US.UTF-8/UTF-8" ];
22 })); 28 }));
23} 29}
diff --git a/user-profiles/zsh/default.nix b/user-profiles/zsh/default.nix
index 944d10ff..eb9f7aa9 100644
--- a/user-profiles/zsh/default.nix
+++ b/user-profiles/zsh/default.nix
@@ -1,6 +1,10 @@
1{ userName, pkgs, customUtils, lib, config, ... }: 1{ userName, pkgs, customUtils, lib, config, ... }:
2{ 2{
3 config = { 3 config = {
4 nixpkgs.externalConfig.allowUnfreePackages = [
5 "zsh-abbr"
6 ];
7
4 home-manager.users.${userName} = let sysConfig = config; in { config, ... }: { 8 home-manager.users.${userName} = let sysConfig = config; in { config, ... }: {
5 config = { 9 config = {
6 programs.zsh = { 10 programs.zsh = {