{ description = "Evie's machine configurations"; nixConfig = { extra-substituters = ["https://nix.xenia.me.uk"]; extra-trusted-public-keys = ["nix.xenia.me.uk:tlgwOaG5KMLjQUk2YaErS8mAG69ZCr3PaHXZYi+Y5eI="]; }; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-23.11"; iosevka-custom.url = "git+https://git.xenia.me.uk/pixelifytica/iosevka.git"; }; outputs = { nixpkgs, iosevka-custom, ... }: let defaultSpecialArgs = {system ? "x86_64-linux", ...}: { iosevkaCustom = { packages = iosevka-custom.outputs.packages.${system}; names = iosevka-custom.outputs.names; }; }; defaultModules = { hostName ? "Atlas", primaryUser ? "pixelifytica", loginShell ? "zsh", ... }: [ ./configuration/default.nix ./configuration/${hostName}.nix ./hardware-configuration/${hostName}.nix ({ config, lib, pkgs, ... }: { networking = {inherit hostName;}; nix = { settings.trusted-users = [primaryUser]; registry.nixpkgs.flake = nixpkgs; }; services.greetd.settings.initial_session.user = primaryUser; programs.${loginShell}.enable = true; users.users.${primaryUser} = { shell = pkgs.${loginShell}; group = "users"; isNormalUser = true; description = "Evie Litherland-Smith"; extraGroups = ["networkmanager" "wheel" "video" "input" "uinput"]; initialHashedPassword = "$y$j9T$tHIPQt09Kf3KH2eIRze3g/$2mwSlcq27DTGvHNPJ5EP9/1CfL3bXP0F6oS/Vuffmn3"; openssh = {inherit (config.users.users.root.openssh) authorizedKeys;}; }; }) ]; in { nixosConfigurations = { ## Server Legion = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; specialArgs = defaultSpecialArgs {inherit system;}; modules = defaultModules { hostName = "Legion"; primaryUser = "pixelifytica"; loginShell = "zsh"; }; }; ## Personal Northstar = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; specialArgs = defaultSpecialArgs {inherit system;}; modules = defaultModules { hostName = "Northstar"; primaryUser = "pixelifytica"; loginShell = "zsh"; }; }; Vanguard = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; specialArgs = defaultSpecialArgs {inherit system;}; modules = defaultModules { hostName = "Vanguard"; primaryUser = "pixelifytica"; loginShell = "zsh"; }; }; ## Work Ronin = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; specialArgs = defaultSpecialArgs {inherit system;}; modules = defaultModules { hostName = "Ronin"; primaryUser = "elitherl"; loginShell = "zsh"; }; }; Scorch = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; specialArgs = defaultSpecialArgs {inherit system;}; modules = defaultModules { hostName = "Scorch"; primaryUser = "elitherl"; loginShell = "zsh"; }; }; }; }; }