Kieran's opinionated (and probably slightly dumb) nix config

feat: move to a modules and machines folder structure

dunkirk.sh 7a9ea3d5 b3aa3e92

verified
+383 -654
+19 -20
README.md
··· 13 13 14 14 ```bash 15 15 ~/dots # symlinked to /etc/nixos 16 - ├── home-manager # all the configs that use home manager are stored centrally here 17 - │ ├── dots # any config files that need to be symlinked go here, e.g. my hyprland config 18 - │ │ └── wallpapers 19 - │ ├── machines # the different machines by hostname 20 - │ │ ├── ember 21 - │ │ ├── moonlark 22 - │ │ ├── nest 23 - │ │ └── tacyon 24 - │ └── modules 25 - │ ├── aesthetics # theming and wallpapers 26 - │ ├── apps # any app specific config 27 - │ ├── system # nxipkgs stuff mainly 28 - │ └── wm # window managers; just hyprland for now 29 - │ └── hyprland 30 - ├── nixos 31 - │ ├── machines # again machines by hostname 32 - │ │ └── moonlark 33 - │ └── modules 16 + ├── dots # any config files that need to be symlinked go here, e.g. my hyprland config 17 + │ └── wallpapers 18 + ├── machines 19 + │ ├── ember # my dell r210 server (in my basement) 20 + │ ├── moonlark # my framework 13 21 + │ │ └── home 22 + │ ├── nest # shared tilde server through hc 23 + │ └── tacyon # rpi 5 24 + ├── modules 25 + │ ├── home # home-manager modules 26 + │ │ ├── aesthetics # theming and wallpapers 27 + │ │ ├── apps # any app specific config 28 + │ │ │ └── crush # vendored for now 29 + │ │ ├── system # home-manager system configs 30 + │ │ └── wm # window managers; just hyprland for now 31 + │ │ └── hyprland 32 + │ └── nixos # nixos modules 34 33 │ ├── apps # also app specific configs 35 34 │ └── system # pam and my fancy wifi module for now 36 - └── secrets 35 + └── secrets # keep your grubby hands off my passwords 37 36 38 - 16 directories 37 + 19 directories 39 38 ``` 40 39 41 40 ## Installation
+41 -265
flake.lock
··· 8 8 "systems": "systems" 9 9 }, 10 10 "locked": { 11 - "lastModified": 1750173260, 12 - "narHash": "sha256-9P1FziAwl5+3edkfFcr5HeGtQUtrSdk/MksX39GieoA=", 11 + "lastModified": 1754433428, 12 + "narHash": "sha256-NA/FT2hVhKDftbHSwVnoRTFhes62+7dxZbxj5Gxvghs=", 13 13 "owner": "ryantm", 14 14 "repo": "agenix", 15 - "rev": "531beac616433bac6f9e2a19feb8e99a22a66baf", 15 + "rev": "9edb1787864c4f59ae5074ad498b6272b3ec308d", 16 16 "type": "github" 17 17 }, 18 18 "original": { ··· 169 169 "flake-compat": { 170 170 "flake": false, 171 171 "locked": { 172 - "lastModified": 1747046372, 173 - "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", 174 - "owner": "edolstra", 175 - "repo": "flake-compat", 176 - "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", 177 - "type": "github" 178 - }, 179 - "original": { 180 - "owner": "edolstra", 181 - "repo": "flake-compat", 182 - "type": "github" 183 - } 184 - }, 185 - "flake-compat_2": { 186 - "flake": false, 187 - "locked": { 188 172 "lastModified": 1696426674, 189 173 "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", 190 174 "owner": "edolstra", ··· 349 333 "type": "github" 350 334 } 351 335 }, 352 - "flake-utils_6": { 353 - "inputs": { 354 - "systems": "systems_7" 355 - }, 356 - "locked": { 357 - "lastModified": 1731533236, 358 - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", 359 - "owner": "numtide", 360 - "repo": "flake-utils", 361 - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", 362 - "type": "github" 363 - }, 364 - "original": { 365 - "owner": "numtide", 366 - "repo": "flake-utils", 367 - "type": "github" 368 - } 369 - }, 370 - "flake-utils_7": { 371 - "inputs": { 372 - "systems": "systems_8" 373 - }, 374 - "locked": { 375 - "lastModified": 1731533236, 376 - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", 377 - "owner": "numtide", 378 - "repo": "flake-utils", 379 - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", 380 - "type": "github" 381 - }, 382 - "original": { 383 - "owner": "numtide", 384 - "repo": "flake-utils", 385 - "type": "github" 386 - } 387 - }, 388 - "flakey-profile": { 389 - "locked": { 390 - "lastModified": 1712898590, 391 - "narHash": "sha256-FhGIEU93VHAChKEXx905TSiPZKga69bWl1VB37FK//I=", 392 - "owner": "lf-", 393 - "repo": "flakey-profile", 394 - "rev": "243c903fd8eadc0f63d205665a92d4df91d42d9d", 395 - "type": "github" 396 - }, 397 - "original": { 398 - "owner": "lf-", 399 - "repo": "flakey-profile", 400 - "type": "github" 401 - } 402 - }, 403 336 "flare": { 404 337 "inputs": { 405 338 "flake-utils": "flake-utils_2", ··· 408 341 ] 409 342 }, 410 343 "locked": { 411 - "lastModified": 1754095839, 412 - "narHash": "sha256-WnTMsgVZb0TEgk7BPuD3kiEZ+rbhSN+z+hNsyfKyaRo=", 344 + "lastModified": 1754248266, 345 + "narHash": "sha256-WiCCjfyrdUIHFtEigika1nKpxYTZahovbxcZfBzIFYw=", 413 346 "owner": "ByteAtATime", 414 347 "repo": "flare", 415 - "rev": "ed48facabbd099f3663df5b39438a1ff20f4d751", 348 + "rev": "c593d2c88ece3efeca2f07933079947dc3249bac", 416 349 "type": "github" 417 350 }, 418 351 "original": { ··· 444 377 "type": "github" 445 378 } 446 379 }, 447 - "ghostty": { 448 - "inputs": { 449 - "flake-compat": "flake-compat", 450 - "flake-utils": "flake-utils_4", 451 - "nixpkgs": "nixpkgs_3", 452 - "zig": "zig", 453 - "zon2nix": "zon2nix" 454 - }, 455 - "locked": { 456 - "lastModified": 1754060800, 457 - "narHash": "sha256-UA3ppDUMw9XmmTzjW50j8m4sKb+A/zEqAnUiGcrrst8=", 458 - "owner": "ghostty-org", 459 - "repo": "ghostty", 460 - "rev": "469001b7f623f780cfdcb50cc4842f7a4e6386ab", 461 - "type": "github" 462 - }, 463 - "original": { 464 - "owner": "ghostty-org", 465 - "repo": "ghostty", 466 - "type": "github" 467 - } 468 - }, 469 380 "gitignore": { 470 381 "inputs": { 471 382 "nixpkgs": [ ··· 490 401 }, 491 402 "hardware": { 492 403 "locked": { 493 - "lastModified": 1753122741, 494 - "narHash": "sha256-nFxE8lk9JvGelxClCmwuJYftbHqwnc01dRN4DVLUroM=", 404 + "lastModified": 1754564048, 405 + "narHash": "sha256-dz303vGuzWjzOPOaYkS9xSW+B93PSAJxvBd6CambXVA=", 495 406 "owner": "NixOS", 496 407 "repo": "nixos-hardware", 497 - "rev": "cc66fddc6cb04ab479a1bb062f4d4da27c936a22", 408 + "rev": "26ed7a0d4b8741fe1ef1ee6fa64453ca056ce113", 498 409 "type": "github" 499 410 }, 500 411 "original": { ··· 611 522 "type": "github" 612 523 } 613 524 }, 614 - "lix": { 615 - "flake": false, 616 - "locked": { 617 - "lastModified": 1753306924, 618 - "narHash": "sha256-jLCEW0FvjFhC+c4RHzH+xbkSOxrnpFHnhjOw6sudhx0=", 619 - "rev": "1a4393d0aac31aba21f5737ede1b171e11336d77", 620 - "type": "tarball", 621 - "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/1a4393d0aac31aba21f5737ede1b171e11336d77.tar.gz?rev=1a4393d0aac31aba21f5737ede1b171e11336d77" 622 - }, 623 - "original": { 624 - "type": "tarball", 625 - "url": "https://git.lix.systems/lix-project/lix/archive/release-2.93.tar.gz" 626 - } 627 - }, 628 - "lix-module": { 629 - "inputs": { 630 - "flake-utils": "flake-utils_5", 631 - "flakey-profile": "flakey-profile", 632 - "lix": "lix", 633 - "nixpkgs": [ 634 - "nixpkgs" 635 - ] 636 - }, 637 - "locked": { 638 - "lastModified": 1753282722, 639 - "narHash": "sha256-KYMUrTV7H/RR5/HRnjV5R3rRIuBXMemyJzTLi50NFTs=", 640 - "rev": "46a9e8fcfe4be72b4c7c8082ee11d2c42da1e873", 641 - "type": "tarball", 642 - "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/46a9e8fcfe4be72b4c7c8082ee11d2c42da1e873.tar.gz?rev=46a9e8fcfe4be72b4c7c8082ee11d2c42da1e873" 643 - }, 644 - "original": { 645 - "type": "tarball", 646 - "url": "https://git.lix.systems/lix-project/nixos-module/archive/2.93.3-1.tar.gz" 647 - } 648 - }, 649 525 "nix-github-actions": { 650 526 "inputs": { 651 527 "nixpkgs": [ ··· 669 545 }, 670 546 "nix-vscode-extensions": { 671 547 "inputs": { 672 - "flake-utils": "flake-utils_6", 673 - "nixpkgs": "nixpkgs_4" 548 + "flake-utils": "flake-utils_4", 549 + "nixpkgs": "nixpkgs_3" 674 550 }, 675 551 "locked": { 676 - "lastModified": 1754100706, 677 - "narHash": "sha256-ctRwk+Fjl/jxN+J6GjD9pYmnyHvgR2ub04q1pXeaAho=", 552 + "lastModified": 1754878625, 553 + "narHash": "sha256-lSPOfzl8u0MQ2MhHmyQ2aTmRx6Jm8fcI9s44iIxjNL8=", 678 554 "owner": "nix-community", 679 555 "repo": "nix-vscode-extensions", 680 - "rev": "1656ec240ab8de9f78eba6f38c5ae5f0d5c6d936", 556 + "rev": "0f2ca2371a5b84d35791ac99073bb5b2ed45456f", 681 557 "type": "github" 682 558 }, 683 559 "original": { ··· 688 564 }, 689 565 "nixpkgs": { 690 566 "locked": { 691 - "lastModified": 1745391562, 692 - "narHash": "sha256-sPwcCYuiEopaafePqlG826tBhctuJsLx/mhKKM5Fmjo=", 567 + "lastModified": 1754028485, 568 + "narHash": "sha256-IiiXB3BDTi6UqzAZcf2S797hWEPCRZOwyNThJIYhUfk=", 693 569 "owner": "NixOS", 694 570 "repo": "nixpkgs", 695 - "rev": "8a2f738d9d1f1d986b5a4cd2fd2061a7127237d7", 571 + "rev": "59e69648d345d6e8fef86158c555730fa12af9de", 696 572 "type": "github" 697 573 }, 698 574 "original": { 699 575 "owner": "NixOS", 700 - "ref": "nixos-unstable", 576 + "ref": "nixos-25.05", 701 577 "repo": "nixpkgs", 702 578 "type": "github" 703 579 } ··· 719 595 }, 720 596 "nixpkgs-unstable": { 721 597 "locked": { 722 - "lastModified": 1753939845, 723 - "narHash": "sha256-K2ViRJfdVGE8tpJejs8Qpvvejks1+A4GQej/lBk5y7I=", 598 + "lastModified": 1754725699, 599 + "narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=", 724 600 "owner": "nixos", 725 601 "repo": "nixpkgs", 726 - "rev": "94def634a20494ee057c76998843c015909d6311", 602 + "rev": "85dbfc7aaf52ecb755f87e577ddbe6dbbdbc1054", 727 603 "type": "github" 728 604 }, 729 605 "original": { ··· 751 627 }, 752 628 "nixpkgs_3": { 753 629 "locked": { 754 - "lastModified": 1748189127, 755 - "narHash": "sha256-zRDR+EbbeObu4V2X5QCd2Bk5eltfDlCr5yvhBwUT6pY=", 756 - "rev": "7c43f080a7f28b2774f3b3f43234ca11661bf334", 757 - "type": "tarball", 758 - "url": "https://releases.nixos.org/nixos/25.05/nixos-25.05.802491.7c43f080a7f2/nixexprs.tar.xz" 759 - }, 760 - "original": { 761 - "type": "tarball", 762 - "url": "https://channels.nixos.org/nixos-25.05/nixexprs.tar.xz" 763 - } 764 - }, 765 - "nixpkgs_4": { 766 - "locked": { 767 630 "lastModified": 1744868846, 768 631 "narHash": "sha256-5RJTdUHDmj12Qsv7XOhuospjAjATNiTMElplWnJE9Hs=", 769 632 "owner": "NixOS", ··· 778 641 "type": "github" 779 642 } 780 643 }, 781 - "nixpkgs_5": { 644 + "nixpkgs_4": { 782 645 "locked": { 783 - "lastModified": 1754028485, 784 - "narHash": "sha256-IiiXB3BDTi6UqzAZcf2S797hWEPCRZOwyNThJIYhUfk=", 646 + "lastModified": 1754767907, 647 + "narHash": "sha256-8OnUzRQZkqtUol9vuUuQC30hzpMreKptNyET2T9lB6g=", 785 648 "owner": "nixos", 786 649 "repo": "nixpkgs", 787 - "rev": "59e69648d345d6e8fef86158c555730fa12af9de", 650 + "rev": "c5f08b62ed75415439d48152c2a784e36909b1bc", 788 651 "type": "github" 789 652 }, 790 653 "original": { ··· 794 657 "type": "github" 795 658 } 796 659 }, 797 - "nixpkgs_6": { 660 + "nixpkgs_5": { 798 661 "locked": { 799 662 "lastModified": 1741246872, 800 663 "narHash": "sha256-Q6pMP4a9ed636qilcYX8XUguvKl/0/LGXhHcRI91p0U=", ··· 810 673 "type": "github" 811 674 } 812 675 }, 813 - "nixpkgs_7": { 676 + "nixpkgs_6": { 814 677 "locked": { 815 678 "lastModified": 1738797219, 816 679 "narHash": "sha256-KRwX9Z1XavpgeSDVM/THdFd6uH8rNm/6R+7kIbGa+2s=", ··· 826 689 "type": "github" 827 690 } 828 691 }, 829 - "nixpkgs_8": { 692 + "nixpkgs_7": { 830 693 "locked": { 831 694 "lastModified": 1730768919, 832 695 "narHash": "sha256-8AKquNnnSaJRXZxc5YmF/WfmxiHX6MMZZasRP6RRQkE=", ··· 845 708 "nixvim": { 846 709 "inputs": { 847 710 "flake-parts": "flake-parts", 848 - "nixpkgs": "nixpkgs_6", 711 + "nixpkgs": "nixpkgs_5", 849 712 "nixvim": "nixvim_2", 850 713 "pre-commit-hooks": "pre-commit-hooks" 851 714 }, ··· 866 729 "nixvim_2": { 867 730 "inputs": { 868 731 "flake-parts": "flake-parts_2", 869 - "nixpkgs": "nixpkgs_7", 732 + "nixpkgs": "nixpkgs_6", 870 733 "nuschtosSearch": "nuschtosSearch" 871 734 }, 872 735 "locked": { ··· 891 754 ] 892 755 }, 893 756 "locked": { 894 - "lastModified": 1754684884, 895 - "narHash": "sha256-GH+UMIOJj7u/bW55dOOpD8HpVpc9WfU61iweM2nM68A=", 757 + "lastModified": 1754921734, 758 + "narHash": "sha256-rpxK4x5R/24ifhSiE2S3mKmcS/i5BkQRjoEACGb9+Y8=", 896 759 "owner": "nix-community", 897 760 "repo": "NUR", 898 - "rev": "a7f9761c9dd71359cd9a6529078302a83e6deaac", 761 + "rev": "562c625b7d509e75a150849b0e9738d5e7d64aa7", 899 762 "type": "github" 900 763 }, 901 764 "original": { ··· 906 769 }, 907 770 "nuschtosSearch": { 908 771 "inputs": { 909 - "flake-utils": "flake-utils_7", 772 + "flake-utils": "flake-utils_5", 910 773 "ixx": "ixx", 911 774 "nixpkgs": [ 912 775 "nixvim", ··· 930 793 }, 931 794 "pre-commit-hooks": { 932 795 "inputs": { 933 - "flake-compat": "flake-compat_2", 796 + "flake-compat": "flake-compat", 934 797 "gitignore": "gitignore", 935 - "nixpkgs": "nixpkgs_8" 798 + "nixpkgs": "nixpkgs_7" 936 799 }, 937 800 "locked": { 938 801 "lastModified": 1741350116, ··· 958 821 "disko": "disko", 959 822 "flare": "flare", 960 823 "frc-nix": "frc-nix", 961 - "ghostty": "ghostty", 962 824 "hardware": "hardware", 963 825 "home-manager": "home-manager_2", 964 826 "hyprland-contrib": "hyprland-contrib", 965 827 "import-tree": "import-tree", 966 - "lix-module": "lix-module", 967 828 "nix-vscode-extensions": "nix-vscode-extensions", 968 - "nixpkgs": "nixpkgs_5", 829 + "nixpkgs": "nixpkgs_4", 969 830 "nixpkgs-unstable": "nixpkgs-unstable", 970 831 "nixvim": "nixvim", 971 832 "nur": "nur", ··· 979 840 "nixpkgs": [ 980 841 "nixpkgs" 981 842 ], 982 - "systems": "systems_9" 843 + "systems": "systems_7" 983 844 }, 984 845 "locked": { 985 - "lastModified": 1753591727, 986 - "narHash": "sha256-Ow+qyFckroPS4SQFHcFZ8mKh3HIQ2pQdC6DRjiYF9EE=", 846 + "lastModified": 1754801101, 847 + "narHash": "sha256-oxWjZ/SfhCvHFNePZcUu+LcE5j4xxuIt/yaoaSvMZk0=", 987 848 "owner": "Gerg-L", 988 849 "repo": "spicetify-nix", 989 - "rev": "26c488b60360e15db372483d826cec89ac532980", 850 + "rev": "fcbfc21572518c68317df992929b28df9a1d8468", 990 851 "type": "github" 991 852 }, 992 853 "original": { ··· 1100 961 "type": "github" 1101 962 } 1102 963 }, 1103 - "systems_8": { 1104 - "locked": { 1105 - "lastModified": 1681028828, 1106 - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 1107 - "owner": "nix-systems", 1108 - "repo": "default", 1109 - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 1110 - "type": "github" 1111 - }, 1112 - "original": { 1113 - "owner": "nix-systems", 1114 - "repo": "default", 1115 - "type": "github" 1116 - } 1117 - }, 1118 - "systems_9": { 1119 - "locked": { 1120 - "lastModified": 1681028828, 1121 - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 1122 - "owner": "nix-systems", 1123 - "repo": "default", 1124 - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 1125 - "type": "github" 1126 - }, 1127 - "original": { 1128 - "owner": "nix-systems", 1129 - "repo": "default", 1130 - "type": "github" 1131 - } 1132 - }, 1133 964 "terminal-wakatime": { 1134 965 "inputs": { 1135 966 "nixpkgs": [ ··· 1169 1000 "original": { 1170 1001 "owner": "oscilococcinum", 1171 1002 "repo": "zen-browser-nix", 1172 - "type": "github" 1173 - } 1174 - }, 1175 - "zig": { 1176 - "inputs": { 1177 - "flake-compat": [ 1178 - "ghostty", 1179 - "flake-compat" 1180 - ], 1181 - "flake-utils": [ 1182 - "ghostty", 1183 - "flake-utils" 1184 - ], 1185 - "nixpkgs": [ 1186 - "ghostty", 1187 - "nixpkgs" 1188 - ] 1189 - }, 1190 - "locked": { 1191 - "lastModified": 1748261582, 1192 - "narHash": "sha256-3i0IL3s18hdDlbsf0/E+5kyPRkZwGPbSFngq5eToiAA=", 1193 - "owner": "mitchellh", 1194 - "repo": "zig-overlay", 1195 - "rev": "aafb1b093fb838f7a02613b719e85ec912914221", 1196 - "type": "github" 1197 - }, 1198 - "original": { 1199 - "owner": "mitchellh", 1200 - "repo": "zig-overlay", 1201 - "type": "github" 1202 - } 1203 - }, 1204 - "zon2nix": { 1205 - "inputs": { 1206 - "flake-utils": [ 1207 - "ghostty", 1208 - "flake-utils" 1209 - ], 1210 - "nixpkgs": [ 1211 - "ghostty", 1212 - "nixpkgs" 1213 - ] 1214 - }, 1215 - "locked": { 1216 - "lastModified": 1742104771, 1217 - "narHash": "sha256-LhidlyEA9MP8jGe1rEnyjGFCzLLgCdDpYeWggibayr0=", 1218 - "owner": "jcollie", 1219 - "repo": "zon2nix", 1220 - "rev": "56c159be489cc6c0e73c3930bd908ddc6fe89613", 1221 - "type": "github" 1222 - }, 1223 - "original": { 1224 - "owner": "jcollie", 1225 - "repo": "zon2nix", 1226 - "rev": "56c159be489cc6c0e73c3930bd908ddc6fe89613", 1227 1003 "type": "github" 1228 1004 } 1229 1005 }
+7 -20
flake.nix
··· 6 6 nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05"; 7 7 nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable"; 8 8 9 - # Lix 10 - lix-module = { 11 - url = "https://git.lix.systems/lix-project/nixos-module/archive/2.93.3-1.tar.gz"; 12 - inputs.nixpkgs.follows = "nixpkgs"; 13 - }; 14 - 15 9 # NixOS hardware configuration 16 10 hardware.url = "github:NixOS/nixos-hardware/master"; 17 11 ··· 41 35 42 36 nix-vscode-extensions.url = "github:nix-community/nix-vscode-extensions"; 43 37 44 - ghostty = { 45 - url = "github:ghostty-org/ghostty"; 46 - }; 47 - 48 38 frc-nix = { 49 39 url = "github:frc4451/frc-nix"; 50 40 inputs.nixpkgs.follows = "nixpkgs"; ··· 95 85 self, 96 86 nixpkgs, 97 87 nixpkgs-unstable, 98 - lix-module, 99 88 agenix, 100 89 home-manager, 101 90 nur, ··· 107 96 nixpkgs.overlays = [ 108 97 (final: prev: { 109 98 unstable = import nixpkgs-unstable { 99 + system = final.system; 110 100 config.allowUnfree = true; 111 101 }; 112 102 ··· 125 115 in 126 116 { 127 117 # NixOS configuration entrypoint 128 - # Available through 'nixos-rebuild --flake .#your-hostname' 118 + # Available through 'nixos-rebuild --flake .#hostname' 129 119 nixosConfigurations = { 130 120 moonlark = nixpkgs.lib.nixosSystem { 131 121 specialArgs = { inherit inputs outputs; }; 132 - 133 - # > Our main nixos configuration file < 134 122 modules = [ 135 - lix-module.nixosModules.default 136 123 inputs.disko.nixosModules.disko 137 124 { disko.devices.disk.disk1.device = "/dev/vda"; } 138 125 agenix.nixosModules.default 139 126 unstable-overlays 140 127 { nixpkgs.hostPlatform = "x86_64-linux"; } 141 - ./nixos/machines/moonlark/configuration.nix 128 + ./machines/moonlark 142 129 nur.modules.nixos.default 143 130 ]; 144 131 }; 145 132 }; 146 133 147 134 # Standalone home-manager configurations 148 - # Available through 'home-manager --flake .#username@hostname' 135 + # Available through 'home-manager --flake .#hostname' 149 136 homeConfigurations = { 150 137 "tacyon" = home-manager.lib.homeManagerConfiguration { 151 138 extraSpecialArgs = { ··· 153 140 nixpkgs-unstable = nixpkgs-unstable; 154 141 }; 155 142 modules = [ 156 - ./home-manager/machines/tacyon 143 + ./machines/tacyon 157 144 unstable-overlays 158 145 { nixpgs.hostPlatform = "aarch64-linux"; } 159 146 ]; ··· 165 152 nixpkgs-unstable = nixpkgs-unstable; 166 153 }; 167 154 modules = [ 168 - ./home-manager/machines/nest 155 + ./machines/nest 169 156 unstable-overlays 170 157 { nixpkgs.hostPlatform = "x86_64-linux"; } 171 158 ]; ··· 177 164 nixpkgs-unstable = nixpkgs-unstable; 178 165 }; 179 166 modules = [ 180 - ./home-manager/machines/ember 167 + ./machines/ember 181 168 unstable-overlays 182 169 { nixpkgs.hostPlatform = "x86_64-linux"; } 183 170 ];
home-manager/dots/README.md dots/README.md
home-manager/dots/anthropic.sh dots/anthropic.sh
home-manager/dots/charge-alert.sh dots/charge-alert.sh
home-manager/dots/copilot.sh dots/copilot.sh
home-manager/dots/face.jpeg dots/face.jpeg
+1 -1
home-manager/dots/hyprland.conf dots/hyprland.conf
··· 12 12 # Execute your favorite apps at launch 13 13 exec-once = hyprpaper 14 14 exec-once = hyprsunset 15 - exec-once = sleep 1; ~/.config/hypr/randomize.sh 15 + exec-once = sleep 1; chngwall 16 16 exec-once = ~/.config/hypr/charge-alert.sh 17 17 exec-once = lxsession 18 18 exec-once = wluma
home-manager/dots/hyprlock.conf dots/hyprlock.conf
home-manager/dots/hyprpaper.conf dots/hyprpaper.conf
home-manager/dots/hyprrec.sh dots/hyprrec.sh
home-manager/dots/lxde-pi-rc.xml dots/lxde-pi-rc.xml
home-manager/dots/macchiato.conf dots/macchiato.conf
home-manager/dots/prettify-ss.sh dots/prettify-ss.sh
-10
home-manager/dots/randomize-wallpaper.sh
··· 1 - #!/usr/bin/env bash 2 - 3 - WALLPAPER_DIR="$HOME/.config/wallpapers" 4 - CURRENT_WALL=$(hyprctl hyprpaper listloaded) 5 - 6 - # Get a random wallpaper that is not the current one 7 - WALLPAPER=$(find -L "$WALLPAPER_DIR" -type f ! -name "$(basename "$CURRENT_WALL")" | shuf -n 1) 8 - 9 - # Apply the selected wallpaper 10 - hyprctl hyprpaper reload ,"$WALLPAPER"
home-manager/dots/sunpaperconfig dots/sunpaperconfig
home-manager/dots/tofi-emoji.sh dots/tofi-emoji.sh
home-manager/dots/user.js dots/user.js
home-manager/dots/wallpapers/acon-forest.jpg dots/wallpapers/acon-forest.jpg
home-manager/dots/wallpapers/acon-fsh.jpg dots/wallpapers/acon-fsh.jpg
home-manager/dots/wallpapers/acon-gradient-clouds.jpg dots/wallpapers/acon-gradient-clouds.jpg
home-manager/dots/wallpapers/acon-pier.jpg dots/wallpapers/acon-pier.jpg
home-manager/dots/wallpapers/acon-rocks.jpg dots/wallpapers/acon-rocks.jpg
home-manager/dots/wallpapers/acon-star.jpg dots/wallpapers/acon-star.jpg
home-manager/dots/wallpapers/annie-athena.jpg dots/wallpapers/annie-athena.jpg
home-manager/dots/wallpapers/candy-stained-glass.jpg dots/wallpapers/candy-stained-glass.jpg
home-manager/dots/wallpapers/highway.jpg dots/wallpapers/highway.jpg
home-manager/dots/wallpapers/kailing-canyon.jpg dots/wallpapers/kailing-canyon.jpg
home-manager/dots/wallpapers/kailing-comet.jpg dots/wallpapers/kailing-comet.jpg
home-manager/dots/wallpapers/kailing-shooting-star.jpg dots/wallpapers/kailing-shooting-star.jpg
home-manager/dots/wallpapers/kailing-swirls.jpg dots/wallpapers/kailing-swirls.jpg
home-manager/dots/wallpapers/tongyu-catcat.jpg dots/wallpapers/tongyu-catcat.jpg
home-manager/dots/wallpapers/tongyu-waves.jpg dots/wallpapers/tongyu-waves.jpg
home-manager/dots/wallpapers/yessa-cat.jpg dots/wallpapers/yessa-cat.jpg
+2 -2
home-manager/machines/ember/default.nix machines/ember/default.nix
··· 5 5 }: 6 6 { 7 7 imports = [ 8 - (inputs.import-tree ../../modules) 8 + (inputs.import-tree ../../modules/home) 9 9 ]; 10 10 11 11 nixpkgs.enable = true; ··· 26 26 ]; 27 27 }; 28 28 29 - dots = { 29 + atelier = { 30 30 shell.enable = true; 31 31 }; 32 32
+2 -2
home-manager/machines/moonlark/default.nix machines/moonlark/home/default.nix
··· 1 1 { inputs, ... }: 2 2 { 3 3 imports = [ 4 - (inputs.import-tree ../../modules) 4 + (inputs.import-tree ../../../modules/home) 5 5 ]; 6 6 7 7 nixpkgs.enable = true; ··· 11 11 homeDirectory = "/home/kierank"; 12 12 }; 13 13 14 - dots = { 14 + atelier = { 15 15 shell = { 16 16 enable = true; 17 17 };
+2 -2
home-manager/machines/nest/default.nix machines/nest/default.nix
··· 6 6 }: 7 7 { 8 8 imports = [ 9 - (inputs.import-tree ../../modules) 9 + (inputs.import-tree ../../modules/home) 10 10 ]; 11 11 12 12 nixpkgs.enable = true; ··· 21 21 ]; 22 22 }; 23 23 24 - dots = { 24 + atelier = { 25 25 shell.enable = true; 26 26 }; 27 27
+2 -2
home-manager/machines/tacyon/default.nix machines/tacyon/default.nix
··· 6 6 }: 7 7 { 8 8 imports = [ 9 - (inputs.import-tree ../../modules) 9 + (inputs.import-tree ../../modules/home) 10 10 ]; 11 11 12 12 nixpkgs.enable = true; ··· 44 44 ]; 45 45 }; 46 46 47 - dots = { 47 + atelier = { 48 48 shell.enable = true; 49 49 theming.enable = true; 50 50 };
+2 -2
home-manager/modules/aesthetics/theming.nix modules/home/aesthetics/theming.nix
··· 9 9 inputs.catppuccin.homeModules.catppuccin 10 10 ]; 11 11 12 - options.dots.theming.enable = lib.mkEnableOption "Enable Catppuccin and GTK/QT themeing"; 13 - config = lib.mkIf config.dots.theming.enable { 12 + options.atelier.theming.enable = lib.mkEnableOption "Enable Catppuccin and GTK/QT themeing"; 13 + config = lib.mkIf config.atelier.theming.enable { 14 14 catppuccin = { 15 15 enable = true; 16 16 accent = "green";
-26
home-manager/modules/aesthetics/wallpapers.nix
··· 1 - { lib, config, ... }: 2 - { 3 - options.dots.wallpapers.enable = lib.mkEnableOption "symlink a bunch of wallpapers"; 4 - config = lib.mkIf config.dots.wallpapers.enable { 5 - xdg.configFile."wallpapers/randomize.sh".source = ../../dots/randomize-wallpaper.sh; 6 - xdg.configFile."wallpapers/acon-pier.jpg".source = ../../dots/wallpapers/acon-pier.jpg; 7 - xdg.configFile."wallpapers/acon-forest.jpg".source = ../../dots/wallpapers/acon-forest.jpg; 8 - xdg.configFile."wallpapers/acon-gradient-clouds.jpg".source = 9 - ../../dots/wallpapers/acon-gradient-clouds.jpg; 10 - xdg.configFile."wallpapers/acon-fsh.jpg".source = ../../dots/wallpapers/acon-fsh.jpg; 11 - xdg.configFile."wallpapers/tongyu-waves.jpg".source = ../../dots/wallpapers/tongyu-waves.jpg; 12 - xdg.configFile."wallpapers/acon-rocks.jpg".source = ../../dots/wallpapers/acon-rocks.jpg; 13 - xdg.configFile."wallpapers/kailing-comet.jpg".source = ../../dots/wallpapers/kailing-comet.jpg; 14 - xdg.configFile."wallpapers/acon-star.jpg".source = ../../dots/wallpapers/acon-star.jpg; 15 - xdg.configFile."wallpapers/kailing-canyon.jpg".source = ../../dots/wallpapers/kailing-canyon.jpg; 16 - xdg.configFile."wallpapers/kailing-swirls.jpg".source = ../../dots/wallpapers/kailing-swirls.jpg; 17 - xdg.configFile."wallpapers/highway.jpg".source = ../../dots/wallpapers/highway.jpg; 18 - xdg.configFile."wallpapers/kailing-shooting-star.jpg".source = 19 - ../../dots/wallpapers/kailing-shooting-star.jpg; 20 - xdg.configFile."wallpapers/yessa-cat.jpg".source = ../../dots/wallpapers/yessa-cat.jpg; 21 - xdg.configFile."wallpapers/annie-athena.jpg".source = ../../dots/wallpapers/annie-athena.jpg; 22 - xdg.configFile."wallpapers/candy-stained-glass.jpg".source = 23 - ../../dots/wallpapers/candy-stained-glass.jpg; 24 - xdg.configFile."wallpapers/tongyu-catcat.jpg".source = ../../dots/wallpapers/tongyu-catcat.jpg; 25 - }; 26 - }
home-manager/modules/apps/_crush-options.nix modules/home/apps/crush/_crush-options.nix
+2 -2
home-manager/modules/apps/alacritty.nix modules/home/apps/alacritty.nix
··· 1 1 { lib, config, ... }: 2 2 { 3 - options.dots.terminal.alacritty.enable = lib.mkEnableOption "Enable Alacritty terminal config"; 4 - config = lib.mkIf config.dots.terminal.alacritty.enable { 3 + options.atelier.terminal.alacritty.enable = lib.mkEnableOption "Enable Alacritty terminal config"; 4 + config = lib.mkIf config.atelier.terminal.alacritty.enable { 5 5 catppuccin.alacritty.flavor = "mocha"; 6 6 programs.alacritty = { 7 7 enable = true;
-4
home-manager/modules/apps/crush-module.nix modules/home/apps/crush/crush-module.nix
··· 20 20 home.file.".config/crush/crush.json" = lib.mkIf (config.programs.crush.settings != { }) { 21 21 text = builtins.toJSON config.programs.crush.settings; 22 22 }; 23 - 24 - # Optionally, add config file sources if needed 25 - xdg.configFile."crush/copilot.sh".source = ../../dots/copilot.sh; 26 - xdg.configFile."crush/anthropic.sh".source = ../../dots/anthropic.sh; 27 23 }; 28 24 }
+4 -4
home-manager/modules/apps/crush.nix modules/home/apps/crush.nix
··· 4 4 ... 5 5 }: 6 6 { 7 - options.dots.apps.crush.enable = lib.mkEnableOption "Enable Crush config"; 8 - config = lib.mkIf config.dots.apps.crush.enable { 7 + options.atelier.apps.crush.enable = lib.mkEnableOption "Enable Crush config"; 8 + config = lib.mkIf config.atelier.apps.crush.enable { 9 9 programs.crush = { 10 10 enable = true; 11 11 settings = { ··· 182 182 }; 183 183 }; 184 184 185 - xdg.configFile."crush/copilot.sh".source = ../../dots/copilot.sh; 186 - xdg.configFile."crush/anthropic.sh".source = ../../dots/anthropic.sh; 185 + xdg.configFile."crush/copilot.sh".source = ../../../dots/copilot.sh; 186 + xdg.configFile."crush/anthropic.sh".source = ../../../dots/anthropic.sh; 187 187 }; 188 188 }
+2 -2
home-manager/modules/apps/ghostty.nix modules/home/apps/ghostty.nix
··· 1 1 { lib, config, ... }: 2 2 { 3 - options.dots.terminal.ghostty.enable = lib.mkEnableOption "Enable Ghostty terminal config"; 4 - config = lib.mkIf config.dots.terminal.ghostty.enable { 3 + options.atelier.terminal.ghostty.enable = lib.mkEnableOption "Enable Ghostty terminal config"; 4 + config = lib.mkIf config.atelier.terminal.ghostty.enable { 5 5 home.file.".config/ghostty/config".text = '' 6 6 foreground = "#a7b1d3" 7 7 mouse-hide-while-typing = true
+2 -2
home-manager/modules/apps/git.nix modules/home/apps/git.nix
··· 1 1 { lib, config, ... }: 2 2 { 3 - options.dots.shell.git.enable = lib.mkEnableOption { 3 + options.atelier.shell.git.enable = lib.mkEnableOption { 4 4 description = "Enable global Git configuration"; 5 5 }; 6 - config = lib.mkIf config.dots.shell.git.enable { 6 + config = lib.mkIf config.atelier.shell.git.enable { 7 7 programs.git = { 8 8 enable = true; 9 9 userName = "Kieran Klukas";
+2 -2
home-manager/modules/apps/irssi.nix modules/home/apps/irssi.nix
··· 1 1 { lib, config, ... }: 2 2 { 3 - options.dots.apps.irssi.enable = lib.mkEnableOption "Enable irssi config"; 4 - config = lib.mkIf config.dots.apps.irssi.enable { 3 + options.atelier.apps.irssi.enable = lib.mkEnableOption "Enable irssi config"; 4 + config = lib.mkIf config.atelier.apps.irssi.enable { 5 5 programs.irssi = { 6 6 enable = true; 7 7 extraConfig = ''
+2 -2
home-manager/modules/apps/qutebrowser.nix modules/home/apps/qutebrowser.nix
··· 1 1 { lib, config, ... }: 2 2 { 3 - options.dots.apps.qutebrowser.enable = lib.mkEnableOption "Enable Qutebrowser config"; 4 - config = lib.mkIf config.dots.apps.qutebrowser.enable { 3 + options.atelier.apps.qutebrowser.enable = lib.mkEnableOption "Enable Qutebrowser config"; 4 + config = lib.mkIf config.atelier.apps.qutebrowser.enable { 5 5 programs.qutebrowser = { 6 6 enable = true; 7 7 settings = {
+2 -2
home-manager/modules/apps/spotify.nix modules/home/apps/spotify.nix
··· 10 10 inputs.spicetify-nix.homeManagerModules.default 11 11 ]; 12 12 13 - options.dots.apps.spotify.enable = lib.mkEnableOption "Enable Spotify config (spicetify)"; 14 - config = lib.mkIf config.dots.apps.spotify.enable { 13 + options.atelier.apps.spotify.enable = lib.mkEnableOption "Enable Spotify config (spicetify)"; 14 + config = lib.mkIf config.atelier.apps.spotify.enable { 15 15 programs.spicetify = 16 16 let 17 17 spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
+2 -2
home-manager/modules/apps/tofi.nix modules/home/apps/tofi.nix
··· 4 4 ... 5 5 }: 6 6 { 7 - options.dots.apps.tofi.enable = lib.mkEnableOption "Enable tofi config"; 7 + options.atelier.apps.tofi.enable = lib.mkEnableOption "Enable tofi config"; 8 8 9 - config = lib.mkIf config.dots.apps.tofi.enable { 9 + config = lib.mkIf config.atelier.apps.tofi.enable { 10 10 catppuccin.tofi.enable = false; 11 11 12 12 # tofi config
+2 -2
home-manager/modules/apps/vscode.nix modules/home/apps/vscode.nix
··· 6 6 ... 7 7 }: 8 8 { 9 - options.dots.apps.vscode.enable = lib.mkEnableOption "Enable VSCode config"; 10 - config = lib.mkIf config.dots.apps.vscode.enable { 9 + options.atelier.apps.vscode.enable = lib.mkEnableOption "Enable VSCode config"; 10 + config = lib.mkIf config.atelier.apps.vscode.enable { 11 11 nixpkgs.overlays = [ 12 12 inputs.nix-vscode-extensions.overlays.default 13 13 inputs.catppuccin-vsc.overlays.default
home-manager/modules/system/nixpkgs.nix modules/home/system/nixpkgs.nix
+3 -4
home-manager/modules/system/shell.nix modules/home/system/shell.nix
··· 6 6 ... 7 7 }: 8 8 { 9 - options.dots.shell.enable = lib.mkEnableOption "Custom shell config"; 10 - config = lib.mkIf config.dots.shell.enable { 9 + options.atelier.shell.enable = lib.mkEnableOption "Custom shell config"; 10 + config = lib.mkIf config.atelier.shell.enable { 11 11 programs.oh-my-posh = { 12 12 enable = true; 13 13 enableZshIntegration = true; ··· 135 135 rr = "rm -Rf"; 136 136 ghrpc = "gh repo create -c"; 137 137 goops = "git commit --amend --no-edit && git push --force-with-lease"; 138 - chngwall = "~/.config/hypr/randomize.sh"; 139 138 vi = "nvim"; 140 139 vim = "nvim"; 141 140 }; ··· 483 482 neofetch 484 483 ]; 485 484 486 - dots.shell.git.enable = lib.mkDefault true; 485 + atelier.shell.git.enable = lib.mkDefault true; 487 486 }; 488 487 }
-57
home-manager/modules/wm/hyprland/default.nix
··· 1 - { 2 - lib, 3 - pkgs, 4 - config, 5 - ... 6 - }: 7 - { 8 - options.dots.wm.hyprland.enable = lib.mkEnableOption "Enable Hyprland config"; 9 - config = lib.mkIf config.dots.wm.hyprland.enable { 10 - dots.apps.tofi.enable = true; 11 - programs.hyprlock.enable = true; 12 - 13 - dots.wallpapers.enable = true; 14 - 15 - xdg.configFile."hypr/macchiato.conf".source = ../../../dots/macchiato.conf; 16 - xdg.configFile."hypr/hyprland.conf".source = ../../../dots/hyprland.conf; 17 - xdg.configFile."hypr/prettify-ss.sh".source = ../../../dots/prettify-ss.sh; 18 - xdg.configFile."hypr/tofi-emoji.sh".source = ../../../dots/tofi-emoji.sh; 19 - xdg.configFile."hypr/hyprlock.conf".source = ../../../dots/hyprlock.conf; 20 - xdg.configFile."face.jpeg".source = ../../../dots/face.jpeg; 21 - xdg.configFile."hypr/hyprpaper.conf".source = ../../../dots/hyprpaper.conf; 22 - xdg.configFile."hypr/hyprrec.sh".source = ../../../dots/hyprrec.sh; 23 - xdg.configFile."hypr/charge-alert.sh".source = ../../../dots/charge-alert.sh; 24 - 25 - xdg.portal = { 26 - enable = true; 27 - extraPortals = with pkgs; [ xdg-desktop-portal-gtk ]; 28 - configPackages = with pkgs; [ xdg-desktop-portal-gtk ]; 29 - }; 30 - 31 - services.mako = { 32 - enable = true; 33 - settings = { 34 - default-timeout = 4000; 35 - margin = "58,6"; 36 - font = "Fira Sans 12"; 37 - border-radius = 5; 38 - }; 39 - }; 40 - 41 - services.udiskie = { 42 - enable = true; 43 - settings = { 44 - program_options = { 45 - udisks_version = 2; 46 - tray = false; 47 - }; 48 - notifications = { 49 - device_unmounted = false; 50 - device_added = -1; 51 - device_removed = -1; 52 - device_mounted = -1; 53 - }; 54 - }; 55 - }; 56 - }; 57 - }
+1 -1
home-manager/modules/wm/hyprland/hypridle.nix modules/home/wm/hyprland/hypridle.nix
··· 4 4 ... 5 5 }: 6 6 { 7 - config = lib.mkIf config.dots.wm.hyprland.enable { 7 + config = lib.mkIf config.atelier.wm.hyprland.enable { 8 8 services.hypridle = { 9 9 enable = true; 10 10 settings = {
+1 -1
home-manager/modules/wm/hyprland/waybar.nix modules/home/wm/hyprland/waybar.nix
··· 52 52 }; 53 53 in 54 54 { 55 - config = lib.mkIf config.dots.wm.hyprland.enable { 55 + config = lib.mkIf config.atelier.wm.hyprland.enable { 56 56 # Let it try to start a few more times 57 57 systemd.user.services.waybar = { 58 58 Unit.StartLimitBurst = 30;
+45
modules/home/aesthetics/wallpapers.nix
··· 1 + { 2 + lib, 3 + config, 4 + pkgs, 5 + ... 6 + }: 7 + { 8 + options.atelier.wallpapers.enable = lib.mkEnableOption "symlink a bunch of wallpapers"; 9 + config = lib.mkIf config.atelier.wallpapers.enable { 10 + home.packages = with pkgs; [ 11 + (writeShellScriptBin "chngwall" '' 12 + #!/usr/bin/env bash 13 + 14 + WALLPAPER_DIR="$HOME/.config/wallpapers" 15 + CURRENT_WALL=$(hyprctl hyprpaper listloaded) 16 + 17 + # Get a random wallpaper that is not the current one 18 + WALLPAPER=$(find -L "$WALLPAPER_DIR" -type f ! -name "$(basename "$CURRENT_WALL")" | shuf -n 1) 19 + 20 + # Apply the selected wallpaper 21 + hyprctl hyprpaper reload ,"$WALLPAPER" 22 + '') 23 + ]; 24 + 25 + xdg.configFile."wallpapers/acon-pier.jpg".source = ../../../dots/wallpapers/acon-pier.jpg; 26 + xdg.configFile."wallpapers/acon-forest.jpg".source = ../../../dots/wallpapers/acon-forest.jpg; 27 + xdg.configFile."wallpapers/acon-gradient-clouds.jpg".source = 28 + ../../../dots/wallpapers/acon-gradient-clouds.jpg; 29 + xdg.configFile."wallpapers/acon-fsh.jpg".source = ../../../dots/wallpapers/acon-fsh.jpg; 30 + xdg.configFile."wallpapers/tongyu-waves.jpg".source = ../../../dots/wallpapers/tongyu-waves.jpg; 31 + xdg.configFile."wallpapers/acon-rocks.jpg".source = ../../../dots/wallpapers/acon-rocks.jpg; 32 + xdg.configFile."wallpapers/kailing-comet.jpg".source = ../../../dots/wallpapers/kailing-comet.jpg; 33 + xdg.configFile."wallpapers/acon-star.jpg".source = ../../../dots/wallpapers/acon-star.jpg; 34 + xdg.configFile."wallpapers/kailing-canyon.jpg".source = ../../../dots/wallpapers/kailing-canyon.jpg; 35 + xdg.configFile."wallpapers/kailing-swirls.jpg".source = ../../../dots/wallpapers/kailing-swirls.jpg; 36 + xdg.configFile."wallpapers/highway.jpg".source = ../../../dots/wallpapers/highway.jpg; 37 + xdg.configFile."wallpapers/kailing-shooting-star.jpg".source = 38 + ../../../dots/wallpapers/kailing-shooting-star.jpg; 39 + xdg.configFile."wallpapers/yessa-cat.jpg".source = ../../../dots/wallpapers/yessa-cat.jpg; 40 + xdg.configFile."wallpapers/annie-athena.jpg".source = ../../../dots/wallpapers/annie-athena.jpg; 41 + xdg.configFile."wallpapers/candy-stained-glass.jpg".source = 42 + ../../../dots/wallpapers/candy-stained-glass.jpg; 43 + xdg.configFile."wallpapers/tongyu-catcat.jpg".source = ../../../dots/wallpapers/tongyu-catcat.jpg; 44 + }; 45 + }
+57
modules/home/wm/hyprland/default.nix
··· 1 + { 2 + lib, 3 + pkgs, 4 + config, 5 + ... 6 + }: 7 + { 8 + options.atelier.wm.hyprland.enable = lib.mkEnableOption "Enable Hyprland config"; 9 + config = lib.mkIf config.atelier.wm.hyprland.enable { 10 + atelier.apps.tofi.enable = true; 11 + programs.hyprlock.enable = true; 12 + 13 + atelier.wallpapers.enable = true; 14 + 15 + xdg.configFile."hypr/macchiato.conf".source = ../../../../dots/macchiato.conf; 16 + xdg.configFile."hypr/hyprland.conf".source = ../../../../dots/hyprland.conf; 17 + xdg.configFile."hypr/prettify-ss.sh".source = ../../../../dots/prettify-ss.sh; 18 + xdg.configFile."hypr/tofi-emoji.sh".source = ../../../../dots/tofi-emoji.sh; 19 + xdg.configFile."hypr/hyprlock.conf".source = ../../../../dots/hyprlock.conf; 20 + xdg.configFile."face.jpeg".source = ../../../../dots/face.jpeg; 21 + xdg.configFile."hypr/hyprpaper.conf".source = ../../../../dots/hyprpaper.conf; 22 + xdg.configFile."hypr/hyprrec.sh".source = ../../../../dots/hyprrec.sh; 23 + xdg.configFile."hypr/charge-alert.sh".source = ../../../../dots/charge-alert.sh; 24 + 25 + xdg.portal = { 26 + enable = true; 27 + extraPortals = with pkgs; [ xdg-desktop-portal-gtk ]; 28 + configPackages = with pkgs; [ xdg-desktop-portal-gtk ]; 29 + }; 30 + 31 + services.mako = { 32 + enable = true; 33 + settings = { 34 + default-timeout = 4000; 35 + margin = "58,6"; 36 + font = "Fira Sans 12"; 37 + border-radius = 5; 38 + }; 39 + }; 40 + 41 + services.udiskie = { 42 + enable = true; 43 + settings = { 44 + program_options = { 45 + udisks_version = 2; 46 + tray = false; 47 + }; 48 + notifications = { 49 + device_unmounted = false; 50 + device_added = -1; 51 + device_removed = -1; 52 + device_mounted = -1; 53 + }; 54 + }; 55 + }; 56 + }; 57 + }
+169 -206
nixos/machines/moonlark/configuration.nix machines/moonlark/default.nix
··· 15 15 ./home-manager.nix 16 16 ./disk-config.nix 17 17 18 - (inputs.import-tree ../../modules) 18 + (inputs.import-tree ../../modules/nixos) 19 19 ]; 20 20 21 21 nixpkgs = { ··· 53 53 time.timeZone = "America/New_York"; 54 54 55 55 # grouped for readability 56 - environment.systemPackages = map lib.lowPrio ( 57 - let 58 - core = [ 59 - pkgs.coreutils 60 - pkgs.calc 61 - pkgs.screen 62 - pkgs.xdg-user-dirs 63 - pkgs.libnotify 64 - pkgs.notify-desktop 65 - pkgs.bc 66 - pkgs.jq 67 - pkgs.psmisc 68 - ]; 69 - terminals = [ 70 - pkgs.alacritty 71 - inputs.ghostty.packages.x86_64-linux.default 72 - ]; 73 - cli_utils = [ 74 - pkgs.bat 75 - pkgs.fd 76 - pkgs.eza 77 - pkgs.xh 78 - pkgs.dust 79 - pkgs.ripgrep 80 - pkgs.ripgrep-all 81 - pkgs.glow 82 - pkgs.gitui 83 - pkgs.lazygit 84 - pkgs.clipse 85 - pkgs.direnv 86 - pkgs.nix-output-monitor 87 - pkgs.nixpkgs-review 88 - pkgs.nix-prefetch 89 - pkgs.arduino-cli 90 - pkgs.zsh 91 - pkgs.starship 92 - pkgs.gum 93 - pkgs.unstable.wakatime-cli 94 - inputs.terminal-wakatime.packages.x86_64-linux.default 95 - ]; 96 - networking = [ 97 - pkgs.curl 98 - pkgs.wget 99 - pkgs.dogdns 100 - pkgs.inetutils 101 - pkgs.mosh 102 - pkgs.ngrok 103 - pkgs.networkmanagerapplet 104 - pkgs.networkmanager-iodine 105 - pkgs.iodine 106 - ]; 107 - nix_tools = [ 108 - inputs.nixvim.packages.x86_64-linux.default 109 - pkgs.nixd 110 - pkgs.nil 111 - pkgs.nixfmt-rfc-style 112 - inputs.agenix.packages.x86_64-linux.default 113 - ]; 114 - security = [ 115 - pkgs.openssl 116 - pkgs.gpgme 117 - pkgs.gnupg 118 - pkgs.unstable.mitmproxy 119 - pkgs.caido 120 - ]; 121 - editors = [ 122 - inputs.zed.packages.x86_64-linux.default 123 - pkgs.unstable.zed-editor 124 - pkgs.arduino-ide 125 - ]; 126 - browsers = [ 127 - pkgs.firefox 128 - (pkgs.chromium.override { enableWideVine = true; }) 129 - ]; 130 - wayland = [ 131 - pkgs.swww 132 - pkgs.wluma 133 - pkgs.brightnessctl 134 - pkgs.hyprpaper 135 - pkgs.hyprsunset 136 - pkgs.wl-clipboard 137 - pkgs.grim 138 - pkgs.slurp 139 - pkgs.wtype 140 - pkgs.mako 141 - pkgs.unstable.hyprpicker 142 - pkgs.wl-screenrec 143 - inputs.hyprland-contrib.packages.${pkgs.system}.grimblast 144 - pkgs.playerctl 145 - pkgs.libnotify 146 - pkgs.notify-desktop 147 - pkgs.lxde.lxsession 148 - ]; 149 - gnome = [ 150 - pkgs.gnome-online-accounts 151 - pkgs.gnome-online-accounts-gtk 152 - pkgs.gnome-disk-utility 153 - pkgs.baobab 154 - pkgs.simple-scan 155 - pkgs.file-roller 156 - pkgs.font-manager 157 - pkgs.nautilus 158 - pkgs.loupe 159 - pkgs.totem 160 - pkgs.overskride 161 - ]; 162 - dev_langs = [ 163 - pkgs.nodejs_22 164 - pkgs.unstable.bun 165 - pkgs.python3 166 - pkgs.go 167 - pkgs.gopls 168 - pkgs.gotools 169 - pkgs.go-tools 170 - pkgs.gcc 171 - pkgs.rustc 172 - pkgs.cargo 173 - pkgs.jdk23 174 - pkgs.ruby 175 - pkgs.cmake 176 - pkgs.unstable.biome 177 - pkgs.unstable.apktool 178 - pkgs.nodePackages_latest.prisma 179 - pkgs.unstable.zola 180 - ]; 181 - media = [ 182 - pkgs.ffmpeg 183 - pkgs.video-trimmer 184 - pkgs.pitivi 185 - pkgs.audacity 186 - pkgs.unstable.amberol 187 - pkgs.zoom-us 188 - ]; 189 - graphics = [ 190 - pkgs.imagemagick 191 - pkgs.inkscape 192 - pkgs.blender 193 - pkgs.exiftool 194 - pkgs.unstable.aseprite 195 - pkgs.godot_4 196 - pkgs.unstable.kikit 197 - pkgs.openboardview 198 - pkgs.bambu-studio 199 - pkgs.unstable.orca-slicer 200 - pkgs.qflipper 201 - ]; 202 - office = [ 203 - pkgs.slack 204 - pkgs.libreoffice 205 - pkgs.unstable.zotero 206 - ]; 207 - gaming = [ 208 - pkgs.prismlauncher 209 - pkgs.vesktop 210 - pkgs.cava 211 - pkgs.gobang 212 - pkgs.love 213 - ]; 214 - frc = [ 215 - inputs.frc-nix.packages.${pkgs.system}.elastic-dashboard 216 - inputs.frc-nix.packages.${pkgs.system}.pathplanner 217 - inputs.frc-nix.packages.${pkgs.system}.roborioteamnumbersetter 218 - inputs.frc-nix.packages.${pkgs.system}.sysid 219 - inputs.frc-nix.packages.${pkgs.system}.wpilib-utility 220 - inputs.frc-nix.packages.${pkgs.system}.advantagescope 221 - ]; 222 - misc = [ 223 - pkgs.invoice 224 - pkgs.pop 225 - pkgs.vhs 226 - pkgs.torrential 227 - inputs.flare.packages.x86_64-linux.default 228 - pkgs.unstable.ollama 229 - pkgs.unstable.claude-code 230 - pkgs.udiskie 231 - pkgs.neofetch 232 - pkgs.unstable.kicad-testing 233 - pkgs.zenity 234 - pkgs.atproto-goat 235 - ]; 236 - in 237 - core 238 - ++ terminals 239 - ++ cli_utils 240 - ++ networking 241 - ++ nix_tools 242 - ++ security 243 - ++ editors 244 - ++ browsers 245 - ++ wayland 246 - ++ gnome 247 - ++ dev_langs 248 - ++ media 249 - ++ graphics 250 - ++ office 251 - ++ gaming 252 - ++ frc 253 - ++ misc 254 - ); 56 + environment.systemPackages = [ 57 + # core 58 + pkgs.coreutils 59 + pkgs.calc 60 + pkgs.screen 61 + pkgs.xdg-user-dirs 62 + pkgs.libnotify 63 + pkgs.notify-desktop 64 + pkgs.bc 65 + pkgs.jq 66 + pkgs.psmisc 67 + # terminals 68 + pkgs.alacritty 69 + pkgs.unstable.ghostty 70 + # cli_utils 71 + pkgs.bat 72 + pkgs.fd 73 + pkgs.eza 74 + pkgs.xh 75 + pkgs.dust 76 + pkgs.ripgrep 77 + pkgs.ripgrep-all 78 + pkgs.glow 79 + pkgs.gitui 80 + pkgs.lazygit 81 + pkgs.clipse 82 + pkgs.direnv 83 + pkgs.nix-output-monitor 84 + pkgs.nixpkgs-review 85 + pkgs.nix-prefetch 86 + pkgs.arduino-cli 87 + pkgs.zsh 88 + pkgs.starship 89 + pkgs.gum 90 + pkgs.unstable.wakatime-cli 91 + inputs.terminal-wakatime.packages.x86_64-linux.default 92 + # networking 93 + pkgs.curl 94 + pkgs.wget 95 + pkgs.dogdns 96 + pkgs.inetutils 97 + pkgs.mosh 98 + pkgs.ngrok 99 + pkgs.networkmanagerapplet 100 + pkgs.networkmanager-iodine 101 + pkgs.iodine 102 + # nix_tools 103 + inputs.nixvim.packages.x86_64-linux.default 104 + pkgs.nixd 105 + pkgs.nil 106 + pkgs.nixfmt-rfc-style 107 + inputs.agenix.packages.x86_64-linux.default 108 + pkgs.lix 109 + # security 110 + pkgs.openssl 111 + pkgs.gpgme 112 + pkgs.gnupg 113 + pkgs.unstable.mitmproxy 114 + pkgs.caido 115 + # editors 116 + inputs.zed.packages.x86_64-linux.default 117 + pkgs.unstable.zed-editor 118 + pkgs.arduino-ide 119 + # browsers 120 + pkgs.firefox 121 + (pkgs.chromium.override { enableWideVine = true; }) 122 + # wayland 123 + pkgs.swww 124 + pkgs.wluma 125 + pkgs.brightnessctl 126 + pkgs.hyprpaper 127 + pkgs.hyprsunset 128 + pkgs.wl-clipboard 129 + pkgs.grim 130 + pkgs.slurp 131 + pkgs.wtype 132 + pkgs.mako 133 + pkgs.unstable.hyprpicker 134 + pkgs.wl-screenrec 135 + inputs.hyprland-contrib.packages.${pkgs.system}.grimblast 136 + pkgs.playerctl 137 + pkgs.libnotify 138 + pkgs.notify-desktop 139 + pkgs.lxde.lxsession 140 + # gnome 141 + pkgs.gnome-online-accounts 142 + pkgs.gnome-online-accounts-gtk 143 + pkgs.gnome-disk-utility 144 + pkgs.baobab 145 + pkgs.simple-scan 146 + pkgs.file-roller 147 + pkgs.font-manager 148 + pkgs.nautilus 149 + pkgs.loupe 150 + pkgs.totem 151 + pkgs.overskride 152 + # dev_langs 153 + pkgs.nodejs_22 154 + pkgs.unstable.bun 155 + pkgs.python3 156 + pkgs.go 157 + pkgs.gopls 158 + pkgs.gotools 159 + pkgs.go-tools 160 + pkgs.gcc 161 + pkgs.rustc 162 + pkgs.cargo 163 + pkgs.jdk23 164 + pkgs.ruby 165 + pkgs.cmake 166 + pkgs.unstable.biome 167 + pkgs.unstable.apktool 168 + pkgs.nodePackages_latest.prisma 169 + pkgs.unstable.zola 170 + # media 171 + pkgs.ffmpeg 172 + pkgs.video-trimmer 173 + pkgs.pitivi 174 + pkgs.audacity 175 + pkgs.unstable.amberol 176 + pkgs.zoom-us 177 + # graphics 178 + pkgs.imagemagick 179 + pkgs.inkscape 180 + pkgs.blender 181 + pkgs.exiftool 182 + pkgs.unstable.aseprite 183 + pkgs.godot_4 184 + pkgs.unstable.kikit 185 + pkgs.openboardview 186 + pkgs.qflipper 187 + # office 188 + pkgs.slack 189 + pkgs.libreoffice 190 + pkgs.unstable.zotero 191 + # gaming 192 + pkgs.prismlauncher 193 + pkgs.vesktop 194 + pkgs.cava 195 + pkgs.gobang 196 + pkgs.love 197 + #frc 198 + inputs.frc-nix.packages.${pkgs.system}.elastic-dashboard 199 + inputs.frc-nix.packages.${pkgs.system}.pathplanner 200 + inputs.frc-nix.packages.${pkgs.system}.roborioteamnumbersetter 201 + inputs.frc-nix.packages.${pkgs.system}.sysid 202 + inputs.frc-nix.packages.${pkgs.system}.wpilib-utility 203 + inputs.frc-nix.packages.${pkgs.system}.advantagescope 204 + # misc 205 + pkgs.invoice 206 + pkgs.pop 207 + pkgs.vhs 208 + pkgs.torrential 209 + inputs.flare.packages.x86_64-linux.default 210 + pkgs.unstable.ollama 211 + pkgs.unstable.claude-code 212 + pkgs.udiskie 213 + pkgs.neofetch 214 + pkgs.unstable.kicad-testing 215 + pkgs.zenity 216 + pkgs.atproto-goat 217 + ]; 255 218 256 219 programs.nh = { 257 220 enable = true; ··· 276 239 ]; 277 240 age.secrets = { 278 241 wifi = { 279 - file = ../../../secrets/wifi.age; 242 + file = ../../secrets/wifi.age; 280 243 owner = "kierank"; 281 244 }; 282 245 resend = { 283 - file = ../../../secrets/resend.age; 246 + file = ../../secrets/resend.age; 284 247 owner = "kierank"; 285 248 }; 286 249 wakatime = { 287 - file = ../../../secrets/wakatime.age; 250 + file = ../../secrets/wakatime.age; 288 251 path = "/home/kierank/.wakatime.cfg"; 289 252 owner = "kierank"; 290 253 }; 291 254 bluesky = { 292 - file = ../../../secrets/bluesky.age; 255 + file = ../../secrets/bluesky.age; 293 256 owner = "kierank"; 294 257 }; 295 258 iodine = { 296 - file = ../../../secrets/iodine.age; 259 + file = ../../secrets/iodine.age; 297 260 owner = "kierank"; 298 261 }; 299 262 }; ··· 314 277 VISUAL = "nvim"; 315 278 }; 316 279 317 - modules = { 280 + atelier = { 318 281 authentication.enable = true; 319 282 apps.tuigreet = { 320 283 enable = true;
nixos/machines/moonlark/disk-config.nix machines/moonlark/disk-config.nix
nixos/machines/moonlark/hardware-configuration.nix machines/moonlark/hardware-configuration.nix
+1 -1
nixos/machines/moonlark/home-manager.nix machines/moonlark/home-manager.nix
··· 11 11 }; 12 12 users = { 13 13 # Import your home-manager configuration 14 - kierank = import ../../../home-manager/machines/moonlark; 14 + kierank = import ./home; 15 15 }; 16 16 }; 17 17 }
+2 -2
nixos/modules/apps/tuigreet.nix modules/nixos/apps/tuigreet.nix
··· 5 5 ... 6 6 }: 7 7 let 8 - cfg = config.modules.apps.tuigreet; 8 + cfg = config.atelier.apps.tuigreet; 9 9 tuigreetBin = "${pkgs.greetd.tuigreet}/bin/tuigreet"; 10 10 msg = cfg.greeting; 11 11 baseArgs = ··· 115 115 ); 116 116 in 117 117 { 118 - options.modules.apps.tuigreet = { 118 + options.atelier.apps.tuigreet = { 119 119 enable = lib.mkEnableOption "Enable greetd with tuigreet"; 120 120 121 121 command = lib.mkOption {
+2 -2
nixos/modules/system/authentication.nix modules/nixos/system/authentication.nix
··· 5 5 ... 6 6 }: 7 7 let 8 - cfg = config.modules.authentication; 8 + cfg = config.atelier.authentication; 9 9 in 10 10 { 11 - options.modules.authentication.enable = lib.mkEnableOption "Enable authentication stack (polkit, keyring, PAM with fprintd)"; 11 + options.atelier.authentication.enable = lib.mkEnableOption "Enable authentication stack (polkit, keyring, PAM with fprintd)"; 12 12 13 13 config = lib.mkIf cfg.enable { 14 14 services.fprintd.enable = true;
+4 -4
nixos/modules/system/wifi.nix modules/nixos/system/wifi.nix
··· 2 2 # 3 3 # This module provides a simpler way to declare wifi profiles with network manager. 4 4 # - you can pass the PSK via environment variable, direct value, or file. 5 - # - profiles are defined in `modules.network.wifi.profiles`. 5 + # - profiles are defined in `atelier.network.wifi.profiles`. 6 6 # 7 7 # Example usage: 8 - # modules.network.wifi = { 8 + # atelier.network.wifi = { 9 9 # enable = true; 10 10 # profiles = { 11 11 # "MySSID" = { psk = "supersecret"; }; ··· 19 19 ... 20 20 }: 21 21 let 22 - cfg = config.modules.network.wifi; 22 + cfg = config.atelier.network.wifi; 23 23 mkProfile = 24 24 name: 25 25 { ··· 71 71 base // sec; 72 72 in 73 73 { 74 - options.modules.network.wifi = { 74 + options.atelier.network.wifi = { 75 75 enable = lib.mkEnableOption "Enable NetworkManager with simplified Wi-Fi profiles"; 76 76 hostName = lib.mkOption { 77 77 type = lib.types.str;