{ 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-24.05"; 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", userName ? "pixelifytica", loginShell ? "zsh", ... }: [ ./configuration/default.nix ./configuration/${hostName}.nix ./hardware-configuration/${hostName}.nix ({ config, lib, pkgs, ... }: { networking = {inherit hostName;}; nix = { settings.trusted-users = [userName]; registry = { my-nixos = { from = { type = "indirect"; id = "my-nixos"; }; to = { type = "git"; url = "https://git.xenia.me.uk/pixelifytica/nixos.git?ref=main"; }; }; my-home-manager = { from = { type = "indirect"; id = "my-home-manager"; }; to = { type = "git"; url = "https://git.xenia.me.uk/pixelifytica/home-manager.git?ref=main"; }; }; }; }; programs.${loginShell}.enable = true; users.users.${userName} = { 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 { devShells.x86_64-linux.default = let pkgs = import nixpkgs {system = "x86_64-linux";}; in pkgs.mkShellNoCC { packages = with pkgs; [nil pre-commit]; shellHook = "pre-commit install --install-hooks"; }; nixosConfigurations = { ## Server Legion = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; specialArgs = defaultSpecialArgs {inherit system;}; modules = defaultModules { hostName = "Legion"; userName = "pixelifytica"; loginShell = "zsh"; }; }; ## Personal Northstar = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; specialArgs = defaultSpecialArgs {inherit system;}; modules = defaultModules { hostName = "Northstar"; userName = "pixelifytica"; loginShell = "zsh"; }; }; Vanguard = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; specialArgs = defaultSpecialArgs {inherit system;}; modules = defaultModules { hostName = "Vanguard"; userName = "pixelifytica"; loginShell = "zsh"; }; }; ## Work Tone = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; specialArgs = defaultSpecialArgs {inherit system;}; modules = defaultModules { hostName = "Tone"; userName = "elitherl"; loginShell = "zsh"; }; }; Scorch = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; specialArgs = defaultSpecialArgs {inherit system;}; modules = defaultModules { hostName = "Scorch"; userName = "elitherl"; loginShell = "zsh"; }; }; }; }; }