{ 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"; niri = { url = "github:yalter/niri/v0.1.6"; # Follow stable releases inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { nixpkgs, iosevka-custom, niri, ... }: let defaultSpecialArgs = {system ? "x86_64-linux", ...}: { niri = niri.packages.${system}.default; 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; 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"; }; }; }; }; 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 { devShells.x86_64-linux.default = let pkgs = import nixpkgs {system = "x86_64-linux";}; in pkgs.mkShellNoCC { packages = [pkgs.nil]; }; 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 Tone = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; specialArgs = defaultSpecialArgs {inherit system;}; modules = defaultModules { hostName = "Tone"; 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"; }; }; }; }; }