authorgravatar for nmarks413@gmail.comNatalie Marks <nmarks413@gmail.com> 2025-04-21 10:25:32-07:00
committergravatar for nmarks413@gmail.comNatalie Marks <nmarks413@gmail.com> 2025-04-21 10:25:32-07:00
log0f3e214767ad8e0f6af145dd1b8aa7d8ecb1e6ca
treedb11f9416ea28c6498de96a1904b528d9e33ba1d
parent4f015f806db80d849ac7af3eefcdf7fca32779eb
signature Commit is signed but in an unrecognized format.

move home packages into system packages


14 files changed, 386 insertions(+), 430 deletions(-)

flake.lock+74-143
......@@ -20,11 +20,11 @@
2020 ]
2121 },
2222 "locked": {
23 "lastModified": 1743265529,
24 "narHash": "sha256-QbjP15/2N+VJl0b5jxrrTc+VOt39aU4XrDvtP0Lz5ik=",
23 "lastModified": 1744289235,
24 "narHash": "sha256-ZFkHLdimtFzQACsVVyZkZlfYdj4iNy3PkzXfrwmlse8=",
2525 "owner": "hyprwm",
2626 "repo": "aquamarine",
27 "rev": "1d2dbd72c2bbaceab031c592d4810f744741d203",
27 "rev": "c8282f4982b56dfa5e9b9f659809da93f8d37e7a",
2828 "type": "github"
2929 },
3030 "original": {
......@@ -61,11 +61,11 @@
6161 ]
6262 },
6363 "locked": {
64 "lastModified": 1743496612,
65 "narHash": "sha256-emPWa5lmKbnyuj8c1mSJUkzJNT+iJoU9GMcXwjp2oVM=",
64 "lastModified": 1744478979,
65 "narHash": "sha256-dyN+teG9G82G+m+PX/aSAagkC+vUv0SgUw3XkPhQodQ=",
6666 "owner": "lnl7",
6767 "repo": "nix-darwin",
68 "rev": "73d59580d01e9b9f957ba749f336a272869c42dd",
68 "rev": "43975d782b418ebf4969e9ccba82466728c2851b",
6969 "type": "github"
7070 },
7171 "original": {
......@@ -161,24 +161,6 @@
161161 "inputs": {
162162 "systems": "systems_3"
163163 },
164 "locked": {
165 "lastModified": 1701680307,
166 "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
167 "owner": "numtide",
168 "repo": "flake-utils",
169 "rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
170 "type": "github"
171 },
172 "original": {
173 "owner": "numtide",
174 "repo": "flake-utils",
175 "type": "github"
176 }
177 },
178 "flake-utils_3": {
179 "inputs": {
180 "systems": "systems_4"
181 },
182164 "locked": {
183165 "lastModified": 1731533236,
184166 "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
......@@ -193,9 +175,9 @@
193175 "type": "github"
194176 }
195177 },
196 "flake-utils_4": {
178 "flake-utils_3": {
197179 "inputs": {
198 "systems": "systems_5"
180 "systems": "systems_4"
199181 },
200182 "locked": {
201183 "lastModified": 1705309234,
......@@ -211,9 +193,9 @@
211193 "type": "github"
212194 }
213195 },
214 "flake-utils_5": {
196 "flake-utils_4": {
215197 "inputs": {
216 "systems": "systems_6"
198 "systems": "systems_5"
217199 },
218200 "locked": {
219201 "lastModified": 1710146030,
......@@ -229,9 +211,9 @@
229211 "type": "github"
230212 }
231213 },
232 "flake-utils_6": {
214 "flake-utils_5": {
233215 "inputs": {
234 "systems": "systems_7"
216 "systems": "systems_6"
235217 },
236218 "locked": {
237219 "lastModified": 1705309234,
......@@ -313,11 +295,11 @@
313295 ]
314296 },
315297 "locked": {
316 "lastModified": 1743998782,
317 "narHash": "sha256-gckmtwW/H0jEM1Y8G3wBLfr2nJvwBdjuqnjKNV0lcQY=",
298 "lastModified": 1745128386,
299 "narHash": "sha256-xnNxL9lZC5Ez8AxTgHZZu8pYSNM34+5GD5jGSs8Vq4M=",
318300 "owner": "nix-community",
319301 "repo": "home-manager",
320 "rev": "c15ab0ce0dbe64843358a3081b09ed35144dfd65",
302 "rev": "f98314bb064cf8f8446c44afbadaaad2505875a7",
321303 "type": "github"
322304 },
323305 "original": {
......@@ -332,11 +314,11 @@
332314 "nixpkgs": "nixpkgs"
333315 },
334316 "locked": {
335 "lastModified": 1743896382,
336 "narHash": "sha256-yYLBCDGOpsrMW1cMYUd1B0AWx86puv75Bn+T+TGsyRU=",
317 "lastModified": 1744900124,
318 "narHash": "sha256-2l+0DOQkro1XqokQCQYJVy0RLULxLvRdfd+KLvx2E+I=",
337319 "owner": "StevenBlack",
338320 "repo": "hosts",
339 "rev": "37a200a82d7a7d9a6598d870825a30f581632016",
321 "rev": "8c73d7423883d1e9992eb74aabc17f0780b65c8b",
340322 "type": "github"
341323 },
342324 "original": {
......@@ -390,11 +372,11 @@
390372 ]
391373 },
392374 "locked": {
393 "lastModified": 1739049071,
394 "narHash": "sha256-3+7TpXMrbsUXSwgr5VAKAnmkzMb6JO+Rvc9XRb5NMg4=",
375 "lastModified": 1743953322,
376 "narHash": "sha256-prQ5JKopXtzCMX2eT3dXbaVvGmzjMRE2bXStQDdazpM=",
395377 "owner": "hyprwm",
396378 "repo": "hyprgraphics",
397 "rev": "175c6b29b6ff82100539e7c4363a35a02c74dd73",
379 "rev": "9d7f2687c84c729afbc3b13f7937655570f2978d",
398380 "type": "github"
399381 },
400382 "original": {
......@@ -419,11 +401,11 @@
419401 "xdph": "xdph"
420402 },
421403 "locked": {
422 "lastModified": 1743975687,
423 "narHash": "sha256-k21wOvAEzCLHIUsVG551y6cMxmQ7sXQLOtlxQXV09xk=",
404 "lastModified": 1745164468,
405 "narHash": "sha256-JOza51SDXsdHIuIR40wdFTzjZdSIq8RwFpCacDNURgk=",
424406 "owner": "hyprwm",
425407 "repo": "Hyprland",
426 "rev": "51838fb5f5b5b03bca99b324fb1f6494d3854f89",
408 "rev": "9b4060f09be06250e859b27d6dd3ded5349f5546",
427409 "type": "github"
428410 },
429411 "original": {
......@@ -449,11 +431,11 @@
449431 ]
450432 },
451433 "locked": {
452 "lastModified": 1743950622,
453 "narHash": "sha256-8qjDapcQeDqxQUIm5gA0x6XZtowV/14bOs3K0tCSMoU=",
434 "lastModified": 1745156469,
435 "narHash": "sha256-3PK27C3XcPoOkEIQnaPi3cdvh7XjIGqkcQ6MeZMvy2E=",
454436 "owner": "hyprwm",
455437 "repo": "hyprland-plugins",
456 "rev": "be6b9875dd5c586fb401d294bb98c31973849651",
438 "rev": "faa4e782753ab994333666b7e686b038d420c22f",
457439 "type": "github"
458440 },
459441 "original": {
......@@ -571,11 +553,11 @@
571553 ]
572554 },
573555 "locked": {
574 "lastModified": 1741191527,
575 "narHash": "sha256-kM+11Nch47Xwfgtw2EpRitJuORy4miwoMuRi5tyMBDY=",
556 "lastModified": 1744468525,
557 "narHash": "sha256-9HySx+EtsbbKlZDlY+naqqOV679VdxP6x6fP3wxDXJk=",
576558 "owner": "hyprwm",
577559 "repo": "hyprlang",
578 "rev": "72df3861f1197e41b078faa3e38eedd60e00018d",
560 "rev": "f1000c54d266e6e4e9d646df0774fac5b8a652df",
579561 "type": "github"
580562 },
581563 "original": {
......@@ -651,15 +633,14 @@
651633 "flake-utils": "flake-utils",
652634 "nixpkgs": [
653635 "nixpkgs"
654 ],
655 "pnpm2nix": "pnpm2nix"
636 ]
656637 },
657638 "locked": {
658 "lastModified": 1743984107,
659 "narHash": "sha256-4847SrchEPDB9CEZME64E41adIygA/pkoQyRGXNymq0=",
639 "lastModified": 1744754672,
640 "narHash": "sha256-FmQS8DqjgOyfEth8tpUlJoduo6rAv28PwLGv90J3rcM=",
660641 "owner": "moonlight-mod",
661642 "repo": "moonlight",
662 "rev": "f3eb24ebb4c68becb4d28a88ae95bcbd50ec8b66",
643 "rev": "cbcf4afc43f9bb2347b822fe1f6a2bf74075d927",
663644 "type": "github"
664645 },
665646 "original": {
......@@ -695,11 +676,11 @@
695676 ]
696677 },
697678 "locked": {
698 "lastModified": 1744518957,
699 "narHash": "sha256-RLBSWQfTL0v+7uyskC5kP6slLK1jvIuhaAh8QvB75m4=",
679 "lastModified": 1745120797,
680 "narHash": "sha256-owQ0VQ+7cSanTVPxaZMWEzI22Q4bGnuvhVjLAJBNQ3E=",
700681 "owner": "nix-community",
701682 "repo": "nix-index-database",
702 "rev": "4fc9ea78c962904f4ea11046f3db37c62e8a02fd",
683 "rev": "69716041f881a2af935021c1182ed5b0cc04d40e",
703684 "type": "github"
704685 },
705686 "original": {
......@@ -710,9 +691,9 @@
710691 },
711692 "nix-options-search": {
712693 "inputs": {
713 "flake-utils": "flake-utils_3",
694 "flake-utils": "flake-utils_2",
714695 "gitignore": "gitignore_2",
715 "nixpkgs": "nixpkgs_4"
696 "nixpkgs": "nixpkgs_3"
716697 },
717698 "locked": {
718699 "lastModified": 1743876182,
......@@ -738,11 +719,11 @@
738719 "rust-overlay": "rust-overlay"
739720 },
740721 "locked": {
741 "lastModified": 1743949616,
742 "narHash": "sha256-L7rN47O8cc/LrYlWtZOKuVYuYQ8VWPlUeAaMVhxQu5o=",
722 "lastModified": 1745147300,
723 "narHash": "sha256-PvzBVmB8qRxGnccAaBxPKG9oElAQxac2HbFOGyQuuJU=",
743724 "owner": "lilyinstarlight",
744725 "repo": "nixos-cosmic",
745 "rev": "e765d8c0340d38c1544dcfc6cae829ed2582075e",
726 "rev": "5a4d2109cf5a3eb18a0afa361a017643a57f9454",
746727 "type": "github"
747728 },
748729 "original": {
......@@ -754,8 +735,8 @@
754735 "nixpkgs": {
755736 "locked": {
756737 "lastModified": 0,
757 "narHash": "sha256-6hl6L/tRnwubHcA4pfUUtk542wn2Om+D4UnDhlDW9BE=",
758 "path": "/nix/store/9qd2bi98nh9yd4axm9zr16zln01w62q3-source",
738 "narHash": "sha256-rpqepOZ8Eo1zg+KJeWoq1HAOgoMCDloqv5r2EAa9TSA=",
739 "path": "/nix/store/inbabfz8n7fxflkis0a05zcli4a1q2bp-source",
759740 "type": "path"
760741 },
761742 "original": {
......@@ -765,11 +746,11 @@
765746 },
766747 "nixpkgs-stable": {
767748 "locked": {
768 "lastModified": 1743703532,
769 "narHash": "sha256-s1KLDALEeqy+ttrvqV3jx9mBZEvmthQErTVOAzbjHZs=",
749 "lastModified": 1744440957,
750 "narHash": "sha256-FHlSkNqFmPxPJvy+6fNLaNeWnF1lZSgqVCl/eWaJRc4=",
770751 "owner": "NixOS",
771752 "repo": "nixpkgs",
772 "rev": "bdb91860de2f719b57eef819b5617762f7120c70",
753 "rev": "26d499fc9f1d567283d5d56fcf367edd815dba1d",
773754 "type": "github"
774755 },
775756 "original": {
......@@ -796,11 +777,11 @@
796777 },
797778 "nixpkgs_2": {
798779 "locked": {
799 "lastModified": 1743827369,
800 "narHash": "sha256-rpqepOZ8Eo1zg+KJeWoq1HAOgoMCDloqv5r2EAa9TSA=",
780 "lastModified": 1744932701,
781 "narHash": "sha256-fusHbZCyv126cyArUwwKrLdCkgVAIaa/fQJYFlCEqiU=",
801782 "owner": "NixOS",
802783 "repo": "nixpkgs",
803 "rev": "42a1c966be226125b48c384171c44c651c236c22",
784 "rev": "b024ced1aac25639f8ca8fdfc2f8c4fbd66c48ef",
804785 "type": "github"
805786 },
806787 "original": {
......@@ -811,22 +792,6 @@
811792 }
812793 },
813794 "nixpkgs_3": {
814 "locked": {
815 "lastModified": 1736344531,
816 "narHash": "sha256-8YVQ9ZbSfuUk2bUf2KRj60NRraLPKPS0Q4QFTbc+c2c=",
817 "owner": "nixos",
818 "repo": "nixpkgs",
819 "rev": "bffc22eb12172e6db3c5dde9e3e5628f8e3e7912",
820 "type": "github"
821 },
822 "original": {
823 "owner": "nixos",
824 "ref": "nixos-unstable",
825 "repo": "nixpkgs",
826 "type": "github"
827 }
828 },
829 "nixpkgs_4": {
830795 "locked": {
831796 "lastModified": 1736012469,
832797 "narHash": "sha256-/qlNWm/IEVVH7GfgAIyP6EsVZI6zjAx1cV5zNyrs+rI=",
......@@ -842,13 +807,13 @@
842807 "type": "github"
843808 }
844809 },
845 "nixpkgs_5": {
810 "nixpkgs_4": {
846811 "locked": {
847 "lastModified": 1743827369,
848 "narHash": "sha256-rpqepOZ8Eo1zg+KJeWoq1HAOgoMCDloqv5r2EAa9TSA=",
812 "lastModified": 1744932701,
813 "narHash": "sha256-fusHbZCyv126cyArUwwKrLdCkgVAIaa/fQJYFlCEqiU=",
849814 "owner": "NixOS",
850815 "repo": "nixpkgs",
851 "rev": "42a1c966be226125b48c384171c44c651c236c22",
816 "rev": "b024ced1aac25639f8ca8fdfc2f8c4fbd66c48ef",
852817 "type": "github"
853818 },
854819 "original": {
......@@ -857,7 +822,7 @@
857822 "type": "indirect"
858823 }
859824 },
860 "nixpkgs_6": {
825 "nixpkgs_5": {
861826 "locked": {
862827 "lastModified": 1708161998,
863828 "narHash": "sha256-6KnemmUorCvlcAvGziFosAVkrlWZGIc6UNT9GUYr0jQ=",
......@@ -873,7 +838,7 @@
873838 "type": "github"
874839 }
875840 },
876 "nixpkgs_7": {
841 "nixpkgs_6": {
877842 "locked": {
878843 "lastModified": 1717696253,
879844 "narHash": "sha256-1+ua0ggXlYYPLTmMl3YeYYsBXDSCqT+Gw3u6l4gvMhA=",
......@@ -889,25 +854,6 @@
889854 "type": "github"
890855 }
891856 },
892 "pnpm2nix": {
893 "inputs": {
894 "flake-utils": "flake-utils_2",
895 "nixpkgs": "nixpkgs_3"
896 },
897 "locked": {
898 "lastModified": 1736457458,
899 "narHash": "sha256-eiw+hAsxavEgBfhwrktNI2hwvgeVDzBDYClx/yqka78=",
900 "owner": "NotNite",
901 "repo": "pnpm2nix-nzbr",
902 "rev": "4ac61c6a50623da937dca005e3dbcb8862aafb83",
903 "type": "github"
904 },
905 "original": {
906 "owner": "NotNite",
907 "repo": "pnpm2nix-nzbr",
908 "type": "github"
909 }
910 },
911857 "pre-commit-hooks": {
912858 "inputs": {
913859 "flake-compat": "flake-compat",
......@@ -944,7 +890,7 @@
944890 "nix-index-database": "nix-index-database",
945891 "nix-options-search": "nix-options-search",
946892 "nixos-cosmic": "nixos-cosmic",
947 "nixpkgs": "nixpkgs_5",
893 "nixpkgs": "nixpkgs_4",
948894 "nixpkgs-stable": "nixpkgs-stable_2",
949895 "rust-overlay": "rust-overlay_2",
950896 "zig": "zig",
......@@ -959,11 +905,11 @@
959905 ]
960906 },
961907 "locked": {
962 "lastModified": 1743906877,
963 "narHash": "sha256-Thah1oU8Vy0gs9bh5QhNcQh1iuQiowMnZPbrkURonZA=",
908 "lastModified": 1745116541,
909 "narHash": "sha256-5xzA6dTfqCfTTDCo3ipPZzrg3wp01xmcr73y4cTNMP8=",
964910 "owner": "oxalica",
965911 "repo": "rust-overlay",
966 "rev": "9d00c6b69408dd40d067603012938d9fbe95cfcd",
912 "rev": "e2142ef330a61c02f274ac9a9cb6f8487a5d0080",
967913 "type": "github"
968914 },
969915 "original": {
......@@ -979,11 +925,11 @@
979925 ]
980926 },
981927 "locked": {
982 "lastModified": 1743993291,
983 "narHash": "sha256-u8GHvduU1gCtoFXvTS/wGjH1ouv5S/GRGq6MAT+sG/k=",
928 "lastModified": 1745116541,
929 "narHash": "sha256-5xzA6dTfqCfTTDCo3ipPZzrg3wp01xmcr73y4cTNMP8=",
984930 "owner": "oxalica",
985931 "repo": "rust-overlay",
986 "rev": "0cb3c8979c65dc6a5812dfe67499a8c7b8b4325b",
932 "rev": "e2142ef330a61c02f274ac9a9cb6f8487a5d0080",
987933 "type": "github"
988934 },
989935 "original": {
......@@ -1082,21 +1028,6 @@
10821028 "type": "github"
10831029 }
10841030 },
1085 "systems_7": {
1086 "locked": {
1087 "lastModified": 1681028828,
1088 "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
1089 "owner": "nix-systems",
1090 "repo": "default",
1091 "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
1092 "type": "github"
1093 },
1094 "original": {
1095 "owner": "nix-systems",
1096 "repo": "default",
1097 "type": "github"
1098 }
1099 },
11001031 "xdph": {
11011032 "inputs": {
11021033 "hyprland-protocols": [
......@@ -1125,11 +1056,11 @@
11251056 ]
11261057 },
11271058 "locked": {
1128 "lastModified": 1741934139,
1129 "narHash": "sha256-ZhTcTH9FoeAtbPfWGrhkH7RjLJZ7GeF18nygLAMR+WE=",
1059 "lastModified": 1744644585,
1060 "narHash": "sha256-p0D/e4J6Sv6GSb+9u8OQcVHSE2gPNYB5ygIfGDyEiXQ=",
11301061 "owner": "hyprwm",
11311062 "repo": "xdg-desktop-portal-hyprland",
1132 "rev": "150b0b6f52bb422a1b232a53698606fe0320dde0",
1063 "rev": "be6771e754345f18244fb00aae5c9e5ab21ccc26",
11331064 "type": "github"
11341065 },
11351066 "original": {
......@@ -1141,15 +1072,15 @@
11411072 "zig": {
11421073 "inputs": {
11431074 "flake-compat": "flake-compat_3",
1144 "flake-utils": "flake-utils_4",
1145 "nixpkgs": "nixpkgs_6"
1075 "flake-utils": "flake-utils_3",
1076 "nixpkgs": "nixpkgs_5"
11461077 },
11471078 "locked": {
1148 "lastModified": 1743899701,
1149 "narHash": "sha256-qbaGVwPyUGmmRh+u1EY+bFKKiBC2CDfuE7E9uGj1Iuk=",
1079 "lastModified": 1744978344,
1080 "narHash": "sha256-wY5oeCJDKBlEodTR8d7GbH1rzgiPZeb0x/1z/2GvFvs=",
11501081 "owner": "mitchellh",
11511082 "repo": "zig-overlay",
1152 "rev": "51f156aa0220947c6712b5846bf440136fd551db",
1083 "rev": "028c99db16ef26fcc3cf138a2759b3cac3a19ae1",
11531084 "type": "github"
11541085 },
11551086 "original": {
......@@ -1161,7 +1092,7 @@
11611092 "zig-overlay": {
11621093 "inputs": {
11631094 "flake-compat": "flake-compat_4",
1164 "flake-utils": "flake-utils_6",
1095 "flake-utils": "flake-utils_5",
11651096 "nixpkgs": [
11661097 "zls",
11671098 "nixpkgs"
......@@ -1183,10 +1114,10 @@
11831114 },
11841115 "zls": {
11851116 "inputs": {
1186 "flake-utils": "flake-utils_5",
1117 "flake-utils": "flake-utils_4",
11871118 "gitignore": "gitignore_3",
11881119 "langref": "langref",
1189 "nixpkgs": "nixpkgs_7",
1120 "nixpkgs": "nixpkgs_6",
11901121 "zig-overlay": "zig-overlay"
11911122 },
11921123 "locked": {
flake.nix+16-5
......@@ -72,22 +72,33 @@
7272 inputs.nh.overlays.default
7373 ];
7474
75 mkSystem = import ./lib/mkSystem.nix {
76 inherit overlays nixpkgs inputs;
75 # ----- USER SETTINGS ----- #
76 userSettings = rec {
77 username = "nmarks"; # username
78 name = "Natalie"; # name/identifier
79 email = "nmarks413@gmail.com"; # email (used for certain configurations)
80 dotfilesDir = "~/.dotfiles"; # absolute path of the local repo
81 browser = "firefox"; # Default browser; must select one from ./user/app/browser/
82 term = "ghostty"; # Default terminal command;
83 font = "iosevka Nerd Font"; # Selected font
84 editor = "neovim"; # Default editor;
85 spawnEditor = "exec" + term + " -e " + editor;
86 timeZone = "America/Los_Angeles";
87 sexuality = "bisexual";
7788 };
7889
79 user = "nmarks";
90 mkSystem = import ./lib/mkSystem.nix {
91 inherit overlays nixpkgs inputs userSettings;
92 };
8093 in {
8194 nixosConfigurations.nixos = mkSystem "nixos" {
8295 system = "x86_64-linux";
83 inherit user;
8496 extraModules = [
8597 nixos-cosmic.nixosModules.default
8698 ];
8799 };
88100 darwinConfigurations."Natalies-MacBook-Air" = mkSystem "Natalies-MacBook-Air" {
89101 system = "aarch64-darwin";
90 inherit user;
91102 darwin = true;
92103 };
93104 };
hosts/desktop/configuration.nix+77-157
......@@ -3,6 +3,7 @@
33 inputs,
44 config,
55 pkgs,
6 userSettings,
67 ...
78}: {
89 imports = [
......@@ -11,57 +12,90 @@
1112
1213 ../../modules/nixos/nvidia.nix
1314 ../../modules/nixos/boot.nix
15 ../../modules/nixos/ld.nix
16 ../../modules/nixos/services.nix
1417 ];
15 programs.gamemode.enable = true;
18 programs = {
19 gamemode.enable = true;
1620
17 programs._1password.enable = true;
18 programs._1password-gui = {
19 enable = true;
20 # Certain features, including CLI integration and system authentication support,
21 # require enabling PolKit integration on some desktop environments (e.g. Plasma).
22 polkitPolicyOwners = ["nmarks"];
23 };
21 _1password.enable = true;
22 _1password-gui = {
23 enable = true;
24 # Certain features, including CLI integration and system authentication support,
25 # require enabling PolKit integration on some desktop environments (e.g. Plasma).
26 polkitPolicyOwners = [userSettings.username];
27 };
2428
25 hardware.bluetooth.enable = true;
29 noisetorch.enable = true;
30
31 hyprland.enable = true;
32
33 fish.enable = true;
34 virt-manager.enable = true;
2635
27 services = {
36 nh = {
37 enable = true;
38 clean.enable = true;
39 clean.extraArgs = "--keep-since 4d --keep 3";
40 flake = "/home/nmarks/.dotfiles";
41 };
42
43 neovim = {
44 enable = true;
45 defaultEditor = true;
46 };
47
48 steam = {
49 enable = true;
50 package = with pkgs; steam.override {extraPkgs = pkgs: [attr];};
51 };
52
53 git = {
54 enable = true;
55 lfs.enable = true;
56 };
57
58 # Some programs need SUID wrappers, can be configured further or are
59 # started in user sessions.
60 mtr.enable = true;
61 gnupg.agent = {
62 enable = true;
63 enableSSHSupport = true;
64 pinentryPackage = pkgs.pinentry-curses;
65 };
66
67 kdeconnect.enable = true;
2868 };
2969
30 programs.noisetorch.enable = true;
70 hardware.bluetooth.enable = true;
3171
3272 xdg.portal = {
3373 enable = true;
3474 extraPortals = with pkgs; [xdg-desktop-portal-gtk];
3575 };
76 virtualisation = {
77 containers.enable = true;
78 podman = {
79 enable = true;
80 # dockerCompat = true;
81 };
82 docker.enable = true;
3683
37 virtualisation.containers.enable = true;
38 virtualisation.podman = {
39 enable = true;
40 # dockerCompat = true;
84 libvirtd.enable = true;
4185 };
42 virtualisation.docker.enable = true;
43
44 nix.settings.trusted-users = ["root" "nmarks"];
4586
46 programs.hyprland.enable = true;
47
48 programs.fish.enable = true;
87 nix.settings.trusted-users = ["root" userSettings.username];
88 systemd = {
89 targets = {
90 sleep.enable = false;
91 suspend.enable = false;
92 hibernate.enable = false;
93 hybrid-sleep.enable = false;
94 };
4995
50 virtualisation.libvirtd.enable = true;
51 programs.virt-manager.enable = true;
96 packages = [pkgs.observatory];
5297
53 systemd.targets = {
54 sleep.enable = false;
55 suspend.enable = false;
56 hibernate.enable = false;
57 hybrid-sleep.enable = false;
58 };
59
60 programs.nh = {
61 enable = true;
62 clean.enable = true;
63 clean.extraArgs = "--keep-since 4d --keep 3";
64 flake = "/home/nmarks/.dotfiles";
98 services.monitord.wantedBy = ["multi-user.target"];
6599 };
66100
67101 i18n = {
......@@ -95,16 +129,8 @@
95129 ];
96130 };
97131 };
98 ### Cosmic stuff
99
100 environment.sessionVariables.COSMIC_DATA_CONTROL_ENABLED = 1;
101
102 systemd.packages = [pkgs.observatory];
103
104 systemd.services.monitord.wantedBy = ["multi-user.target"];
105132
106133 # Enable sound with pipewire.
107 # services.pulseaudio.enable = true;
108134 security.rtkit.enable = true;
109135
110136 # Enable touchpad support (enabled default in most desktopManager).
......@@ -112,7 +138,7 @@
112138
113139 # Define a user account. Don't forget to set a password with ‘passwd’.
114140 users.defaultUserShell = pkgs.fish;
115 users.users.nmarks = {
141 users.users.${userSettings.username} = {
116142 isNormalUser = true;
117143 description = "Natalie Marks";
118144 extraGroups = ["networkmanager" "wheel" "docker"];
......@@ -125,40 +151,17 @@
125151 # thunderbird
126152 ];
127153 };
154 environment = {
155 sessionVariables.COSMIC_DATA_CONTROL_ENABLED = 1;
156 variables.EDITOR = "nvim";
128157
129 programs.neovim = {
130 enable = true;
131 defaultEditor = true;
132 };
133 environment.variables.EDITOR = "nvim";
134
135 programs.steam = {
136 enable = true;
137 package = with pkgs; steam.override {extraPkgs = pkgs: [attr];};
138 };
139
140 programs.git = {
141 enable = true;
142 lfs.enable = true;
143 };
144
145 environment.systemPackages = with pkgs; [
146 vim
147 ];
148
149 # Some programs need SUID wrappers, can be configured further or are
150 # started in user sessions.
151 programs.mtr.enable = true;
152 programs.gnupg.agent = {
153 enable = true;
154 enableSSHSupport = true;
155 pinentryPackage = pkgs.pinentry-curses;
158 systemPackages = with pkgs; [
159 vim
160 ];
156161 };
157162
158 programs.kdeconnect.enable = true;
159
160163 networking = {
161 hostName = "nixos"; # Define your hostname.
164 hostName = userSettings.hostname; # Define your hostname.
162165 # wireless.enable = true; # Enables wireless support via wpa_supplicant.
163166 networkmanager.enable = true;
164167 firewall = {
......@@ -171,89 +174,6 @@
171174 };
172175 };
173176
174 programs.nix-ld.enable = true;
175
176 # "minimum" amount of libraries needed for most games to run without steam-run
177 programs.nix-ld.libraries = with pkgs; [
178 # common requirement for several games
179 stdenv.cc.cc.lib
180
181 # from https://github.com/NixOS/nixpkgs/blob/nixos-23.05/pkgs/games/steam/fhsenv.nix#L72-L79
182 xorg.libXcomposite
183 xorg.libXtst
184 xorg.libXrandr
185 xorg.libXext
186 xorg.libX11
187 xorg.libXfixes
188 libGL
189 libva
190
191 # from https://github.com/NixOS/nixpkgs/blob/nixos-23.05/pkgs/games/steam/fhsenv.nix#L124-L136
192 fontconfig
193 freetype
194 xorg.libXt
195 xorg.libXmu
196 libogg
197 libvorbis
198 SDL
199 SDL2_image
200 glew110
201 libdrm
202 libidn
203 tbb
204 zlib
205 alsa-lib
206 at-spi2-atk
207 at-spi2-core
208 atk
209 cairo
210 cups
211 curl
212 dbus
213 expat
214 fontconfig
215 freetype
216 fuse3
217 gdk-pixbuf
218 glib
219 gtk3
220 icu
221 libGL
222 libappindicator-gtk3
223 libdrm
224 libglvnd
225 libnotify
226 libpulseaudio
227 libunwind
228 libusb1
229 libuuid
230 libxkbcommon
231 libxml2
232 mesa
233 nspr
234 nss
235 openssl
236 pango
237 # pipewire
238 stdenv.cc.cc
239 systemd
240 vulkan-loader
241 xorg.libX11
242 xorg.libXScrnSaver
243 xorg.libXcomposite
244 xorg.libXcursor
245 xorg.libXdamage
246 xorg.libXext
247 xorg.libXfixes
248 xorg.libXi
249 xorg.libXrandr
250 xorg.libXrender
251 xorg.libXtst
252 xorg.libxcb
253 xorg.libxkbfile
254 xorg.libxshmfence
255 zlib
256 ];
257177 # Open ports in the firewall.
258178 # networking.firewall.allowedUDPPorts = [ ... ];
259179 # Or disable the firewall altogether.
hosts/desktop/home.nix+2-19
......@@ -4,22 +4,11 @@
44 pkgs,
55 lib,
66 zls,
7 nix-options-search,
87 ...
98}: let
109 shared-programs = import ../shared/home-programs.nix {inherit inputs config pkgs lib;};
1110in {
1211 home = {
13 username = "nmarks";
14 homeDirectory = "/home/nmarks";
15
16 # This value determines the Home Manager release that your configuration is
17 # compatible with. This helps avoid breakage when a new Home Manager release
18 # introduces backwards incompatible changes.
19 #
20 # You should not change this value, even if you update Home Manager. If you do
21 # want to update the value, then make sure to first check the Home Manager
22 # release notes.
2312 stateVersion = "23.05"; # Please read the comment before changing.
2413
2514 packages = with pkgs; let
......@@ -31,6 +20,7 @@ in {
3120 ghostty
3221 stremio
3322 julia
23 qbittorrent
3424
3525 #gaming
3626 bottles
......@@ -67,16 +57,9 @@ in {
6757 rust-bin.stable.latest.default
6858 ];
6959 # programs.mangohud.enable = true;
70
71 sessionVariables = {
72 EDITOR = "nvim";
73 VISUAL = "nvim";
74 TERMINAL = "ghostty";
75 BROWSER = "firefox";
76 };
7760 };
7861
7962 programs = shared-programs;
8063
81 xdg.mimeApps.defaultApplications."inode/directory" = "dolphin.desktop";
64 # xdg.mimeApps.defaultApplications."inode/directory" = "dolphin.desktop";
8265}
hosts/laptop/configuration.nix+19-16
......@@ -3,6 +3,7 @@
33 config,
44 pkgs,
55 lib,
6 userSettings,
67 ...
78}: {
89 imports = [
......@@ -10,20 +11,12 @@
1011 ../../modules/macos/homebrew.nix
1112 ];
1213
13 environment.systemPackages = with pkgs; [
14 neovim
15 pinentry_mac
16 ];
17
18 # environment.customIcons = {
19 # enable = true;
20 # icons = [
21 # {
22 # path = "/Applications/Zen.app";
23 # icon = "/Users/nmarks/.dotfiles/icons/Zen_icons/firefox.icns";
24 # }
25 # ];
26 # };
14 environment.systemPackages = with pkgs;
15 [
16 neovim
17 pinentry_mac
18 ]
19 ++ callPackage ../shared/packages.nix {};
2720
2821 # Use a custom configuration.nix location.
2922 #environment.darwinConfig = "$HOME/.dotfiles/hosts/laptop";
......@@ -34,6 +27,7 @@
3427 zsh.enable = true; # default shell on catalina
3528 };
3629
30 # When opening an interactive shell that isnt fish move into fish
3731 programs.zsh = {
3832 interactiveShellInit = ''
3933 if [[ $(${pkgs.procps}/bin/ps -p $PPID -o comm) != "fish" && -z ''${ZSH_EXUCTION_STRING} ]]
......@@ -44,6 +38,7 @@
4438 '';
4539 };
4640
41 #Use touchid or watch to activate sudo
4742 security.pam.services.sudo_local = {
4843 enable = true;
4944 reattach = true;
......@@ -57,12 +52,15 @@
5752 stateVersion = 6;
5853
5954 defaults = {
55 # Turn quaranite off
6056 LaunchServices = {
6157 LSQuarantine = false;
6258 };
6359
6460 NSGlobalDomain = {
61 # Show extensions in finder
6562 AppleShowAllExtensions = true;
63 #Turn off the hold and press to input special chars
6664 ApplePressAndHoldEnabled = false;
6765
6866 # 120, 90, 60, 30, 12, 6, 2
......@@ -71,6 +69,7 @@
7169 # 120, 94, 68, 35, 25, 15
7270 InitialKeyRepeat = 15;
7371
72 #Turn off beep noise in terminal
7473 "com.apple.mouse.tapBehavior" = 1;
7574 "com.apple.sound.beep.volume" = 0.0;
7675 "com.apple.sound.beep.feedback" = 0;
......@@ -89,7 +88,8 @@
8988 # minimal dock
9089 dock = {
9190 autohide = true;
92 autohide-time-modifier = 0;
91 #instant hide and show
92 autohide-time-modifier = 0.0;
9393 show-process-indicators = true;
9494
9595 expose-group-apps = true;
......@@ -97,11 +97,12 @@
9797 show-recents = true;
9898 static-only = true;
9999
100 # Scale instead of shrink
100101 mineffect = "scale";
101102
102103 orientation = "bottom";
103104 };
104 # a finder that tells me what I want to know and lets me work
105 # Better finder settings
105106 finder = {
106107 _FXShowPosixPathInTitle = true;
107108 FXDefaultSearchScope = "SCcf";
......@@ -115,6 +116,8 @@
115116 };
116117 };
117118 };
119
120 # Bind caps to escape for better normal mode stuff
118121 keyboard = {
119122 enableKeyMapping = true;
120123 remapCapsLockToEscape = true;
hosts/laptop/home.nix+6-22
......@@ -3,38 +3,22 @@
33 config,
44 pkgs,
55 lib,
6 user,
6 userSettings,
7 systemSettings,
78 ...
89}: {
9 programs = import ../shared/home-programs.nix {inherit inputs config pkgs lib;};
10 programs = import ../shared/home-programs.nix {inherit inputs config pkgs lib userSettings;};
1011
1112 home = {
12 username = user;
13 homeDirectory = "/Users/nmarks/";
13 inherit (userSettings) username;
14 # homeDirectory = systemSettings.homeConfig;
1415 # shell = pkgs.fish;
15 # Home Manager needs a bit of information about you and the paths it should
16 # manage.
17 # This value determines the Home Manager release that your configuration is
18 # compatible with. This helps avoid breakage when a new Home Manager release
19 # introduces backwards incompatible changes.
20 #
21 # You should not change this value, even if you update Home Manager. If you do
22 # want to update the value, then make sure to first check the Home Manager
23 # release notes.
2416 stateVersion = "23.05"; # Please read the comment before changing.
2517
26 packages = pkgs.callPackage ../shared/packages.nix {};
18 # packages = pkgs.callPackage ../shared/packages.nix {};
2719
28 sessionVariables = {
29 EDITOR = "nvim";
30 VISUAL = "nvim";
31 TERMINAL = "ghostty";
32 BROWSER = "firefox";
33 };
3420 sessionPath = [
3521 "$HOME/.emacs.d/bin"
3622 ];
3723 };
38
39 # Let Home Manager install and manage itself.
4024}
hosts/shared/home-programs.nix+3-2
......@@ -3,6 +3,7 @@
33 config,
44 pkgs,
55 lib,
6 userSettings,
67 ...
78}: {
89 nix-index.enable = true;
......@@ -51,7 +52,7 @@
5152 enable = true;
5253 settings = {
5354 backend = "fastfetch";
54 preset = "bisexual";
55 preset = userSettings.sexuality;
5556 mode = "rgb";
5657 light_dark = "dark";
5758 lightness = {
......@@ -85,7 +86,7 @@
8586 reboot-windows = "sudo efibootmgr --bootnext 0000; sudo reboot -h now";
8687 };
8788 shellInit = ''
88 test -r '/Users/nmarks/.opam/opam-init/init.fish' && source '/Users/nmarks/.opam/opam-init/init.fish' > /dev/null 2> /dev/null; or true
89 test -r '/Users/${userSettings.username}/.opam/opam-init/init.fish' && source '/Users/${userSettings.username}/.opam/opam-init/init.fish' > /dev/null 2> /dev/null; or true
8990 batman --export-env | source
9091 '';
9192 };
hosts/shared/packages.nix+1-2
......@@ -59,11 +59,10 @@ with pkgs; [
5959 withMoonlight = true;
6060 })
6161 vesktop
62 signal-desktop
62 signal-desktop-bin
6363
6464 #media
6565 spotify
66 qbittorrent
6766
6867 #language servers
6968 typst-live
lib/mkSystem.nix+75-60
......@@ -4,85 +4,100 @@
44 nixpkgs,
55 overlays,
66 inputs,
7 userSettings,
78}: name: {
89 system,
9 user,
1010 darwin ? false,
1111 extraModules ? [],
1212}: let
13 # userSettings = rec {
14 # username = "nmarks"; # username
15 # name = "Natalie"; # name/identifier
16 # email = "nmarks413@gmail.com"; # email (used for certain configurations)
17 # dotfilesDir = "~/.dotfiles"; # absolute path of the local repo
18 # browser = "firefox"; # Default browser; must select one from ./user/app/browser/
19 # term = "ghostty"; # Default terminal command;
20 # font = "iosevka Nerd Font"; # Selected font
21 # editor = "neovim"; # Default editor;
22 # spawnEditor = "exec" + term + "- e " + editor;
23 # };
1324 nixindex =
1425 if darwin
1526 then inputs.nix-index-database.darwinModules.nix-index
1627 else inputs.nix-index-database.nixosModules.nix-index;
1728
18 host =
19 if darwin
20 then "laptop"
21 else "desktop";
29 systemSettings = rec {
30 host =
31 if darwin
32 then "laptop"
33 else "desktop";
2234
23 # The config files for this system.
35 # The config files for this system.
2436
25 hostConfig = ../hosts/${host}/configuration.nix;
26 homeConfig = ../hosts/${host}/home.nix;
37 hostConfig = ../hosts/${host}/configuration.nix;
38 homeConfig = ../hosts/${host}/home.nix;
2739
28 homeDir =
29 if darwin
30 then "/Users/nmarks/"
31 else "/home/nmarks";
40 homeDir =
41 if darwin
42 then "/Users/" + userSettings.username + "/"
43 else "/home/" + userSettings.username + "/";
3244
33 # NixOS vs nix-darwin functions
34 systemFunc =
35 if darwin
36 then inputs.darwin.lib.darwinSystem
37 else nixpkgs.lib.nixosSystem;
45 # NixOS vs nix-darwin functions
46 systemFunc =
47 if darwin
48 then inputs.darwin.lib.darwinSystem
49 else nixpkgs.lib.nixosSystem;
3850
39 hmModules =
40 if darwin
41 then inputs.home-manager.darwinModules
42 else inputs.home-manager.nixosModules;
51 hmModules =
52 if darwin
53 then inputs.home-manager.darwinModules
54 else inputs.home-manager.nixosModules;
55 };
4356in
44 systemFunc rec {
45 inherit system;
57 with systemSettings;
58 systemFunc rec {
59 inherit system;
60
61 modules =
62 [
63 # Apply our overlays. Overlays are keyed by system type so we have
64 # to go through and apply our system type. We do this first so
65 # the overlays are available globally.
66 {nixpkgs.overlays = overlays;}
4667
47 modules =
48 [
49 # Apply our overlays. Overlays are keyed by system type so we have
50 # to go through and apply our system type. We do this first so
51 # the overlays are available globally.
52 {nixpkgs.overlays = overlays;}
68 # Enable caching for nix-index so we dont have to rebuild it
5369
54 # Enable caching for nix-index so we dont have to rebuild it
70 #shared modules
71 ../modules/shared/extras.nix
72 ../modules/shared/nix.nix
5573
56 #shared modules
57 ../modules/shared/extras.nix
58 ../modules/shared/nix.nix
74 hostConfig
75 nixindex
76 {programs.nix-index-database.comma.enable = true;}
77 hmModules.home-manager
78 {
79 home-manager = {
80 useGlobalPkgs = true;
81 useUserPackages = true;
82 backupFileExtension = "hm-backup";
83 extraSpecialArgs = {inherit inputs userSettings systemSettings;};
84 users.${userSettings.username} = homeConfig;
85 };
5986
60 hostConfig
61 nixindex
62 {programs.nix-index-database.comma.enable = true;}
63 hmModules.home-manager
64 {
65 home-manager = {
66 useGlobalPkgs = true;
67 useUserPackages = true;
68 backupFileExtension = "hm-backup";
69 extraSpecialArgs = {inherit inputs user;};
70 users.${user} = homeConfig;
71 };
87 users.users.${userSettings.username}.home = homeDir;
88 }
7289
73 users.users.${user}.home = homeDir;
74 }
90 # We expose some extra arguments so that our modules can parameterize
91 # better based on these values.
92 {
93 config._module.args = {
94 currentSystem = system;
95 # currentSystemName = name;
96 # currentSystemUser = userSettings.username;
7597
76 # We expose some extra arguments so that our modules can parameterize
77 # better based on these values.
78 {
79 config._module.args = {
80 currentSystem = system;
81 currentSystemName = name;
82 currentSystemUser = user;
83 inherit inputs;
84 };
85 }
86 ]
87 ++ extraModules;
88 }
98 inherit inputs userSettings systemSettings;
99 };
100 }
101 ]
102 ++ extraModules;
103 }
modules/nixos/ld.nix created+85
......@@ -0,0 +1,85 @@
1{pkgs, ...}: {
2 programs.nix-ld.enable = true;
3
4 # "minimum" amount of libraries needed for most games to run without steam-run
5 programs.nix-ld.libraries = with pkgs; [
6 # common requirement for several games
7 stdenv.cc.cc.lib
8
9 # from https://github.com/NixOS/nixpkgs/blob/nixos-23.05/pkgs/games/steam/fhsenv.nix#L72-L79
10 xorg.libXcomposite
11 xorg.libXtst
12 xorg.libXrandr
13 xorg.libXext
14 xorg.libX11
15 xorg.libXfixes
16 libGL
17 libva
18
19 # from https://github.com/NixOS/nixpkgs/blob/nixos-23.05/pkgs/games/steam/fhsenv.nix#L124-L136
20 fontconfig
21 freetype
22 xorg.libXt
23 xorg.libXmu
24 libogg
25 libvorbis
26 SDL
27 SDL2_image
28 glew110
29 libdrm
30 libidn
31 tbb
32 zlib
33 alsa-lib
34 at-spi2-atk
35 at-spi2-core
36 atk
37 cairo
38 cups
39 curl
40 dbus
41 expat
42 fontconfig
43 freetype
44 fuse3
45 gdk-pixbuf
46 glib
47 gtk3
48 icu
49 libGL
50 libappindicator-gtk3
51 libdrm
52 libglvnd
53 libnotify
54 libpulseaudio
55 libunwind
56 libusb1
57 libuuid
58 libxkbcommon
59 libxml2
60 mesa
61 nspr
62 nss
63 openssl
64 pango
65 # pipewire
66 stdenv.cc.cc
67 systemd
68 vulkan-loader
69 xorg.libX11
70 xorg.libXScrnSaver
71 xorg.libXcomposite
72 xorg.libXcursor
73 xorg.libXdamage
74 xorg.libXext
75 xorg.libXfixes
76 xorg.libXi
77 xorg.libXrandr
78 xorg.libXrender
79 xorg.libXtst
80 xorg.libxcb
81 xorg.libxkbfile
82 xorg.libxshmfence
83 zlib
84 ];
85}
modules/nixos/services.nix+9-2
......@@ -26,10 +26,14 @@
2626 };
2727 };
2828
29
3029 desktopManager.cosmic.enable = true;
3130 displayManager.cosmic-greeter.enable = true;
3231
32 # Auto mount devices
33 udiskie = {
34 enable = true;
35 };
36
3337 # Configure keymap in X11
3438 xserver = {
3539 xkb.layout = "us";
......@@ -39,7 +43,10 @@
3943 tailscale.enable = true;
4044
4145 # Enable CUPS to print documents.
42 printing.enable = true;
46 printing = {
47 enable = true;
48 drivers = [pkgs.brlaser]; # Brother printer driver
49 };
4350
4451 pipewire = {
4552 enable = true;
modules/shared/extras.nix+9-2
......@@ -2,6 +2,7 @@
22 pkgs,
33 config,
44 inputs,
5 userSettings,
56 ...
67}: {
78 services.tailscale.enable = true;
......@@ -9,7 +10,6 @@
910 networking = {
1011 };
1112 fonts.packages = with pkgs; [
12 # alibaba-fonts
1313 nerd-fonts.fira-code
1414 nerd-fonts.iosevka
1515 iosevka
......@@ -18,5 +18,12 @@
1818 ];
1919
2020 # Set your time zone.
21 time.timeZone = "America/Los_Angeles";
21 time.timeZone = userSettings.timeZone;
22
23 home-manager.users.${userSettings.username}.home.sessionVariables = {
24 EDITOR = userSettings.editor;
25 VISUAL = userSettings.editor;
26 TERMINAL = userSettings.term;
27 BROWSER = userSettings.browser;
28 };
2229}
modules/shared/home-manager.nix created+8
......@@ -0,0 +1,8 @@
1{
2 config,
3 pkgs,
4 lib,
5 ...
6}: {
7
8}
modules/shared/nix.nix+2
......@@ -24,11 +24,13 @@
2424
2525 "https://nix-community.cachix.org"
2626 "https://cosmic.cachix.org/"
27 # For haskell
2728 "https://cache.iog.io"
2829 ];
2930 trusted-public-keys = [
3031 "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
3132 "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE="
33 # For haskell
3234 "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ="
3335 ];
3436 };