{ description = "Alex's super mega awesome nixos config"; # A flake's inputs specify the dependencies that get pulled in. Each input is pinned to a specific version (the git commit) of that dependency. inputs = { nixpkgs.url = github:NixOS/nixpkgs/nixos-unstable; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; # This flake also takes in nixpkgs as its own input, so we can override it here to ensure the same pkgs are used! }; firefox-addons = { url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; inputs.nixpkgs.follows = "nixpkgs"; }; atau-nixpkgs = { url = "git+https://git.atauno.com/atau/atau-nixpkgs?ref=main&rev=1e72f4b1e9b7a2991e3ccdebbe75d312f016da3b"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, nixpkgs, home-manager, firefox-addons, ... }@inputs: let hmModule = system: ( home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.backupFileExtension = "backup"; home-manager.users.alex = import ./config/users/alex; home-manager.extraSpecialArgs = { ff = firefox-addons.packages.${system}; }; } ); in { nixosConfigurations = { ## ---- personal computers (linux) ---- nixos76 = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ ./config/systems/nixos76 home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.backupFileExtension = "backup"; home-manager.users.alex = import ./config/users/alex; # Optionally, use home-manager.extraSpecialArgs to pass # arguments to home.nix } ]; }; thelio76 = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; modules = [ ./config/systems/thelio76 (import ./config/modules/home-manager.nix { inherit system inputs; }) # home-manager.nixosModules.home-manager # { # home-manager.useGlobalPkgs = true; # home-manager.useUserPackages = true; # home-manager.backupFileExtension = "backup"; # home-manager.users.alex = import ./config/users/alex; # home-manager.extraSpecialArgs = { ff = firefox-addons.packages.${system}; }; # } ]; }; ## ---- servers ---- ursa-minor = nixpkgs.lib.nixosSystem { system = "aarch64-linux"; modules = [ ./ursa-minor/configuration.nix ]; }; ursa-major = nixpkgs.lib.nixosSystem { system = "aarch64-linux"; modules = [ ./ursa-major/configuration.nix ]; }; atauno = nixpkgs.lib.nixosSystem { system = "aarch64-linux"; modules = [ ./atauno/configuration.nix ]; }; }; }; }