flake.nix 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. {
  2. nixConfig = {
  3. trusted-substituters = [
  4. "https://devenv.cachix.org"
  5. "https://cachix.cachix.org"
  6. "https://nixpkgs.cachix.org"
  7. "https://nix-community.cachix.org"
  8. ];
  9. trusted-public-keys = [
  10. "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
  11. "cachix.cachix.org-1:eWNHQldwUO7G2VkjpnjDbWwy4KQ/HNxht7H4SSoMckM="
  12. "nixpkgs.cachix.org-1:q91R6hxbwFvDqTSDKwDAV4T5PxqXGxswD8vhONFMeOE="
  13. "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
  14. "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
  15. ];
  16. };
  17. inputs = {
  18. nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05?shallow=true";
  19. nixpkgs-darwin.url = "github:nixos/nixpkgs/nixpkgs-25.05-darwin?shallow=true";
  20. nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable?shallow=true";
  21. darwin.url = "github:lnl7/nix-darwin/nix-darwin-25.05?shallow=true";
  22. darwin.inputs.nixpkgs.follows = "nixpkgs-darwin";
  23. devenv.url = "github:cachix/devenv?shallow=true";
  24. devenv.inputs.nixpkgs.follows = "nixpkgs-unstable";
  25. home-manager.url = "github:nix-community/home-manager/master?shallow=true";
  26. home-manager.inputs.nixpkgs.follows = "nixpkgs";
  27. nixvim.url = "github:nix-community/nixvim/nixos-25.05?shallow=true";
  28. nixvim.inputs.nixpkgs.follows = "nixpkgs";
  29. };
  30. outputs = { self, nixpkgs, nixpkgs-unstable, devenv, ... }@inputs:
  31. rec {
  32. lib = import ./lib {
  33. inherit inputs;
  34. inherit (self) outputs;
  35. };
  36. homeConfigurations = {
  37. "thomas@meili" = lib.mkHome {
  38. system = "aarch64-darwin";
  39. modules = [ ./home/meili.nix ];
  40. };
  41. "thomas@modgud" = lib.mkHome {
  42. system = "x86_64-linux";
  43. modules = [ ./home/modgud.nix ];
  44. };
  45. };
  46. nixosConfigurations = {
  47. modgud = lib.mkSystem {
  48. system = "x86_64-linux";
  49. modules = [ ./hosts/modgud ];
  50. };
  51. odin = lib.mkSystem {
  52. system = "x86_64-linux";
  53. modules = [ ./hosts/odin ];
  54. };
  55. };
  56. darwinConfigurations = {
  57. meili = lib.mkDarwin {
  58. system = "aarch64-darwin";
  59. modules = [ ./hosts/meili ];
  60. };
  61. };
  62. devShells = lib.mkDevenvShell {
  63. scripts.update.exec = "nix flake update";
  64. };
  65. modules = import ./modules;
  66. overlays = import ./overlays { inherit inputs; };
  67. packages = lib.eachSystemWithPkgs (import ./packages);
  68. codecov-cli = inputs.nixpkgs-unstable.legacyPackages.aarch64-darwin.codecov-cli;
  69. formatter = lib.eachSystem (system: nixpkgs.legacyPackages.${system}.nixfmt-rfc-style);
  70. };
  71. }