{ inputs, config, lib, nur, emacs, ... }: /* TODO: Make these arguments unneccessary Idea: Make miku.nix, mashu.nix, ... have the following structure { architecture: "x86_64-linux"; config = { ... }: { # ... }; } */ { hostConfigFile , architecture ? "x86_64-linux" , bluray ? false }: let pkgs = inputs.nixpkgs; config = pkgs.lib; network = import ./network.nix; util = import ./default.nix { inherit inputs config lib; }; in inputs.nixpkgs.lib.nixosSystem { system = architecture; modules = [ # User configuration management inputs.home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; } # Hyprland inputs.hyprland.nixosModules.default # Overlays (util.mkOverlayFromInput "stable" inputs.stable) (util.mkOverlayFromInput "unstable" inputs.nixpkgs) { nixpkgs.overlays = [ nur.overlay emacs.overlay inputs.hyprland-xdg.overlays.default (import ../packages) (import ../overlays/simple.nix) (import ../overlays/phosh.nix) ] ++ lib.optional bluray (import ../overlays/bluray.nix) ++ [ # Always keep sandbox.nix as the last overlay (import ../overlays/sandbox.nix) ]; } # My module system (import ../modules) inputs.ostylk.nixosModules.nftables inputs.tablet-mode.nixosModule # Actual config (import ./baseSystem.nix) (import hostConfigFile) ]; specialArgs = { inherit inputs; }; }