yep, more dotfiles

feat: use foot instead of kitty

+130 -102
+77 -82
flake.lock
··· 12 12 "systems": "systems" 13 13 }, 14 14 "locked": { 15 - "lastModified": 1723293904, 16 - "narHash": "sha256-b+uqzj+Wa6xgMS9aNbX4I+sXeb5biPDi39VgvSFqFvU=", 15 + "lastModified": 1736955230, 16 + "narHash": "sha256-uenf8fv2eG5bKM8C/UvFaiJMZ4IpUFaQxk9OH5t/1gA=", 17 17 "owner": "ryantm", 18 18 "repo": "agenix", 19 - "rev": "f6291c5935fdc4e0bef208cfc0dcab7e3f7a1c41", 19 + "rev": "e600439ec4c273cf11e06fe4d9d906fb98fa097c", 20 20 "type": "github" 21 21 }, 22 22 "original": { 23 23 "owner": "ryantm", 24 24 "repo": "agenix", 25 - "type": "github" 26 - } 27 - }, 28 - "crane": { 29 - "locked": { 30 - "lastModified": 1737563566, 31 - "narHash": "sha256-GLJvkOG29XCynQm8XWPyykMRqIhxKcBARVu7Ydrz02M=", 32 - "owner": "ipetkov", 33 - "repo": "crane", 34 - "rev": "849376434956794ebc7a6b487d31aace395392ba", 35 - "type": "github" 36 - }, 37 - "original": { 38 - "owner": "ipetkov", 39 - "repo": "crane", 40 25 "type": "github" 41 26 } 42 27 }, ··· 69 54 ] 70 55 }, 71 56 "locked": { 72 - "lastModified": 1732988076, 73 - "narHash": "sha256-2uMaVAZn7fiyTUGhKgleuLYe5+EAAYB/diKxrM7g3as=", 57 + "lastModified": 1743598667, 58 + "narHash": "sha256-ViE7NoFWytYO2uJONTAX35eGsvTYXNHjWALeHAg8OQY=", 74 59 "owner": "nix-community", 75 60 "repo": "disko", 76 - "rev": "2814a5224a47ca19e858e027f7e8bff74a8ea9f1", 61 + "rev": "329d3d7e8bc63dd30c39e14e6076db590a6eabe6", 77 62 "type": "github" 78 63 }, 79 64 "original": { ··· 243 228 }, 244 229 "helix": { 245 230 "inputs": { 246 - "crane": "crane", 247 231 "flake-utils": "flake-utils", 248 232 "nixpkgs": [ 249 233 "nixpkgs-unstable" ··· 251 235 "rust-overlay": "rust-overlay_2" 252 236 }, 253 237 "locked": { 254 - "lastModified": 1738547365, 255 - "narHash": "sha256-4GrVwyIZKx14eVG8TZMKmgyw8v3TuETPrLvYkFNqlyc=", 238 + "lastModified": 1744079626, 239 + "narHash": "sha256-uh68j7OWp2KuSMKKO49C3fdQV1mQH6jbj5p6VBhCOMU=", 256 240 "owner": "helix-editor", 257 241 "repo": "helix", 258 - "rev": "066e938ba083c0259ff411b681eca7bad30980df", 242 + "rev": "5d16aae58e3ec4a960955bba0c7e35ea6c4cb582", 259 243 "type": "github" 260 244 }, 261 245 "original": { ··· 271 255 ] 272 256 }, 273 257 "locked": { 274 - "lastModified": 1733050161, 275 - "narHash": "sha256-lYnT+EYE47f5yY3KS/Kd4pJ6CO9fhCqumkYYkQ3TK20=", 258 + "lastModified": 1743808813, 259 + "narHash": "sha256-2lDQBOmlz9ggPxcS7/GvcVdzXMIiT+PpMao6FbLJSr0=", 276 260 "owner": "nix-community", 277 261 "repo": "home-manager", 278 - "rev": "62d536255879be574ebfe9b87c4ac194febf47c5", 262 + "rev": "a9f8b3db211b4609ddd83683f9db89796c7f6ac6", 279 263 "type": "github" 280 264 }, 281 265 "original": { ··· 297 281 "url": "https://unpkg.com/htmx.org@2.0.4/dist/htmx.min.js" 298 282 } 299 283 }, 300 - "ia-fonts-src": { 284 + "ibm-plex-mono-src": { 301 285 "flake": false, 302 286 "locked": { 303 - "lastModified": 1686932517, 304 - "narHash": "sha256-2T165nFfCzO65/PIHauJA//S+zug5nUwPcg8NUEydfc=", 305 - "owner": "iaolo", 306 - "repo": "iA-Fonts", 307 - "rev": "f32c04c3058a75d7ce28919ce70fe8800817491b", 308 - "type": "github" 287 + "lastModified": 1731402384, 288 + "narHash": "sha256-OwUmrPfEehLDz0fl2ChYLK8FQM2p0G1+EMrGsYEq+6g=", 289 + "type": "tarball", 290 + "url": "https://github.com/IBM/plex/releases/download/@ibm/plex-mono@1.1.0/ibm-plex-mono.zip" 309 291 }, 310 292 "original": { 311 - "owner": "iaolo", 312 - "repo": "iA-Fonts", 313 - "type": "github" 293 + "type": "tarball", 294 + "url": "https://github.com/IBM/plex/releases/download/@ibm/plex-mono@1.1.0/ibm-plex-mono.zip" 314 295 } 315 296 }, 316 297 "indigo": { ··· 329 310 "type": "github" 330 311 } 331 312 }, 313 + "inter-fonts-src": { 314 + "flake": false, 315 + "locked": { 316 + "lastModified": 1731687360, 317 + "narHash": "sha256-5vdKKvHAeZi6igrfpbOdhZlDX2/5+UvzlnCQV6DdqoQ=", 318 + "type": "tarball", 319 + "url": "https://github.com/rsms/inter/releases/download/v4.1/Inter-4.1.zip" 320 + }, 321 + "original": { 322 + "type": "tarball", 323 + "url": "https://github.com/rsms/inter/releases/download/v4.1/Inter-4.1.zip" 324 + } 325 + }, 332 326 "iocaine-stable": { 333 327 "inputs": { 334 328 "nixpkgs": [ ··· 350 344 "narHash": "sha256-1gFFUpm7yrPNd7V4BFMud4Su0RKTV6v/J71qWtdoNuI=", 351 345 "rev": "7d794ec9525895a911b0d36acc4879d109e1d5fb", 352 346 "type": "tarball", 353 - "url": "https://git.madhouse-project.org/api/v1/repos/iocaine/iocaine/archive/7d794ec9525895a911b0d36acc4879d109e1d5fb.tar.gz?rev=7d794ec9525895a911b0d36acc4879d109e1d5fb" 347 + "url": "https://git.madhouse-project.org/api/v1/repos/iocaine/iocaine/archive/7d794ec9525895a911b0d36acc4879d109e1d5fb.tar.gz" 354 348 }, 355 349 "original": { 356 350 "type": "tarball", ··· 374 368 ] 375 369 }, 376 370 "locked": { 377 - "lastModified": 1743505151, 378 - "narHash": "sha256-61v8QJCF/EANwt+Q0b10TDNkVsPcZceGVG375QTBTDk=", 379 - "rev": "07e661e406084e8cc83ca6140e44149f50217687", 371 + "lastModified": 1743839943, 372 + "narHash": "sha256-m8Ou6rPyLlwRl1BX3W+TWzV33QxMQwAByKGvKNh5iZw=", 373 + "rev": "f8aca94475c1fb40d4e33e4b5a69fc349635a706", 380 374 "type": "tarball", 381 - "url": "https://git.madhouse-project.org/api/v1/repos/iocaine/iocaine/archive/07e661e406084e8cc83ca6140e44149f50217687.tar.gz?rev=07e661e406084e8cc83ca6140e44149f50217687" 375 + "url": "https://git.madhouse-project.org/api/v1/repos/iocaine/iocaine/archive/f8aca94475c1fb40d4e33e4b5a69fc349635a706.tar.gz" 382 376 }, 383 377 "original": { 384 378 "type": "tarball", ··· 394 388 "rust-overlay": "rust-overlay_3" 395 389 }, 396 390 "locked": { 397 - "lastModified": 1743646281, 398 - "narHash": "sha256-qxEjC+6B1UsR3wH/L8aGxPPVpUSmfNgHiNMuGWhqFL8=", 391 + "lastModified": 1744103559, 392 + "narHash": "sha256-jwuoVKGk6l+m9NVuD4hGFoHMmdW2WGMqgvcwlHeltMU=", 399 393 "owner": "jj-vcs", 400 394 "repo": "jj", 401 - "rev": "fa0b901c072cb5d703b7eaf8f37984c8f9bebe4c", 395 + "rev": "b63ab33b10d70e824acfd5059d2bad8bcf29f239", 402 396 "type": "github" 403 397 }, 404 398 "original": { ··· 427 421 ] 428 422 }, 429 423 "locked": { 430 - "lastModified": 1733105089, 431 - "narHash": "sha256-Qs3YmoLYUJ8g4RkFj2rMrzrP91e4ShAioC9s+vG6ENM=", 424 + "lastModified": 1743496612, 425 + "narHash": "sha256-emPWa5lmKbnyuj8c1mSJUkzJNT+iJoU9GMcXwjp2oVM=", 432 426 "owner": "LnL7", 433 427 "repo": "nix-darwin", 434 - "rev": "c6b65d946097baf3915dd51373251de98199280d", 428 + "rev": "73d59580d01e9b9f957ba749f336a272869c42dd", 435 429 "type": "github" 436 430 }, 437 431 "original": { ··· 452 446 "treefmt-nix": "treefmt-nix" 453 447 }, 454 448 "locked": { 455 - "lastModified": 1743507419, 456 - "narHash": "sha256-n00nu5bXKMP7J0GtSIWOvBENIRY/3KJLJStqVat2OCE=", 457 - "rev": "b04a3c0ed59a15db7b21793196cc98b994628f93", 449 + "lastModified": 1743841055, 450 + "narHash": "sha256-WyPDiMsTI7bVLn5NZ3SSSa/wzWKNeeEqj+9vFdiZ3Ms=", 451 + "rev": "b1b6be6c93ca0186bce27ba7aa1e7bebd4b17c87", 458 452 "type": "tarball", 459 - "url": "https://git.madhouse-project.org/api/v1/repos/iocaine/nixocaine/archive/b04a3c0ed59a15db7b21793196cc98b994628f93.tar.gz" 453 + "url": "https://git.madhouse-project.org/api/v1/repos/iocaine/nixocaine/archive/b1b6be6c93ca0186bce27ba7aa1e7bebd4b17c87.tar.gz" 460 454 }, 461 455 "original": { 462 456 "type": "tarball", ··· 465 459 }, 466 460 "nixos-hardware": { 467 461 "locked": { 468 - "lastModified": 1733139194, 469 - "narHash": "sha256-PVQW9ovo0CJbhuhCsrhFJGGdD1euwUornspKpBIgdok=", 462 + "lastModified": 1743420942, 463 + "narHash": "sha256-b/exDDQSLmENZZgbAEI3qi9yHkuXAXCPbormD8CSJXo=", 470 464 "owner": "nixos", 471 465 "repo": "nixos-hardware", 472 - "rev": "c6c90887f84c02ce9ebf33b95ca79ef45007bf88", 466 + "rev": "de6fc5551121c59c01e2a3d45b277a6d05077bc4", 473 467 "type": "github" 474 468 }, 475 469 "original": { ··· 480 474 }, 481 475 "nixpkgs": { 482 476 "locked": { 483 - "lastModified": 1732981179, 484 - "narHash": "sha256-F7thesZPvAMSwjRu0K8uFshTk3ZZSNAsXTIFvXBT+34=", 477 + "lastModified": 1743975612, 478 + "narHash": "sha256-o4FjFOUmjSRMK7dn0TFdAT0RRWUWD+WsspPHa+qEQT8=", 485 479 "owner": "nixos", 486 480 "repo": "nixpkgs", 487 - "rev": "62c435d93bf046a5396f3016472e8f7c8e2aed65", 481 + "rev": "a880f49904d68b5e53338d1e8c7bf80f59903928", 488 482 "type": "github" 489 483 }, 490 484 "original": { ··· 496 490 }, 497 491 "nixpkgs-unstable": { 498 492 "locked": { 499 - "lastModified": 1743583204, 500 - "narHash": "sha256-F7n4+KOIfWrwoQjXrL2wD9RhFYLs2/GGe/MQY1sSdlE=", 493 + "lastModified": 1743964447, 494 + "narHash": "sha256-nEo1t3Q0F+0jQ36HJfbJtiRU4OI+/0jX/iITURKe3EE=", 501 495 "owner": "nixos", 502 496 "repo": "nixpkgs", 503 - "rev": "2c8d3f48d33929642c1c12cd243df4cc7d2ce434", 497 + "rev": "063dece00c5a77e4a0ea24e5e5a5bd75232806f8", 504 498 "type": "github" 505 499 }, 506 500 "original": { ··· 520 514 ] 521 515 }, 522 516 "locked": { 523 - "lastModified": 1737465171, 524 - "narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=", 517 + "lastModified": 1742649964, 518 + "narHash": "sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco=", 525 519 "owner": "cachix", 526 520 "repo": "pre-commit-hooks.nix", 527 - "rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17", 521 + "rev": "dcf5072734cb576d2b0c59b2ac44f5050b5eac82", 528 522 "type": "github" 529 523 }, 530 524 "original": { ··· 580 574 ] 581 575 }, 582 576 "locked": { 583 - "lastModified": 1737599167, 584 - "narHash": "sha256-S2rHCrQWCDVp63XxL/AQbGr1g5M8Zx14C7Jooa4oM8o=", 577 + "lastModified": 1740623427, 578 + "narHash": "sha256-3SdPQrZoa4odlScFDUHd4CUPQ/R1gtH4Mq9u8CBiK8M=", 585 579 "owner": "oxalica", 586 580 "repo": "rust-overlay", 587 - "rev": "38374302ae9edf819eac666d1f276d62c712dd06", 581 + "rev": "d342e8b5fd88421ff982f383c853f0fc78a847ab", 588 582 "type": "github" 589 583 }, 590 584 "original": { ··· 622 616 ] 623 617 }, 624 618 "locked": { 625 - "lastModified": 1732156292, 626 - "narHash": "sha256-XuTCME5ZausokOJ28AsIoayBVD1soscdoiKweT4VY50=", 619 + "lastModified": 1733625333, 620 + "narHash": "sha256-tIML2axjm4AnlKP29upVJxzBpj4Cy4ak+PKonqQtXmc=", 627 621 "owner": "oxalica", 628 622 "repo": "rust-overlay", 629 - "rev": "2d484c7a0db32f2700e253160bcd2aaa6cdca3ba", 623 + "rev": "430c8b054e45ea44fd2c9521a378306ada507a6c", 630 624 "type": "github" 631 625 }, 632 626 "original": { ··· 746 740 "inputs": { 747 741 "gitignore": "gitignore_3", 748 742 "htmx-src": "htmx-src", 749 - "ia-fonts-src": "ia-fonts-src", 743 + "ibm-plex-mono-src": "ibm-plex-mono-src", 750 744 "indigo": "indigo", 745 + "inter-fonts-src": "inter-fonts-src", 751 746 "lucide-src": "lucide-src", 752 747 "nixpkgs": [ 753 748 "nixpkgs" 754 749 ] 755 750 }, 756 751 "locked": { 757 - "lastModified": 1743620557, 758 - "narHash": "sha256-w7a9Qn/IUdCe+gk5cMvSUS+YKItK2iTiu2Qcq49a+zU=", 752 + "lastModified": 1744106716, 753 + "narHash": "sha256-90j62Jp7PivPR0hSpL7uE5uTFYi3NO1AiAEpHH0miJQ=", 759 754 "ref": "refs/heads/master", 760 - "rev": "19ee94f42ab259c218762e6f0ed87952f80b5162", 761 - "revCount": 420, 755 + "rev": "1150567d3f28ffd600cc759afee8ec226baa0c5f", 756 + "revCount": 451, 762 757 "type": "git", 763 758 "url": "https://tangled.sh/@tangled.sh/core" 764 759 }, ··· 775 770 ] 776 771 }, 777 772 "locked": { 778 - "lastModified": 1738953846, 779 - "narHash": "sha256-yrK3Hjcr8F7qS/j2F+r7C7o010eVWWlm4T1PrbKBOxQ=", 773 + "lastModified": 1743748085, 774 + "narHash": "sha256-uhjnlaVTWo5iD3LXics1rp9gaKgDRQj6660+gbUU3cE=", 780 775 "owner": "numtide", 781 776 "repo": "treefmt-nix", 782 - "rev": "4f09b473c936d41582dd744e19f34ec27592c5fd", 777 + "rev": "815e4121d6a5d504c0f96e5be2dd7f871e4fd99d", 783 778 "type": "github" 784 779 }, 785 780 "original": { ··· 797 792 "rust-overlay": "rust-overlay_4" 798 793 }, 799 794 "locked": { 800 - "lastModified": 1732208238, 801 - "narHash": "sha256-06SFScBBqOtFBg5VYbQXsa8E7HOKEOnBMdsnEJ5lL1A=", 795 + "lastModified": 1739540650, 796 + "narHash": "sha256-i2NVTB4Khi5vlUdrc9FjFmZntp2e5aDEE3wZm1vRNwc=", 802 797 "owner": "mrnossiom", 803 798 "repo": "wakatime-ls", 804 - "rev": "546c1fb08d833176db190b2530ca84fb8c2e5640", 799 + "rev": "c17ce1329c26772b3518599e32f0a1921a3a01f8", 805 800 "type": "github" 806 801 }, 807 802 "original": {
+1
home-manager/fragments/default.nix
··· 11 11 ./chromium.nix 12 12 ./epita.nix 13 13 ./firefox.nix 14 + ./foot.nix 14 15 ./git.nix 15 16 ./helix.nix 16 17 ./imv.nix
+42
home-manager/fragments/foot.nix
··· 1 + { config 2 + , lib 3 + 4 + , isDarwin 5 + , ... 6 + }: 7 + 8 + let 9 + cfg = config.local.fragment.foot; 10 + in 11 + { 12 + options.local.fragment.foot.enable = lib.mkEnableOption '' 13 + Foot terminal related 14 + ''; 15 + 16 + config = lib.mkIf cfg.enable { 17 + assertions = [ 18 + { assertion = !isDarwin; message = "this is a non-darwin fragment"; } 19 + ]; 20 + 21 + home.sessionVariables.TERMINAL = lib.getExe config.programs.foot.package; 22 + 23 + programs.foot = { 24 + enable = true; 25 + 26 + # TODO: promising but too buggy 27 + # server.enable = true; 28 + 29 + settings = { 30 + main = { 31 + font = "monospace:size=12"; 32 + }; 33 + colors = { 34 + background = "000000"; 35 + foreground = "ffffff"; 36 + }; 37 + }; 38 + }; 39 + }; 40 + } 41 + 42 +
-1
home-manager/fragments/jujutsu.nix
··· 54 54 55 55 home.packages = with pkgs; [ 56 56 difftastic 57 - lazyjj 58 57 ]; 59 58 }; 60 59 }
+2
home-manager/fragments/kitty.nix
··· 23 23 { assertion = (!isDarwin) || config.programs.fish.enable; message = "`kitty` fragment depends on `fish` program on darwin platforms"; } 24 24 ]; 25 25 26 + home.sessionVariables.TERMINAL = lib.getExe config.programs.kitty.package; 27 + 26 28 programs.kitty = { 27 29 enable = true; 28 30 settings = {
+2
home-manager/fragments/shell.nix
··· 2 2 , lib 3 3 , pkgs 4 4 , lpkgs 5 + , upkgs 5 6 6 7 , isDarwin 7 8 , ... ··· 59 60 60 61 programs.fish = { 61 62 enable = true; 63 + package = upkgs.fish; 62 64 63 65 interactiveShellInit = '' 64 66 abbr -a !! --position anywhere --function last_history_item
+1 -1
home-manager/fragments/vm.nix
··· 28 28 29 29 config = lib.mkIf cfg.enable { 30 30 assertions = [ 31 - { assertion = (!isDarwin) || config.programs.fish.enable; message = "`kitty` fragment depends on `fish` program on darwin platforms"; } 31 + { assertion = !isDarwin; message = "this is a non-darwin fragment"; } 32 32 ]; 33 33 34 34 programs.swaylock = {
-10
home-manager/fragments/xdg-mime.nix
··· 14 14 Depends on: 15 15 - `firefox` program: default browser 16 16 - `imv` program: default image viewer 17 - - `kitty` program: default terminal 18 17 - `nautilus` program: default file explorer 19 18 ''; 20 19 ··· 22 21 assertions = [ 23 22 { assertion = config.programs.firefox.enable; message = "`xdg-mime` fragment depends on `firefox` program"; } 24 23 { assertion = config.programs.imv.enable; message = "`xdg-mime` fragment depends on `imv` program"; } 25 - { assertion = config.programs.kitty.enable; message = "`xdg-mime` fragment depends on `kitty` program"; } 26 24 { assertion = lib.lists.count (drv: (drv.pname or "") == pkgs.nautilus.pname) config.home.packages > 0; message = "`xdg-mime` fragment depends on `nautilus` program"; } 27 25 ]; 28 26 ··· 34 32 files = [ "org.gnome.Nautilus.desktop" ]; 35 33 browser = [ "firefox.desktop" ]; 36 34 images = [ "imv.desktop" ]; 37 - terminal = [ "kitty-open.desktop" ]; 38 35 in 39 36 { 40 37 "inode/directory" = files; ··· 56 53 "image/png" = images; 57 54 "image/tiff" = images; 58 55 "image/heif" = images; 59 - 60 - "text/plain" = terminal; 61 - "text/markdown" = terminal; 62 - "text/javascript" = terminal; 63 - # this is how `.ts` files are matched 64 - "text/vnd.trolltech.linguist" = terminal; 65 - "text/x-java" = terminal; 66 56 }; 67 57 68 58 associations.added = {
+1 -3
home-manager/profiles/desktop.nix
··· 30 30 chromium.enable = true; 31 31 epita.enable = true; 32 32 firefox.enable = true; 33 + foot.enable = true; 33 34 git.enable = true; 34 35 helix.enable = true; 35 36 imv.enable = true; 36 37 jujutsu.enable = true; 37 - kitty.enable = true; 38 38 rust.enable = true; 39 39 shell.enable = true; 40 40 thunderbird.enable = true; ··· 47 47 48 48 home = { 49 49 sessionVariables = { 50 - TERMINAL = lib.getExe pkgs.kitty; 51 - 52 50 # Quick access to `~/Development` folder 53 51 DEV = "${config.home.homeDirectory}/Development"; 54 52
-2
home-manager/profiles/server.nix
··· 8 8 { assertion = !isDarwin; message = "this is a HM non-darwin config"; } 9 9 ]; 10 10 11 - local.flags.onlyCached = true; 12 - 13 11 local.fragment.shell.enable = true; 14 12 }; 15 13 }
+1 -1
nixos/profiles/installer.nix
··· 43 43 # Generates hardware related config and uploads it to pastebin 44 44 # link-hardware-config [root] 45 45 link-hardware-config = writeShellScriptBin "link-hardware-config" '' 46 - nixos-generate-config --root ''${1:-/mnt} --show-hardware-config | ${lib.getExe pastebinit} 46 + nixos-generate-config --root ''${1:-/mnt} --show-hardware-config | ${lib.getExe' pastebinit "pastebinit"} 47 47 ''; 48 48 49 49 # Install specified flake system to /mnt
+3 -2
nixos/profiles/laptop.nix
··· 28 28 }; 29 29 30 30 networking.hosts = { 31 - # "127.0.0.1" = [ "www.youtube.com" ]; 31 + "127.0.0.1" = [ "www.youtube.com" ]; 32 + 32 33 "10.45.3.4" = [ "printer.epita" ]; 33 34 }; 34 35 ··· 38 39 kernelParams = [ "quiet" ]; 39 40 40 41 kernelPackages = upkgs.linuxKernel.packages.linux_zen; 41 - extraModulePackages = with config.boot.kernelPackages; [ apfs perf xone ]; 42 + extraModulePackages = with config.boot.kernelPackages; [ perf xone ]; 42 43 43 44 loader = { 44 45 systemd-boot.enable = true;